Conway Web Toolkit — API Docs

Base URL: http://localhost:8080  ·  OpenAPI YAML

Authentication

MethodHowLimit
Free tier?free=1 or x-free-tier: 110 req/day per IP
x402 paidx-usdc-payment: <token>Unlimited ($0.01 USDC each)

GET /v1/metadata

Extract title, description, and OG/Twitter meta tags from any URL.

curl "http://localhost:8080/v1/metadata?free=1&url=https://example.com"

Response

{
  "url": "https://example.com",
  "final_url": "https://example.com/",
  "title": "Example Domain",
  "description": "...",
  "og_title": "...", "og_image": "...", "og_type": "website",
  "twitter_card": "summary"
}

POST /v1/extract

Extract clean article text using Mozilla Readability (Firefox Reader Mode).

curl -X POST http://localhost:8080/v1/extract \
  -H "Content-Type: application/json" \
  -H "x-free-tier: 1" \
  -d '{"url":"https://techcrunch.com/..."}'

Response fields: url, title, byline, site_name, excerpt, published_time, text, word_count, html

POST /v1/og

Full OpenGraph + Twitter Card data extraction (same as /v1/metadata but via POST body).

curl -X POST http://localhost:8080/v1/og \
  -H "Content-Type: application/json" \
  -H "x-free-tier: 1" \
  -d '{"url":"https://openai.com"}'

POST /v1/links

Extract all hyperlinks from a page. Optional: "internal_only": true or "external_only": true.

curl -X POST http://localhost:8080/v1/links \
  -H "Content-Type: application/json" \
  -H "x-free-tier: 1" \
  -d '{"url":"https://news.ycombinator.com","external_only":true}'

Response: { "count": 42, "links": [{"url":"...", "label":"...", "internal": false}] }

Error codes

StatusMeaning
400Missing or invalid url parameter
402Payment required (x402)
422Content could not be extracted
429Free tier daily limit exceeded
502Upstream fetch failed