{"openapi":"3.0.3","info":{"title":"Agent Data API","version":"1.0.0","description":"Pay-per-call data services for AI agents: web extraction (text, Markdown, metadata), PDF-to-text, RSS/Atom parsing, FX and crypto prices, weather, DNS and email validation. All paid endpoints use the x402 payment protocol (USDC).","contact":{"url":"https://agent-data-api-ui1c.onrender.com"}},"servers":[{"url":"https://agent-data-api-ui1c.onrender.com"}],"paths":{"/extract":{"get":{"operationId":"extractPage","summary":"Web page to clean text","description":"Fetches a public web page and returns boilerplate-free text as JSON: title, description, main text, word count, optional links.","parameters":[{"name":"url","in":"query","required":true,"description":"URL of the page to extract","schema":{"type":"string"},"example":"https://example.com"},{"name":"links","in":"query","required":false,"description":"Set to 'true' to include page links","schema":{"type":"string"},"example":"true"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.010","currency":"USD"}}}},"/web/markdown":{"get":{"operationId":"pageToMarkdown","summary":"Web page to clean Markdown","description":"Converts any public web page to clean Markdown — headings, lists, links and code blocks preserved.","parameters":[{"name":"url","in":"query","required":true,"description":"URL of the page to convert","schema":{"type":"string"},"example":"https://example.com"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.010","currency":"USD"}}}},"/web/meta":{"get":{"operationId":"pageMetadata","summary":"Structured page metadata","description":"OpenGraph, Twitter cards, meta tags, canonical URL and JSON-LD blocks as structured JSON.","parameters":[{"name":"url","in":"query","required":true,"description":"URL of the page","schema":{"type":"string"},"example":"https://example.com"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/pdf":{"get":{"operationId":"pdfToTextByUrl","summary":"PDF to text (by URL)","description":"Fetches a PDF by URL and returns pages, document info, full text and word count. Born-digital PDFs, 10MB cap, no OCR.","parameters":[{"name":"url","in":"query","required":true,"description":"URL of the PDF","schema":{"type":"string"}}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}},"post":{"operationId":"pdfToTextByUpload","summary":"PDF to text (upload)","description":"POST raw PDF bytes (Content-Type: application/pdf) and receive extracted text.","requestBody":{"required":true,"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/feed":{"get":{"operationId":"parseFeed","summary":"RSS/Atom feed to JSON","description":"Parses any RSS/Atom feed into clean JSON: items with title, link, date, author, summary and categories.","parameters":[{"name":"url","in":"query","required":true,"description":"Feed URL","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max items to return (default 20, max 100)","schema":{"type":"string"},"example":"20"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/fx":{"get":{"operationId":"fxRates","summary":"Foreign exchange rates","description":"Latest FX reference rates (ECB data) for ~30 major currencies, with optional amount conversion.","parameters":[{"name":"base","in":"query","required":false,"description":"Base currency (3-letter code)","schema":{"type":"string"},"example":"USD"},{"name":"symbols","in":"query","required":false,"description":"Comma-separated target currencies","schema":{"type":"string"},"example":"ZAR,EUR"},{"name":"amount","in":"query","required":false,"description":"Optional amount to convert","schema":{"type":"string"},"example":"100"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/live/crypto":{"get":{"operationId":"cryptoPrices","summary":"Live crypto prices","description":"Live prices with 24h change and market cap for any CoinGecko-listed coins, in any fiat.","parameters":[{"name":"ids","in":"query","required":false,"description":"Comma-separated CoinGecko coin ids","schema":{"type":"string"},"example":"bitcoin,ethereum"},{"name":"vs","in":"query","required":false,"description":"Comma-separated fiat currencies","schema":{"type":"string"},"example":"usd"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/live/weather":{"get":{"operationId":"weather","summary":"Weather + 5-day forecast","description":"Current conditions and 5-day forecast for anywhere on Earth, by city name or coordinates. Includes geocoding.","parameters":[{"name":"city","in":"query","required":false,"description":"City name (alternative to lat/lon)","schema":{"type":"string"},"example":"London"},{"name":"lat","in":"query","required":false,"description":"Latitude","schema":{"type":"string"}},{"name":"lon","in":"query","required":false,"description":"Longitude","schema":{"type":"string"}}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/net/dns":{"get":{"operationId":"dnsLookup","summary":"DNS records lookup","description":"DNS records (A, AAAA, MX, TXT, NS, CNAME, SOA, SRV) for any domain, as JSON.","parameters":[{"name":"host","in":"query","required":true,"description":"Domain name","schema":{"type":"string"},"example":"example.com"},{"name":"type","in":"query","required":false,"description":"Record type (default A)","schema":{"type":"string"},"example":"MX"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/net/email":{"get":{"operationId":"validateEmail","summary":"Email validation","description":"Syntax check plus whether the domain exists and accepts mail (MX). Nothing is sent to the address.","parameters":[{"name":"address","in":"query","required":true,"description":"Email address to validate","schema":{"type":"string"},"example":"someone@example.com"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/crypto/funding-rates":{"get":{"operationId":"fundingRates","summary":"Cross-exchange perpetual funding rates","description":"Perpetual funding rates from Binance, Bybit and OKX with average, annualized rate and long/short crowding bias. Gracefully returns whichever exchanges respond.","parameters":[{"name":"symbol","in":"query","required":false,"description":"Asset symbol (e.g. BTC, ETH, SOL)","schema":{"type":"string"},"example":"BTC"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.010","currency":"USD"}}}},"/crypto/market-regime":{"get":{"operationId":"marketRegime","summary":"Computed market regime signal","description":"Trend/chop/volatility regime computed from 200 4-hour candles: SMA20/50 direction, Kaufman trend efficiency, realized volatility. Informational only.","parameters":[{"name":"symbol","in":"query","required":false,"description":"Asset symbol (e.g. BTC, ETH)","schema":{"type":"string"},"example":"BTC"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.020","currency":"USD"}}}},"/crypto/fear-greed":{"get":{"operationId":"fearGreed","summary":"Crypto Fear & Greed index (FREE)","description":"FREE endpoint — no payment required. Current Fear & Greed index value, classification, and day-over-day change. A free sample of this API's paid catalog.","parameters":[],"responses":{"200":{"description":"Success — JSON payload."}}}},"/defi/tvl":{"get":{"operationId":"defiTvl","summary":"DeFi TVL (protocol, chain, or top-20)","description":"Total value locked for a named protocol or chain, or the top-20 protocols by TVL with 7-day change. DeFiLlama data.","parameters":[{"name":"protocol","in":"query","required":false,"description":"Protocol slug (e.g. aave, lido)","schema":{"type":"string"},"example":"aave"},{"name":"chain","in":"query","required":false,"description":"Chain name (e.g. Ethereum, Base, Solana)","schema":{"type":"string"},"example":"Base"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/defi/yields":{"get":{"operationId":"defiYields","summary":"Top DeFi yield pools","description":"Highest-APY pools with minimum $1M TVL, filterable by chain and stablecoin-only, with base vs reward APY breakdown and risk warning.","parameters":[{"name":"chain","in":"query","required":false,"description":"Filter by chain name","schema":{"type":"string"},"example":"Base"},{"name":"stablecoin","in":"query","required":false,"description":"Set 'true' for stablecoin pools only","schema":{"type":"string"},"example":"true"},{"name":"limit","in":"query","required":false,"description":"Max pools (default 15, max 50)","schema":{"type":"string"},"example":"15"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.010","currency":"USD"}}}},"/defi/stablecoins":{"get":{"operationId":"defiStablecoins","summary":"Top stablecoins with peg health","description":"Top 20 stablecoins by circulating supply with live price and peg deviation.","parameters":[],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/za/public-holidays":{"get":{"operationId":"zaPublicHolidays","summary":"South African public holidays","description":"SA public holidays for any year 1995-2100, computed including Easter-linked days and the Sunday-to-Monday observance rule.","parameters":[{"name":"year","in":"query","required":false,"description":"Year (1995-2100)","schema":{"type":"string"},"example":"2026"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.005","currency":"USD"}}}},"/za/tax-tables":{"get":{"operationId":"zaTaxTables","summary":"SARS income tax tables + calculator","description":"South African personal income tax brackets, rebates and thresholds as JSON. Optional income parameter returns the calculated annual tax.","parameters":[{"name":"year","in":"query","required":false,"description":"Tax year key (e.g. 2025-26)","schema":{"type":"string"},"example":"2025-26"},{"name":"income","in":"query","required":false,"description":"Optional annual taxable income for calculation","schema":{"type":"string"},"example":"450000"},{"name":"age","in":"query","required":false,"description":"Age for rebates (default 40)","schema":{"type":"string"},"example":"40"}],"responses":{"200":{"description":"Success — JSON payload."},"402":{"description":"Payment required (x402). Payment requirements are in the response body and headers."}},"x-payment-info":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","payTo":"0x8d5Cd7622364Fc31037f8C66ea60a4756442eedd","price":{"amount":"0.010","currency":"USD"}}}}}}