{"info":{"description":"Web-to-structured-JSON extraction API. Free tier: 10 extractions/day with API key. Also supports x402 micropayments and prepaid USDC.","title":"ClawPage API","version":"0.2.0"},"openapi":"3.0.0","paths":{"/account":{"get":{"parameters":[{"in":"header","name":"X-API-Key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Account details: email, free_extractions_remaining, balance_usdc, wallets"},"401":{"description":"Invalid API key"}},"summary":"Get account info"}},"/account/deposit":{"post":{"parameters":[{"in":"header","name":"X-API-Key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"tx_hash":{"description":"Transaction hash (0x..., 66 chars)","type":"string"}},"required":["tx_hash"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Deposit credited. Returns credited_usdc and new_balance."},"400":{"description":"Invalid tx hash or already used"},"401":{"description":"Invalid API key"}},"summary":"Credit prepaid balance from on-chain USDC transfer"}},"/account/wallets":{"post":{"parameters":[{"in":"header","name":"X-API-Key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"wallet_address":{"description":"Ethereum address (0x..., 42 chars)","type":"string"}},"required":["wallet_address"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Wallet associated"},"400":{"description":"Invalid wallet format"},"401":{"description":"Invalid API key"},"409":{"description":"Wallet already associated"}},"summary":"Associate a wallet address with your account"}},"/extract":{"post":{"description":"Requires X-API-Key header (from /register) or X-Payment-Proof header (x402). Cache hits are free for everyone.","parameters":[{"description":"API key from /register (cpk_ prefix)","in":"header","name":"X-API-Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"sync":{"default":false,"description":"If true, wait for result instead of returning job_id","type":"boolean"},"url":{"description":"URL to extract","format":"uri","type":"string"}},"required":["url"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Extraction complete (sync mode or cache hit)"},"202":{"description":"Extraction started, poll /result/{job_id}"},"401":{"description":"Invalid API key"},"402":{"description":"Free tier exhausted or payment required"}},"summary":"Extract and structure web page content"}},"/register":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"Email address","format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Account created. Returns api_key (cpk_ prefix) and free_extractions count."},"400":{"description":"Invalid email format"},"409":{"description":"Email already registered"}},"summary":"Create an account and get an API key"}},"/result/{job_id}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job status and result"},"404":{"description":"Job not found"}},"summary":"Get extraction result"}}},"servers":[{"url":"/"}]}