{"openapi":"3.1.0","info":{"title":"CatalogBot x402 seller","version":"1","description":"Pay-per-call POSTs for agents (3 SKUs + verb-path aliases of cheap-errand). Auth: no API key. Unpaid requests return HTTP 402 Payment Required; settle USDC on Base via x402 (exact) and retry with payment headers. See per-operation x-x402 / x-payment-info. Local NLP + public-web sources; public sources only.","contact":{"email":"mauinion10@gmail.com"}},"servers":[{"url":"https://x402.hydratrader.ai"}],"paths":{"/v1/cheap-errand":{"post":{"operationId":"cheap-errand","summary":"cheap-errand","description":"Summarize text. Classify sentiment. Rewrite. Extract keywords. Translate. When to use: cheap agent glue / probe steps for buyer-supplied text. Returns JSON for $0.01 per call in USDC on Base via x402. No API key. Local-fast NLP; no login scrape. Success JSON includes next_tasks hints for same-session follow-ups. Payment: x402 HTTP 402, $0.01 USDC on Base. No API key.","tags":["paid","x402"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.01","price_usdc":"0.01","network":"eip155:8453","asset":"USDC","api_key":false},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["task","input"],"properties":{"task":{"type":"string","enum":["summarize","rewrite","classify","extract_keywords","sentiment","translate"]},"input":{"type":"string","maxLength":8000},"options":{"type":"object"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/structured-extract":{"post":{"operationId":"structured-extract","summary":"structured-extract","description":"Extract structured JSON. JSON schema extract. Structured extract from pasted text or a public URL into YOUR schema. When to use: turn messy public text into typed JSON with confidence + warnings. $0.03 per call in USDC on Base via x402. No API key. Refuses login/paywall sources. Payment: x402 HTTP 402, $0.03 USDC on Base. No API key.","tags":["paid","x402"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.03","price_usdc":"0.03","network":"eip155:8453","asset":"USDC","api_key":false},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["source","schema"],"properties":{"source":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text","public_url"]},"text":{"type":"string"},"url":{"type":"string","format":"uri"}}},"schema":{"type":"object"},"instructions":{"type":"string","maxLength":1000},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/research-brief":{"post":{"operationId":"research-brief","summary":"research-brief","description":"Research brief. Citations. Summarize research from the public web with key points and caveats. When to use: short cited answers for agent questions (fair-use snippets only — no full-text dumps). $0.08 per call in USDC on Base via x402 (cost-floored). No API key. Payment: x402 HTTP 402, $0.08 USDC on Base. No API key.","tags":["paid","x402"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.08"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.08","price_usdc":"0.08","network":"eip155:8453","asset":"USDC","api_key":false},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["question"],"properties":{"question":{"type":"string","minLength":12,"maxLength":500},"scope":{"type":"object","properties":{"max_sources":{"type":"integer","minimum":1,"maximum":8,"default":5},"recency_days":{"type":"integer"},"domains_allow":{"type":"array","items":{"type":"string"}},"domains_deny":{"type":"array","items":{"type":"string"}}}},"depth":{"type":"string","enum":["quick","standard"],"default":"standard"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/summarize":{"post":{"operationId":"summarize","summary":"summarize","description":"Summarize text. Classify sentiment. Rewrite. Extract keywords. Translate. Verb-path alias of POST /v1/cheap-errand ($0.01 USDC). Same handler + payment terms; path defaults task when body.task omitted (/v1/summarize→summarize, /v1/keywords→extract_keywords). Base via x402. No API key. Payment: x402 HTTP 402, $0.01 USDC on Base. No API key.","tags":["paid","x402","alias"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.01","price_usdc":"0.01","network":"eip155:8453","asset":"USDC","api_key":false,"alias_of":"cheap-errand","default_task":"summarize"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"task":{"type":"string","enum":["summarize","rewrite","classify","extract_keywords","sentiment","translate"],"description":"Optional; defaults from path when omitted"},"input":{"type":"string","maxLength":8000},"options":{"type":"object"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/sentiment":{"post":{"operationId":"sentiment","summary":"sentiment","description":"Summarize text. Classify sentiment. Rewrite. Extract keywords. Translate. Verb-path alias of POST /v1/cheap-errand ($0.01 USDC). Same handler + payment terms; path defaults task when body.task omitted (/v1/summarize→summarize, /v1/keywords→extract_keywords). Base via x402. No API key. Payment: x402 HTTP 402, $0.01 USDC on Base. No API key.","tags":["paid","x402","alias"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.01","price_usdc":"0.01","network":"eip155:8453","asset":"USDC","api_key":false,"alias_of":"cheap-errand","default_task":"sentiment"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"task":{"type":"string","enum":["summarize","rewrite","classify","extract_keywords","sentiment","translate"],"description":"Optional; defaults from path when omitted"},"input":{"type":"string","maxLength":8000},"options":{"type":"object"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/rewrite":{"post":{"operationId":"rewrite","summary":"rewrite","description":"Summarize text. Classify sentiment. Rewrite. Extract keywords. Translate. Verb-path alias of POST /v1/cheap-errand ($0.01 USDC). Same handler + payment terms; path defaults task when body.task omitted (/v1/summarize→summarize, /v1/keywords→extract_keywords). Base via x402. No API key. Payment: x402 HTTP 402, $0.01 USDC on Base. No API key.","tags":["paid","x402","alias"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.01","price_usdc":"0.01","network":"eip155:8453","asset":"USDC","api_key":false,"alias_of":"cheap-errand","default_task":"rewrite"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"task":{"type":"string","enum":["summarize","rewrite","classify","extract_keywords","sentiment","translate"],"description":"Optional; defaults from path when omitted"},"input":{"type":"string","maxLength":8000},"options":{"type":"object"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/keywords":{"post":{"operationId":"keywords","summary":"keywords","description":"Summarize text. Classify sentiment. Rewrite. Extract keywords. Translate. Verb-path alias of POST /v1/cheap-errand ($0.01 USDC). Same handler + payment terms; path defaults task when body.task omitted (/v1/summarize→summarize, /v1/keywords→extract_keywords). Base via x402. No API key. Payment: x402 HTTP 402, $0.01 USDC on Base. No API key.","tags":["paid","x402","alias"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.01","price_usdc":"0.01","network":"eip155:8453","asset":"USDC","api_key":false,"alias_of":"cheap-errand","default_task":"extract_keywords"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"task":{"type":"string","enum":["summarize","rewrite","classify","extract_keywords","sentiment","translate"],"description":"Optional; defaults from path when omitted"},"input":{"type":"string","maxLength":8000},"options":{"type":"object"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}},"/v1/translate":{"post":{"operationId":"translate","summary":"translate","description":"Summarize text. Classify sentiment. Rewrite. Extract keywords. Translate. Verb-path alias of POST /v1/cheap-errand ($0.01 USDC). Same handler + payment terms; path defaults task when body.task omitted (/v1/summarize→summarize, /v1/keywords→extract_keywords). Base via x402. No API key. Payment: x402 HTTP 402, $0.01 USDC on Base. No API key.","tags":["paid","x402","alias"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-x402":{"price":"$0.01","price_usdc":"0.01","network":"eip155:8453","asset":"USDC","api_key":false,"alias_of":"cheap-errand","default_task":"translate"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"task":{"type":"string","enum":["summarize","rewrite","classify","extract_keywords","sentiment","translate"],"description":"Optional; defaults from path when omitted"},"input":{"type":"string","maxLength":8000},"options":{"type":"object"},"client_ref":{"type":"string"}}}}}},"responses":{"200":{"description":"Paid success. Sets X-Catalog-Version: 1. Body envelope { ok, endpoint, ... }.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input / policy refusal (after payment)."},"402":{"description":"Payment Required — include x402 payment headers and retry."}}}}},"components":{"schemas":{"ErrorEnvelope":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}}}}}}}}