{"openapi":"3.1.0","info":{"title":"Agent Margin Router","description":"Unified, x402-paid routing layer for AI agents. Pay per request with USDC or USDT on Base.","version":"0.6.0","contact":{"name":"NovaNest / Agent Margin Router","email":"NovaNestCo@protonmail.com"},"x-guidance":"Pay-per-call data API for AI agents using x402 (v1 and v2) micropayments in USDC or USDT on Base (eip155:8453). Every POST endpoint takes a JSON body and returns JSON. Call it without payment to receive an HTTP 402 challenge (PAYMENT-REQUIRED header + accepts[] body); sign an EIP-3009 transferWithAuthorization and retry with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1). Send X-WALLET: 0x... for 3 free calls per wallet. MCP server at POST /mcp; catalog at /.well-known/x402; manifests at /.well-known/mcp.json and /.well-known/agent.json; plain-text summary at /llms.txt. Trust: never send private keys — payment is a signed EIP-3009 authorization capped at the quoted amount; the exact price is stated in every 402 and in x-payment-info before you pay; nothing is charged for failed calls. All responses carry fetched_at and, where aggregated, sources/sources_failed. Data is informational, not financial advice — cross-check before trading. Scope: data & web tools only."},"paths":{"/health":{"get":{"tags":["ops"],"summary":"Service health and metrics","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}},"security":[]}},"/extract-clean":{"post":{"tags":["extraction"],"summary":"Extract a web page into clean, schema-shaped JSON","operationId":"extract_clean_extract_clean_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractCleanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractCleanResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/market-spread":{"post":{"tags":["market-data"],"summary":"Net cross-venue spread for an asset","operationId":"market_spread_market_spread_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketSpreadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketSpreadResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"/gas-fees":{"post":{"tags":["on-chain"],"summary":"Live gas fees + USD cost per tx type","operationId":"gas_fees_gas_fees_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GasFeesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GasFeesResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/token-price":{"post":{"tags":["on-chain"],"summary":"Multi-venue median spot price","operationId":"token_price_token_price_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPriceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPriceResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/wallet-balance":{"post":{"tags":["on-chain"],"summary":"Native + stablecoin balances of a wallet","operationId":"wallet_balance_wallet_balance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletBalanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletBalanceResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/tx-status":{"post":{"tags":["on-chain"],"summary":"Transaction receipt: status, confirmations, gas, decoded ERC-20 transfers","operationId":"tx_status_tx_status_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxStatusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxStatusResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/erc20-balance":{"post":{"tags":["on-chain"],"summary":"Balances of up to 20 arbitrary ERC-20 tokens via Multicall3","operationId":"erc20_balance_erc20_balance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erc20BalanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erc20BalanceResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/agent-wallet-snapshot":{"post":{"tags":["on-chain"],"summary":"One-call wallet snapshot: native + ERC-20 balances, gas price, USD totals","operationId":"agent_wallet_snapshot_agent_wallet_snapshot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentWalletSnapshotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentWalletSnapshotResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/best-price":{"post":{"tags":["on-chain"],"summary":"Cheapest gas price across sources + provision on the savings","operationId":"best_price_best_price_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BestPriceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BestPriceResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/web-search":{"post":{"tags":["web-tools"],"summary":"Live web search (key-less)","operationId":"web_search_web_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSearchResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/email-validate":{"post":{"tags":["web-tools"],"summary":"Email syntax + MX + disposable check","operationId":"email_validate_email_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailValidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailValidateResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/dns-whois":{"post":{"tags":["web-tools"],"summary":"DNS records + RDAP/WHOIS","operationId":"dns_whois_dns_whois_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsWhoisRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsWhoisResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/pdf-text":{"post":{"tags":["web-tools"],"summary":"Extract text from a PDF URL","operationId":"pdf_text_pdf_text_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PdfTextRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PdfTextResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/seo-check":{"post":{"tags":["web-tools"],"summary":"On-page SEO audit with score","operationId":"seo_check_seo_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeoCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeoCheckResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/defi-yields":{"post":{"tags":["data-tools"],"summary":"DeFi pool yields (APY/TVL) across chains","operationId":"defi_yields_defi_yields_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefiYieldsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefiYieldsResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/currency-convert":{"post":{"tags":["data-tools"],"summary":"Fiat FX conversion (ECB reference rates)","operationId":"currency_convert_currency_convert_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencyConvertRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencyConvertResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/geo-ip":{"post":{"tags":["data-tools"],"summary":"IP geolocation + ASN","operationId":"geo_ip_geo_ip_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoIpRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoIpResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/rss-feed":{"post":{"tags":["data-tools"],"summary":"RSS/Atom feed → clean JSON","operationId":"rss_feed_rss_feed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RssFeedRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RssFeedResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/crypto-ohlcv":{"post":{"tags":["data-tools"],"summary":"Crypto OHLCV candles (Binance/Coinbase)","operationId":"crypto_ohlcv_crypto_ohlcv_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoOhlcvRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoOhlcvResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/ens-resolve":{"post":{"tags":["data-tools"],"summary":"ENS name → address + text records","operationId":"ens_resolve_ens_resolve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsResolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsResolveResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/defi-tvl":{"post":{"tags":["data-tools"],"summary":"DeFi protocol or chain TVL (DefiLlama)","operationId":"defi_tvl_defi_tvl_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefiTvlRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefiTvlResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/fear-greed":{"post":{"tags":["data-tools"],"summary":"Crypto Fear & Greed index (alternative.me)","operationId":"fear_greed_fear_greed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FearGreedRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FearGreedResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/html-to-markdown":{"post":{"tags":["content-tools"],"summary":"Web page → LLM-ready Markdown","operationId":"html_to_markdown_html_to_markdown_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HtmlToMarkdownRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HtmlToMarkdownResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/youtube-transcript":{"post":{"tags":["content-tools"],"summary":"YouTube video → transcript with timestamps","operationId":"youtube_transcript_youtube_transcript_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/YoutubeTranscriptRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/YoutubeTranscriptResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/github-repo-summary":{"post":{"tags":["content-tools"],"summary":"GitHub repository overview (stars, languages, README, commits)","operationId":"github_repo_summary_github_repo_summary_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubRepoSummaryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubRepoSummaryResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/dex-price":{"post":{"tags":["content-tools"],"summary":"DEX token price + liquidity (long-tail tokens, DexScreener)","operationId":"dex_price_dex_price_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DexPriceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DexPriceResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/url-status":{"post":{"tags":["content-tools"],"summary":"URL health: status, redirects, SSL, security headers","operationId":"url_status_url_status_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlStatusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlStatusResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/web-crawl":{"post":{"tags":["content-tools"],"summary":"Same-domain mini crawl → Markdown (max 10 pages)","operationId":"web_crawl_web_crawl_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"/metadata":{"post":{"tags":["content-tools"],"summary":"Page metadata: OpenGraph, Twitter Card, favicon, canonical","operationId":"metadata_metadata_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/sitemap-urls":{"post":{"tags":["content-tools"],"summary":"Parse a sitemap → real URL list with lastmod/priority","operationId":"sitemap_urls_sitemap_urls_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitemapUrlsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitemapUrlsResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/robots-check":{"post":{"tags":["content-tools"],"summary":"May a given user-agent crawl a URL? (robots.txt)","operationId":"robots_check_robots_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RobotsCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RobotsCheckResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/feed-discover":{"post":{"tags":["content-tools"],"summary":"Discover RSS/Atom feeds for a website","operationId":"feed_discover_feed_discover_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedDiscoverRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedDiscoverResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/text-stats":{"post":{"tags":["content-tools"],"summary":"Readability & text statistics (Flesch, FK grade, reading time)","operationId":"text_stats_text_stats_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextStatsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextStatsResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/qr-generate":{"post":{"tags":["content-tools"],"summary":"Generate a QR code as scalable SVG (key-less, local)","operationId":"qr_generate_qr_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrGenerateResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/uuid":{"post":{"tags":["content-tools"],"summary":"Generate UUIDs (v4 random or v5 namespaced, local)","operationId":"uuid_generate_uuid_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UuidRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UuidResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]}}},"/hash":{"post":{"tags":["content-tools"],"summary":"Hash text (md5/sha1/sha2 family, local)","operationId":"hash_text_hash_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HashRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HashResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]}}},"/llm-chat":{"post":{"tags":["paid-containers"],"summary":"Chat completion via self-hosted LiteLLM","operationId":"llm_chat_llm_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmChatResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/media-convert":{"post":{"tags":["paid-containers"],"summary":"Convert audio/video/image via self-hosted FFmpeg","operationId":"media_convert_media_convert_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaConvertRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaConvertResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]}}},"/render-js":{"post":{"tags":["paid-containers"],"summary":"Render a JS page via self-hosted AnyCrawl","operationId":"render_js_render_js_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderJsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderJsResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/screenshot":{"post":{"tags":["paid-containers"],"summary":"Full-page screenshot via self-hosted AnyCrawl","operationId":"screenshot_screenshot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenshotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenshotResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/news-search":{"post":{"tags":["community"],"summary":"Global news search (GDELT)","operationId":"news_search_news_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsSearchResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/hn-search":{"post":{"tags":["community"],"summary":"Hacker News search (Algolia)","operationId":"hn_search_hn_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HnSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HnSearchResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/reddit-search":{"post":{"tags":["community"],"summary":"Reddit post search","operationId":"reddit_search_reddit_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedditSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedditSearchResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/wikipedia-summary":{"post":{"tags":["opendata"],"summary":"Wikipedia article summary","operationId":"wikipedia_summary_wikipedia_summary_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WikipediaSummaryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WikipediaSummaryResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/arxiv-search":{"post":{"tags":["opendata"],"summary":"arXiv paper search","operationId":"arxiv_search_arxiv_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArxivSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArxivSearchResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/npm-package":{"post":{"tags":["opendata"],"summary":"npm package metadata + weekly downloads","operationId":"npm_package_npm_package_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NpmPackageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NpmPackageResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/pypi-package":{"post":{"tags":["opendata"],"summary":"PyPI package metadata","operationId":"pypi_package_pypi_package_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PypiPackageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PypiPackageResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/geocode":{"post":{"tags":["opendata"],"summary":"Geocode a place or address (OpenStreetMap)","operationId":"geocode_geocode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeocodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeocodeResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/domain-rdap":{"post":{"tags":["opendata"],"summary":"Domain registration data (RDAP / WHOIS successor)","operationId":"domain_rdap_domain_rdap_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRdapRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRdapResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/dns-lookup":{"post":{"tags":["opendata"],"summary":"DNS lookup over HTTPS","operationId":"dns_lookup_dns_lookup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsLookupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsLookupResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/weather":{"post":{"tags":["opendata"],"summary":"Current weather + forecast (Open-Meteo, key-less)","operationId":"weather_weather_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeatherRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeatherResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/holidays":{"post":{"tags":["opendata"],"summary":"Public holidays by country and year (Nager.Date, key-less)","operationId":"holidays_holidays_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HolidaysRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HolidaysResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/contract-info":{"post":{"tags":["opendata"],"summary":"Smart-contract metadata (Blockscout)","operationId":"contract_info_contract_info_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContractInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContractInfoResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]}}},"/timezone":{"post":{"tags":["opendata"],"summary":"Current time & timezone by IANA name or place (key-less)","operationId":"timezone_timezone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimezoneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimezoneResponse"}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"/api-keys/generate":{"post":{"tags":["enterprise"],"summary":"Create an API key bound to a wallet","operationId":"generate_api_key_api_keys_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyGenerateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"403":{"description":"Admin secret required"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/api-keys/{key}":{"get":{"tags":["enterprise"],"summary":"Inspect an API key","operationId":"get_api_key_api_keys__key__get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]},"delete":{"tags":["enterprise"],"summary":"Deactivate an API key","operationId":"deactivate_api_key_api_keys__key__delete","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyDeactivateResponse"}}}},"403":{"description":"Admin secret required"},"404":{"description":"Unknown key"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/usage":{"get":{"tags":["enterprise"],"summary":"Usage for a wallet or an API key","operationId":"usage_usage_get","parameters":[{"name":"wallet","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"0x wallet address","title":"Wallet"},"description":"0x wallet address"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (UUID)","title":"Api Key"},"description":"API key (UUID)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}}},"422":{"description":"wallet or api_key query parameter required"}},"security":[]}},"/stats":{"get":{"tags":["enterprise"],"summary":"Global usage & revenue statistics","operationId":"stats_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}}},"security":[]}},"/.well-known/x402":{"get":{"tags":["discovery"],"summary":"x402 discovery catalog (Bazaar format)","operationId":"well_known_x402__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/discovery/resources":{"get":{"tags":["discovery"],"summary":"x402 discovery catalog (Bazaar format)","operationId":"discovery_resources_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/.well-known/x402-resources":{"get":{"tags":["discovery"],"summary":"x402 discovery catalog (Bazaar format, crawler alias)","operationId":"well_known_x402_resources__well_known_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/agent-sanity-check":{"post":{"tags":["api-products"],"summary":"Pre-flight validation for AI agents before a costly action","operationId":"agent_sanity_check_agent_sanity_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSanityCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"/domain-intelligence":{"post":{"tags":["api-products"],"summary":"DNS, RDAP/WHOIS, SEO, geo-IP and email validation for one domain","operationId":"domain_intelligence_domain_intelligence_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainIntelligenceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"/publish-verify":{"post":{"tags":["api-products"],"summary":"Pre-publication QA for PDFs, landing pages and contact addresses","operationId":"publish_verify_publish_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"/crypto-trader-cockpit":{"post":{"tags":["api-products"],"summary":"Spread, gas, wallet and DeFi yield context in one pre-trade snapshot","operationId":"crypto_trader_cockpit_crypto_trader_cockpit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoTraderCockpitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"/web-to-structured":{"post":{"tags":["api-products"],"summary":"Convert public pages, PDFs, RSS feeds and IP context into clean structured JSON","operationId":"web_to_structured_web_to_structured_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebToStructuredRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402, USDC or USDT on Base)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]}}},"/credits/{wallet}":{"get":{"tags":["credits"],"summary":"Prepaid credit balance of a wallet","operationId":"credit_balance_credits__wallet__get","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","title":"Wallet"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Credit Balance Credits  Wallet  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/credits/topup":{"post":{"tags":["credits"],"summary":"Add prepaid credit (admin)","operationId":"credit_topup_credits_topup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditTopupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Credit Topup Credits Topup Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/credits":{"get":{"tags":["credits"],"summary":"All prepaid balances + journal (admin)","operationId":"credit_overview_credits_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Credit Overview Credits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/partners":{"get":{"tags":["partners"],"summary":"List partner endpoints + revenue (admin)","operationId":"list_partners_partners_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Partners Partners Get"}}}}},"security":[]},"post":{"tags":["partners"],"summary":"Create or update a partner endpoint (admin)","operationId":"upsert_partner_partners_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerUpsert"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Upsert Partner Partners Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/partners/public":{"get":{"tags":["partners"],"summary":"Active partner APIs available through AMR","operationId":"public_partners_partners_public_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Partners Partners Public Get"}}}}},"security":[]}},"/partners/{slug}":{"delete":{"tags":["partners"],"summary":"Deactivate a partner endpoint (admin)","operationId":"delete_partner_partners__slug__delete","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Partner Partners  Slug  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}}},"components":{"schemas":{"AgentSanityCheckRequest":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url","description":"Planned target URL to reach (reachability + DNS)."},"wallet":{"anyOf":[{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},{"type":"null"}],"title":"Wallet","description":"EVM wallet to check balance for."},"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","description":"Chain for wallet + gas context.","default":"base"},"expected_cost_usd":{"anyOf":[{"type":"number","maximum":1000000.0,"minimum":0.0},{"type":"null"}],"title":"Expected Cost Usd","description":"Planned spend for this action (compared to required_balance)."},"required_balance_usd":{"anyOf":[{"type":"number","maximum":1000000.0,"minimum":0.0},{"type":"null"}],"title":"Required Balance Usd","description":"Minimum wallet balance the agent needs before proceeding."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":60}},"type":"object","title":"AgentSanityCheckRequest","description":"Request body for ``POST /agent-sanity-check`` (pre-flight validation bundle)."},"AgentWalletSnapshotRequest":{"properties":{"wallet_address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","title":"Wallet Address","description":"EVM wallet address."},"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","default":"base"},"token_contracts":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20},{"type":"null"}],"title":"Token Contracts","description":"ERC-20 contracts to include. Default: well-known stablecoins + WETH on the chain."},"max_age_seconds":{"type":"integer","maximum":600.0,"minimum":0.0,"title":"Max Age Seconds","default":0}},"type":"object","required":["wallet_address"],"title":"AgentWalletSnapshotRequest","description":"Request body for ``POST /agent-wallet-snapshot``."},"AgentWalletSnapshotResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"wallet_address":{"type":"string","title":"Wallet Address"},"chain":{"type":"string","title":"Chain"},"chain_id":{"type":"integer","title":"Chain Id"},"block_number":{"type":"integer","title":"Block Number"},"native_token":{"type":"string","title":"Native Token"},"native_balance":{"additionalProperties":true,"type":"object","title":"Native Balance"},"token_balances":{"items":{"$ref":"#/components/schemas/SnapshotTokenBalance"},"type":"array","title":"Token Balances"},"gas_price_gwei":{"type":"number","title":"Gas Price Gwei"},"gas_price_wei":{"type":"string","title":"Gas Price Wei"},"native_price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Native Price Usd"},"total_usd_value":{"type":"number","title":"Total Usd Value"},"tx_count":{"type":"integer","title":"Tx Count"},"is_contract":{"type":"boolean","title":"Is Contract"},"calls_bundled":{"items":{"type":"string"},"type":"array","title":"Calls Bundled"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","wallet_address","chain","chain_id","block_number","native_token","native_balance","token_balances","gas_price_gwei","gas_price_wei","total_usd_value","tx_count","is_contract","calls_bundled"],"title":"AgentWalletSnapshotResponse","description":"Response for ``POST /agent-wallet-snapshot``."},"ApiKeyDeactivateResponse":{"properties":{"api_key":{"type":"string","title":"Api Key"},"deactivated":{"type":"boolean","title":"Deactivated","default":true},"already_inactive":{"type":"boolean","title":"Already Inactive","default":false},"deactivated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivated At"}},"type":"object","required":["api_key"],"title":"ApiKeyDeactivateResponse"},"ApiKeyGenerateRequest":{"properties":{"wallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","title":"Wallet","description":"EVM wallet address the key belongs to (free tier + usage are attributed to it)."},"label":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Label","description":"Optional human-readable label."},"rate_limit_per_minute":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Rate Limit Per Minute","description":"Per-key sliding-window limit (default API_KEY_RATE_LIMIT_PER_MINUTE, max API_KEY_RATE_LIMIT_MAX)."}},"type":"object","required":["wallet"],"title":"ApiKeyGenerateRequest","description":"Request body for ``POST /api-keys/generate``."},"ApiKeyResponse":{"properties":{"api_key":{"type":"string","title":"Api Key","description":"UUID4 key. Send it as header X-API-KEY (replaces X-WALLET)."},"wallet":{"type":"string","title":"Wallet"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"rate_limit_per_minute":{"type":"integer","title":"Rate Limit Per Minute"},"active":{"type":"boolean","title":"Active","default":true},"created_at":{"type":"string","title":"Created At"},"deactivated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivated At"},"usage_hint":{"type":"string","title":"Usage Hint","default":"Send header X-API-KEY: <api_key> on /extract-clean and /market-spread."}},"type":"object","required":["api_key","wallet","rate_limit_per_minute","created_at"],"title":"ApiKeyResponse","description":"Response for ``POST /api-keys/generate`` and ``GET /api-keys/{key}``."},"ArxivSearchRequest":{"properties":{"query":{"type":"string","maxLength":300,"minLength":1,"title":"Query","description":"Free-text search query."},"max_results":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Results","default":10},"sort_by":{"type":"string","pattern":"^(relevance|date|updated)$","title":"Sort By","default":"relevance"},"category":{"anyOf":[{"type":"string","maxLength":40,"pattern":"^[A-Za-z\\-]+(\\.[A-Za-z\\-]+)?$"},{"type":"null"}],"title":"Category","description":"Optional arXiv category, e.g. cs.AI."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["query"],"title":"ArxivSearchRequest","description":"Request body for ``POST /arxiv-search``."},"ArxivSearchResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"sort_by":{"type":"string","title":"Sort By"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"papers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Papers"},"paper_count":{"type":"integer","title":"Paper Count"},"total_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Results"},"source":{"type":"string","title":"Source"},"attribution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribution"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","sort_by","papers","paper_count","source"],"title":"ArxivSearchResponse","description":"Response for ``POST /arxiv-search``."},"BestPriceRequest":{"properties":{"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","description":"base | ethereum | arbitrum | optimism | polygon","default":"base"}},"type":"object","title":"BestPriceRequest","description":"Request body for ``POST /best-price``."},"BestPriceResponse":{"properties":{"chain":{"type":"string","title":"Chain"},"best_price":{"type":"number","title":"Best Price","description":"Cheapest quote across all sources (USD)."},"average_price":{"type":"number","title":"Average Price","description":"Mean of all quotes (USD)."},"savings_gross":{"type":"number","title":"Savings Gross","description":"average_price - best_price (USD, >= 0)."},"provision":{"type":"number","title":"Provision","description":"Commission charged on the savings (USD)."},"user_pays":{"type":"number","title":"User Pays","description":"best_price + provision (USD)."},"user_savings":{"type":"number","title":"User Savings","description":"average_price - user_pays (USD, what the caller still saves)."},"source":{"type":"string","title":"Source","description":"Source that produced the cheapest quote."},"quotes_count":{"type":"integer","title":"Quotes Count","description":"Number of sources that answered."},"user_pays_micro_usdc":{"type":"integer","title":"User Pays Micro Usdc","description":"user_pays expressed in micro-USDC (x402 unit, 1e6)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."}},"type":"object","required":["chain","best_price","average_price","savings_gross","provision","user_pays","user_savings","source","quotes_count","user_pays_micro_usdc","cost_usdc","routing"],"title":"BestPriceResponse","description":"Response for ``POST /best-price`` (best-price router with commission model)."},"ContractInfoRequest":{"properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","title":"Address","description":"EVM contract or wallet address."},"chain":{"type":"string","pattern":"^(base|ethereum|optimism|arbitrum)$","title":"Chain","default":"base"},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["address"],"title":"ContractInfoRequest","description":"Request body for ``POST /contract-info``."},"ContractInfoResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain"},"is_contract":{"type":"boolean","title":"Is Contract"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"contract_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Name"},"compiler_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compiler Version"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"optimization_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Optimization Enabled"},"license_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Type"},"is_proxy":{"type":"boolean","title":"Is Proxy","default":false},"proxy_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proxy Type"},"implementations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Implementations"},"creator_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator Address"},"creation_tx_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creation Tx Hash"},"verified_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verified At"},"token_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Token Info"},"function_names":{"items":{"type":"string"},"type":"array","title":"Function Names"},"event_names":{"items":{"type":"string"},"type":"array","title":"Event Names"},"abi_available":{"type":"boolean","title":"Abi Available","default":false},"source_code_available":{"type":"boolean","title":"Source Code Available","default":false},"explorer_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explorer Url"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","address","chain","is_contract","source"],"title":"ContractInfoResponse","description":"Response for ``POST /contract-info``."},"CrawledPage":{"properties":{"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"markdown":{"type":"string","title":"Markdown"},"word_count":{"type":"integer","title":"Word Count"},"links_found":{"type":"integer","title":"Links Found"},"internal_links":{"items":{"type":"string"},"type":"array","title":"Internal Links"},"depth":{"type":"integer","title":"Depth"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["url","final_url","markdown","word_count","links_found","internal_links","depth"],"title":"CrawledPage"},"CreditTopupRequest":{"properties":{"wallet":{"type":"string","title":"Wallet","description":"EVM wallet address (0x…)"},"amount_usd":{"type":"number","maximum":10000.0,"minimum":-10000.0,"title":"Amount Usd","description":"USD amount (negative = correction)"},"reference":{"type":"string","maxLength":200,"minLength":3,"title":"Reference","description":"Idempotency reference"},"source":{"type":"string","enum":["stripe","crypto","manual"],"title":"Source","default":"manual"},"note":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Note"}},"type":"object","required":["wallet","amount_usd","reference"],"title":"CreditTopupRequest"},"CryptoOhlcvRequest":{"properties":{"symbol":{"type":"string","maxLength":12,"minLength":2,"title":"Symbol","description":"Base asset, e.g. BTC, ETH, SOL."},"quote":{"type":"string","maxLength":6,"minLength":3,"title":"Quote","description":"Quote asset (USD is mapped to USDT on Binance).","default":"USDT"},"interval":{"type":"string","title":"Interval","description":"1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w.","default":"1h"},"limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","default":100}},"type":"object","required":["symbol"],"title":"CryptoOhlcvRequest","description":"Request body for ``POST /crypto-ohlcv``."},"CryptoOhlcvResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"symbol":{"type":"string","title":"Symbol"},"quote":{"type":"string","title":"Quote"},"interval":{"type":"string","title":"Interval"},"candles":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Candles"},"candle_count":{"type":"integer","title":"Candle Count"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","symbol","quote","interval","candles","candle_count","summary","source"],"title":"CryptoOhlcvResponse","description":"Response for ``POST /crypto-ohlcv``."},"CryptoTraderCockpitRequest":{"properties":{"asset":{"type":"string","maxLength":20,"minLength":1,"title":"Asset","description":"Asset ticker, e.g. ETH."},"buy_venue":{"type":"string","maxLength":40,"minLength":1,"title":"Buy Venue","default":"binance"},"sell_venue":{"type":"string","maxLength":40,"minLength":1,"title":"Sell Venue","default":"coinbase"},"quote":{"type":"string","maxLength":10,"minLength":1,"title":"Quote","default":"USDT"},"size_usd":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Size Usd","description":"Notional size for slippage estimate.","default":1000.0},"wallet":{"anyOf":[{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},{"type":"null"}],"title":"Wallet","description":"EVM wallet to include a balance snapshot for."},"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","default":"base"},"include":{"items":{"type":"string"},"type":"array","maxItems":4,"title":"Include","description":"Sections to include: spread, gas, wallet, defi_yields."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":30}},"type":"object","required":["asset"],"title":"CryptoTraderCockpitRequest","description":"Request body for ``POST /crypto-trader-cockpit`` (pre-trade data snapshot bundle)."},"CurrencyConvertRequest":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","description":"Amount in the source currency.","default":1.0},"from":{"type":"string","maxLength":3,"minLength":3,"title":"From","description":"ISO-4217 source currency, e.g. EUR."},"to":{"items":{"type":"string"},"type":"array","maxItems":10,"minItems":1,"title":"To","description":"Target currencies, e.g. [\"USD\", \"GBP\"]."}},"type":"object","required":["from","to"],"title":"CurrencyConvertRequest","description":"Request body for ``POST /currency-convert``."},"CurrencyConvertResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"amount":{"type":"number","title":"Amount"},"from_currency":{"type":"string","title":"From Currency"},"rates":{"additionalProperties":{"type":"number"},"type":"object","title":"Rates"},"converted":{"additionalProperties":{"type":"number"},"type":"object","title":"Converted"},"rate_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rate Date"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","amount","from_currency","rates","converted","source"],"title":"CurrencyConvertResponse","description":"Response for ``POST /currency-convert``."},"DefiTvlRequest":{"properties":{"protocol":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Protocol","description":"DefiLlama protocol slug, e.g. aave, uniswap, aerodrome."},"chain":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Chain","description":"Chain name, e.g. base, ethereum, arbitrum."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","title":"DefiTvlRequest","description":"Request body for ``POST /defi-tvl`` – either ``protocol`` or ``chain``."},"DefiTvlResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"kind":{"type":"string","enum":["protocol","chain"],"title":"Kind"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"tvl_usd":{"type":"number","title":"Tvl Usd"},"change_1d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change 1D Pct"},"change_7d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change 7D Pct"},"mcap_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcap Usd"},"mcap_tvl_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcap Tvl Ratio"},"chains":{"items":{"type":"string"},"type":"array","title":"Chains"},"chain_tvls":{"additionalProperties":{"type":"number"},"type":"object","title":"Chain Tvls"},"chain_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain Id"},"native_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Native Token"},"protocol_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Protocol Count"},"top_protocols":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Top Protocols"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","kind","slug","name","tvl_usd","chains","chain_tvls","source"],"title":"DefiTvlResponse","description":"Response for ``POST /defi-tvl``."},"DefiYieldsRequest":{"properties":{"chain":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Chain","description":"Chain filter, e.g. Base, Ethereum, Arbitrum."},"asset":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Asset","description":"Asset symbol contained in the pool, e.g. USDC."},"project":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Project","description":"Protocol filter, e.g. aave-v3, morpho."},"min_tvl_usd":{"type":"number","minimum":0.0,"title":"Min Tvl Usd","description":"Minimum pool TVL in USD.","default":100000},"stablecoins_only":{"type":"boolean","title":"Stablecoins Only","default":false},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","default":10},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":600}},"type":"object","title":"DefiYieldsRequest","description":"Request body for ``POST /defi-yields``."},"DefiYieldsResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"filters":{"additionalProperties":true,"type":"object","title":"Filters"},"pools":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Pools"},"pool_count":{"type":"integer","title":"Pool Count"},"total_matching":{"type":"integer","title":"Total Matching"},"filtered_outliers":{"type":"integer","title":"Filtered Outliers","default":0},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","filters","pools","pool_count","total_matching","source"],"title":"DefiYieldsResponse","description":"Response for ``POST /defi-yields``."},"DexPair":{"properties":{"dex":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dex"},"pair":{"type":"string","title":"Pair"},"pair_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pair Address"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Usd"},"price_native":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Native"},"volume_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume 24H"},"liquidity_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquidity Usd"},"price_change_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Change 24H"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["pair"],"title":"DexPair"},"DexPriceRequest":{"properties":{"token_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Address","description":"Token contract address (0x…, 40 hex chars). Preferred over symbol."},"symbol":{"anyOf":[{"type":"string","maxLength":20,"minLength":1},{"type":"null"}],"title":"Symbol","description":"Token symbol, e.g. AERO (ambiguous – prefer token_address)."},"chain":{"type":"string","title":"Chain","description":"base, ethereum, arbitrum, optimism, polygon, bsc, avalanche, solana.","default":"base"},"max_pairs":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Pairs","default":5},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":30}},"type":"object","title":"DexPriceRequest","description":"Request body for ``POST /dex-price``."},"DexPriceResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"asset":{"$ref":"#/components/schemas/DexToken"},"chain":{"type":"string","title":"Chain"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Usd"},"price_change_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Change 24H"},"volume_24h":{"type":"number","title":"Volume 24H"},"liquidity_usd":{"type":"number","title":"Liquidity Usd"},"market_cap":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Market Cap"},"fdv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fdv"},"pair_count":{"type":"integer","title":"Pair Count"},"pairs":{"items":{"$ref":"#/components/schemas/DexPair"},"type":"array","title":"Pairs"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","asset","chain","volume_24h","liquidity_usd","pair_count","pairs","source"],"title":"DexPriceResponse","description":"Response for ``POST /dex-price``."},"DexToken":{"properties":{"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"DexToken"},"DnsLookupRequest":{"properties":{"name":{"type":"string","maxLength":253,"minLength":1,"pattern":"^([a-zA-Z0-9_\\-]+\\.)*[a-zA-Z0-9\\-]+\\.?$","title":"Name","description":"Host name to resolve."},"record_type":{"type":"string","pattern":"^(A|AAAA|CNAME|MX|NS|TXT|SOA|SRV|CAA|PTR)$","title":"Record Type","default":"A"},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["name"],"title":"DnsLookupRequest","description":"Request body for ``POST /dns-lookup``."},"DnsLookupResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"name":{"type":"string","title":"Name"},"record_type":{"type":"string","title":"Record Type"},"status":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Status"},"answers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Answers"},"answer_count":{"type":"integer","title":"Answer Count"},"authority":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Authority"},"dnssec_validated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dnssec Validated"},"resolver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolver"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","name","record_type","answers","answer_count","source"],"title":"DnsLookupResponse","description":"Response for ``POST /dns-lookup``."},"DnsWhoisRequest":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"title":"Domain","description":"Domain name, e.g. example.com."},"record_types":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":8},{"type":"null"}],"title":"Record Types","description":"A, AAAA, MX, NS, TXT, CNAME, SOA, CAA. Default: A AAAA MX NS TXT CNAME."},"include_whois":{"type":"boolean","title":"Include Whois","description":"Include RDAP/WHOIS registration data.","default":true},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["domain"],"title":"DnsWhoisRequest","description":"Request body for ``POST /dns-whois``."},"DnsWhoisResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"domain":{"type":"string","title":"Domain"},"records":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object","title":"Records"},"whois":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Whois"},"errors":{"additionalProperties":{"type":"string"},"type":"object","title":"Errors"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","domain","records"],"title":"DnsWhoisResponse","description":"Response for ``POST /dns-whois``."},"DomainIntelligenceRequest":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"title":"Domain","description":"Domain name, e.g. example.com."},"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Email","description":"Optional email to validate against the domain."},"include":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Include","description":"Signals to include: dns, rdap, seo, geo_ip, email_validation."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["domain"],"title":"DomainIntelligenceRequest","description":"Request body for ``POST /domain-intelligence`` (one-call domain enrichment)."},"DomainRdapRequest":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"pattern":"^([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,}$","title":"Domain","description":"Registrable domain, e.g. example.com."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":86400}},"type":"object","required":["domain"],"title":"DomainRdapRequest","description":"Request body for ``POST /domain-rdap``."},"DomainRdapResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"domain":{"type":"string","title":"Domain"},"registered":{"type":"boolean","title":"Registered"},"status":{"items":{"type":"string"},"type":"array","title":"Status"},"events":{"additionalProperties":true,"type":"object","title":"Events"},"registrar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registrar"},"registrar_iana_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registrar Iana Id"},"nameservers":{"items":{"type":"string"},"type":"array","title":"Nameservers"},"dnssec_signed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dnssec Signed"},"rdap_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rdap Url"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","domain","registered","source"],"title":"DomainRdapResponse","description":"Response for ``POST /domain-rdap``."},"EmailValidateRequest":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email","description":"Email address to validate."},"check_mx":{"type":"boolean","title":"Check Mx","description":"Resolve MX/A records via DNS-over-HTTPS.","default":true}},"type":"object","required":["email"],"title":"EmailValidateRequest","description":"Request body for ``POST /email-validate``."},"EmailValidateResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"email":{"type":"string","title":"Email"},"local_part":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Local Part"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"valid_syntax":{"type":"boolean","title":"Valid Syntax"},"disposable":{"type":"boolean","title":"Disposable"},"free_provider":{"type":"boolean","title":"Free Provider"},"role_account":{"type":"boolean","title":"Role Account"},"mx_checked":{"type":"boolean","title":"Mx Checked"},"has_mx":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Mx"},"null_mx":{"type":"boolean","title":"Null Mx","default":false},"mx_records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Mx Records"},"domain_resolves":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Domain Resolves"},"deliverability_score":{"type":"integer","title":"Deliverability Score"},"verdict":{"type":"string","title":"Verdict"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","email","valid_syntax","disposable","free_provider","role_account","mx_checked","deliverability_score","verdict"],"title":"EmailValidateResponse","description":"Response for ``POST /email-validate``."},"EnsResolveRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":3,"title":"Name","description":"ENS name, e.g. vitalik.eth."},"text_keys":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Text Keys","description":"ENS text records to read."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["name"],"title":"EnsResolveRequest","description":"Request body for ``POST /ens-resolve``."},"EnsResolveResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"name":{"type":"string","title":"Name"},"namehash":{"type":"string","title":"Namehash"},"resolver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolver"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"texts":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Texts"},"chain":{"type":"string","title":"Chain"},"resolved":{"type":"boolean","title":"Resolved"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","name","namehash","chain","resolved"],"title":"EnsResolveResponse","description":"Response for ``POST /ens-resolve``."},"Erc20BalanceRequest":{"properties":{"wallet_address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","title":"Wallet Address","description":"EVM wallet address."},"contract_addresses":{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":1,"title":"Contract Addresses","description":"Up to 20 ERC-20 contract addresses."},"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","default":"base"},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":0}},"type":"object","required":["wallet_address","contract_addresses"],"title":"Erc20BalanceRequest","description":"Request body for ``POST /erc20-balance``."},"Erc20BalanceResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"wallet_address":{"type":"string","title":"Wallet Address"},"chain":{"type":"string","title":"Chain"},"chain_id":{"type":"integer","title":"Chain Id"},"block_number":{"type":"integer","title":"Block Number"},"tokens":{"items":{"$ref":"#/components/schemas/Erc20TokenBalance"},"type":"array","title":"Tokens"},"token_count":{"type":"integer","title":"Token Count"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","wallet_address","chain","chain_id","block_number","tokens","token_count","source"],"title":"Erc20BalanceResponse","description":"Response for ``POST /erc20-balance``."},"Erc20TokenBalance":{"properties":{"contract":{"type":"string","title":"Contract"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"decimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Decimals"},"raw":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw"},"balance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["contract"],"title":"Erc20TokenBalance"},"Erc20Transfer":{"properties":{"contract":{"type":"string","title":"Contract"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"decimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Decimals"},"from_address":{"type":"string","title":"From Address"},"to_address":{"type":"string","title":"To Address"},"raw":{"type":"string","title":"Raw"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount"},"log_index":{"type":"integer","title":"Log Index"}},"type":"object","required":["contract","from_address","to_address","raw","log_index"],"title":"Erc20Transfer","description":"Decoded ERC-20 ``Transfer`` event."},"ExtractCleanRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public URL of the page/document to extract."},"schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema","description":"Optional JSON schema describing the desired output structure."},"instructions":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Instructions","description":"Optional natural-language hints for the extractor."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","description":"Maximum acceptable cache age. 0 forces a fresh fetch.","default":60}},"type":"object","required":["url"],"title":"ExtractCleanRequest","description":"Request body for ``POST /extract-clean``."},"ExtractCleanResponse":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Extracted page data (title, description, text, json_ld, language, ...)."},"sources_checked":{"type":"integer","title":"Sources Checked","description":"Number of providers consulted."},"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence","description":"Confidence score between 0 and 1."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1)."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."}},"type":"object","required":["data","sources_checked","freshness_seconds","confidence","cost_usdc","routing"],"title":"ExtractCleanResponse","description":"Response for ``POST /extract-clean``."},"FearGreedPoint":{"properties":{"value":{"type":"integer","title":"Value"},"classification":{"type":"string","title":"Classification"},"timestamp":{"type":"integer","title":"Timestamp"},"date":{"type":"string","title":"Date"}},"type":"object","required":["value","classification","timestamp","date"],"title":"FearGreedPoint"},"FearGreedRequest":{"properties":{"limit":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Limit","description":"Number of daily data points (1 = latest only).","default":1},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":600}},"type":"object","title":"FearGreedRequest","description":"Request body for ``POST /fear-greed``."},"FearGreedResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"value":{"type":"integer","title":"Value"},"value_classification":{"type":"string","title":"Value Classification"},"timestamp":{"type":"integer","title":"Timestamp"},"date":{"type":"string","title":"Date"},"time_until_update_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Until Update Seconds"},"change_1d":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Change 1D"},"change_7d":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Change 7D"},"history":{"items":{"$ref":"#/components/schemas/FearGreedPoint"},"type":"array","title":"History"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","value","value_classification","timestamp","date","history","source"],"title":"FearGreedResponse","description":"Response for ``POST /fear-greed``."},"FeedDiscoverRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Website URL to discover RSS/Atom feeds for."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["url"],"title":"FeedDiscoverRequest","description":"Request body for ``POST /feed-discover``."},"FeedDiscoverResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"feeds":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Feeds"},"feed_count":{"type":"integer","title":"Feed Count"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","final_url","feed_count","source"],"title":"FeedDiscoverResponse","description":"Response for ``POST /feed-discover``."},"FreeTierInfo":{"properties":{"limit":{"type":"integer","title":"Limit"},"used":{"type":"integer","title":"Used"},"remaining":{"type":"integer","title":"Remaining"}},"type":"object","required":["limit","used","remaining"],"title":"FreeTierInfo"},"GasFeesRequest":{"properties":{"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","description":"base | ethereum | arbitrum | optimism | polygon","default":"base"},"max_age_seconds":{"type":"integer","maximum":300.0,"minimum":0.0,"title":"Max Age Seconds","default":10}},"type":"object","title":"GasFeesRequest","description":"Request body for ``POST /gas-fees``."},"GasFeesResponse":{"properties":{"chain":{"type":"string","title":"Chain"},"chain_id":{"type":"integer","title":"Chain Id"},"native_token":{"type":"string","title":"Native Token"},"native_price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Native Price Usd"},"block_number":{"type":"integer","title":"Block Number"},"base_fee_gwei":{"type":"number","title":"Base Fee Gwei"},"gas_price_gwei":{"type":"number","title":"Gas Price Gwei"},"trend":{"type":"string","title":"Trend"},"tiers":{"additionalProperties":true,"type":"object","title":"Tiers"},"gas_units_assumed":{"additionalProperties":{"type":"integer"},"type":"object","title":"Gas Units Assumed"},"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."}},"type":"object","required":["chain","chain_id","native_token","block_number","base_fee_gwei","gas_price_gwei","trend","tiers","gas_units_assumed","freshness_seconds","cost_usdc","routing"],"title":"GasFeesResponse","description":"Response for ``POST /gas-fees``."},"GeoIpRequest":{"properties":{"ip":{"type":"string","maxLength":45,"minLength":3,"title":"Ip","description":"IPv4 or IPv6 address."},"max_age_seconds":{"type":"integer","maximum":604800.0,"minimum":0.0,"title":"Max Age Seconds","default":86400}},"type":"object","required":["ip"],"title":"GeoIpRequest","description":"Request body for ``POST /geo-ip``."},"GeoIpResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"ip":{"type":"string","title":"Ip"},"version":{"type":"integer","title":"Version"},"is_private":{"type":"boolean","title":"Is Private"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"postal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"utc_offset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utc Offset"},"asn":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Asn"},"org":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org"},"isp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isp"},"is_eu":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Eu"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","ip","version","is_private","source"],"title":"GeoIpResponse","description":"Response for ``POST /geo-ip``."},"GeocodeRequest":{"properties":{"query":{"type":"string","maxLength":300,"minLength":2,"title":"Query","description":"Place name or address."},"max_results":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Results","default":5},"country_codes":{"anyOf":[{"type":"string","maxLength":60,"pattern":"^[a-zA-Z]{2}(,[a-zA-Z]{2})*$"},{"type":"null"}],"title":"Country Codes","description":"Comma-separated ISO country codes, e.g. de,at."},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[a-zA-Z]{2,8})?$","title":"Language","default":"en"},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":86400}},"type":"object","required":["query"],"title":"GeocodeRequest","description":"Request body for ``POST /geocode``."},"GeocodeResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"},"result_count":{"type":"integer","title":"Result Count"},"source":{"type":"string","title":"Source"},"attribution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribution"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","results","result_count","source"],"title":"GeocodeResponse","description":"Response for ``POST /geocode``."},"GithubRepoSummaryRequest":{"properties":{"repo":{"type":"string","maxLength":200,"minLength":3,"title":"Repo","description":"owner/name or a github.com repository URL."},"include_readme":{"type":"boolean","title":"Include Readme","description":"Include the first 500 characters of the README.","default":true},"include_commits":{"type":"boolean","title":"Include Commits","description":"Include the 5 most recent commits.","default":true},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":600}},"type":"object","required":["repo"],"title":"GithubRepoSummaryRequest","description":"Request body for ``POST /github-repo-summary``."},"GithubRepoSummaryResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"repo":{"type":"string","title":"Repo"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"homepage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Homepage"},"stars":{"type":"integer","title":"Stars"},"forks":{"type":"integer","title":"Forks"},"watchers":{"type":"integer","title":"Watchers","default":0},"open_issues":{"type":"integer","title":"Open Issues"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"languages":{"additionalProperties":{"type":"number"},"type":"object","title":"Languages"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics"},"license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Branch"},"archived":{"type":"boolean","title":"Archived","default":false},"fork":{"type":"boolean","title":"Fork","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"last_push":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Push"},"readme_excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Readme Excerpt"},"recent_commits":{"items":{"$ref":"#/components/schemas/RepoCommit"},"type":"array","title":"Recent Commits"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","repo","url","stars","forks","open_issues","source"],"title":"GithubRepoSummaryResponse","description":"Response for ``POST /github-repo-summary``."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HashRequest":{"properties":{"text":{"type":"string","maxLength":1000000,"title":"Text","description":"Text to hash (UTF-8)."},"algorithms":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Algorithms","description":"Hash algorithms: md5, sha1, sha224, sha256, sha384, sha512."}},"type":"object","required":["text"],"title":"HashRequest","description":"Request body for ``POST /hash``."},"HashResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"text_length":{"type":"integer","title":"Text Length"},"byte_length":{"type":"integer","title":"Byte Length"},"algorithms":{"items":{"type":"string"},"type":"array","title":"Algorithms"},"hashes":{"additionalProperties":{"type":"string"},"type":"object","title":"Hashes"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","text_length","byte_length","source"],"title":"HashResponse","description":"Response for ``POST /hash``."},"HealthResponse":{"properties":{"status":{"type":"string","enum":["ok","degraded","down"],"title":"Status"},"version":{"type":"string","title":"Version"},"environment":{"type":"string","title":"Environment"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"uptime_seconds":{"type":"number","title":"Uptime Seconds"},"redis_connected":{"type":"boolean","title":"Redis Connected"},"redis_backend":{"type":"string","title":"Redis Backend"},"request_count":{"type":"integer","title":"Request Count"},"error_count":{"type":"integer","title":"Error Count"},"error_rate":{"type":"number","title":"Error Rate"},"cache_hits":{"type":"integer","title":"Cache Hits"},"cache_misses":{"type":"integer","title":"Cache Misses"},"cache_hit_rate":{"type":"number","title":"Cache Hit Rate"},"providers":{"items":{"$ref":"#/components/schemas/ProviderHealth"},"type":"array","title":"Providers"}},"type":"object","required":["status","version","environment","uptime_seconds","redis_connected","redis_backend","request_count","error_count","error_rate","cache_hits","cache_misses","cache_hit_rate","providers"],"title":"HealthResponse","description":"Response for ``GET /health``."},"HnHit":{"properties":{"object_id":{"type":"string","title":"Object Id"},"type":{"type":"string","title":"Type"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points"},"num_comments":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Comments"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"story_url":{"type":"string","title":"Story Url"},"story_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Story Text"}},"type":"object","required":["object_id","type","story_url"],"title":"HnHit"},"HnSearchRequest":{"properties":{"query":{"type":"string","maxLength":200,"minLength":1,"title":"Query"},"max_results":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Results","default":10},"sort_by":{"type":"string","pattern":"^(relevance|date)$","title":"Sort By","default":"relevance"},"tags":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Tags","description":"Algolia tags filter, e.g. story, comment, ask_hn, show_hn."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["query"],"title":"HnSearchRequest","description":"Request body for ``POST /hn-search``."},"HnSearchResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"sort_by":{"type":"string","title":"Sort By"},"hits":{"items":{"$ref":"#/components/schemas/HnHit"},"type":"array","title":"Hits"},"hit_count":{"type":"integer","title":"Hit Count"},"total_hits":{"type":"integer","title":"Total Hits"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","sort_by","hits","hit_count","total_hits","source"],"title":"HnSearchResponse","description":"Response for ``POST /hn-search``."},"HolidaysRequest":{"properties":{"country_code":{"type":"string","pattern":"^[A-Za-z]{2}$","title":"Country Code","description":"ISO 3166-1 alpha-2 country code, e.g. DE, US, GB."},"year":{"type":"integer","maximum":2100.0,"minimum":1975.0,"title":"Year"},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":86400}},"type":"object","required":["country_code","year"],"title":"HolidaysRequest","description":"Request body for ``POST /holidays``."},"HolidaysResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"country_code":{"type":"string","title":"Country Code"},"year":{"type":"integer","title":"Year"},"holidays":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Holidays"},"holiday_count":{"type":"integer","title":"Holiday Count"},"source":{"type":"string","title":"Source"},"attribution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribution"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","country_code","year","holiday_count","source"],"title":"HolidaysResponse","description":"Response for ``POST /holidays``."},"HtmlToMarkdownRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public page URL to convert into LLM-ready Markdown."},"include_links":{"type":"boolean","title":"Include Links","description":"Keep hyperlinks as [text](url).","default":true},"include_images":{"type":"boolean","title":"Include Images","description":"Keep images as ![alt](src).","default":false},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["url"],"title":"HtmlToMarkdownRequest","description":"Request body for ``POST /html-to-markdown``."},"HtmlToMarkdownResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"markdown":{"type":"string","title":"Markdown"},"word_count":{"type":"integer","title":"Word Count"},"char_count":{"type":"integer","title":"Char Count"},"truncated":{"type":"boolean","title":"Truncated","default":false},"extraction_method":{"type":"string","title":"Extraction Method"},"include_links":{"type":"boolean","title":"Include Links"},"include_images":{"type":"boolean","title":"Include Images"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","final_url","markdown","word_count","char_count","extraction_method","include_links","include_images"],"title":"HtmlToMarkdownResponse","description":"Response for ``POST /html-to-markdown``."},"LlmChatMessage":{"properties":{"role":{"type":"string","enum":["system","user","assistant"],"title":"Role","description":"Message role."},"content":{"type":"string","maxLength":100000,"minLength":1,"title":"Content","description":"Message text."}},"type":"object","required":["role","content"],"title":"LlmChatMessage","description":"One OpenAI-style chat message."},"LlmChatRequest":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/LlmChatMessage"},"type":"array","maxItems":50,"minItems":1,"title":"Messages","description":"Chat history (OpenAI format)."},"model":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Model","description":"Model name; omit to use the backend default."},"temperature":{"type":"number","maximum":2.0,"minimum":0.0,"title":"Temperature","description":"Sampling temperature.","default":0.7},"max_tokens":{"anyOf":[{"type":"integer","maximum":8192.0,"minimum":1.0},{"type":"null"}],"title":"Max Tokens","description":"Max output tokens; capped server-side by LITELLM_MAX_OUTPUT_TOKENS."}},"type":"object","required":["messages"],"title":"LlmChatRequest","description":"Request body for ``POST /llm-chat`` (proxied to a self-hosted LiteLLM backend)."},"LlmChatResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"model":{"type":"string","title":"Model"},"content":{"type":"string","title":"Content"},"finish_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finish Reason"},"usage":{"additionalProperties":true,"type":"object","title":"Usage"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","model","content","source"],"title":"LlmChatResponse","description":"Response for ``POST /llm-chat``."},"MarketSpreadRequest":{"properties":{"asset":{"type":"string","maxLength":20,"minLength":1,"title":"Asset","description":"Asset ticker, e.g. ETH."},"buy_venue":{"type":"string","maxLength":40,"minLength":1,"title":"Buy Venue","description":"Venue to buy on."},"sell_venue":{"type":"string","maxLength":40,"minLength":1,"title":"Sell Venue","description":"Venue to sell on."},"size_usd":{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0,"title":"Size Usd","description":"Notional trade size in USD for slippage estimate.","default":1000.0},"quote":{"type":"string","maxLength":10,"minLength":1,"title":"Quote","default":"USDT"},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":30}},"type":"object","required":["asset","buy_venue","sell_venue"],"title":"MarketSpreadRequest","description":"Request body for ``POST /market-spread``."},"MarketSpreadResponse":{"properties":{"asset":{"type":"string","title":"Asset"},"quote":{"type":"string","title":"Quote"},"buy_venue":{"type":"string","title":"Buy Venue"},"sell_venue":{"type":"string","title":"Sell Venue"},"buy_price":{"type":"number","title":"Buy Price"},"sell_price":{"type":"number","title":"Sell Price"},"gross_spread_bps":{"type":"number","title":"Gross Spread Bps"},"fees_bps":{"type":"number","title":"Fees Bps"},"slippage_bps":{"type":"number","title":"Slippage Bps"},"transfer_cost":{"type":"number","title":"Transfer Cost","description":"Absolute transfer/gas cost in quote units."},"transfer_cost_bps":{"type":"number","title":"Transfer Cost Bps"},"net_spread_bps":{"type":"number","title":"Net Spread Bps"},"estimated_net_profit_usd":{"type":"number","title":"Estimated Net Profit Usd"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence"},"execution_risk":{"type":"string","enum":["low","medium","high"],"title":"Execution Risk"},"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."}},"type":"object","required":["asset","quote","buy_venue","sell_venue","buy_price","sell_price","gross_spread_bps","fees_bps","slippage_bps","transfer_cost","transfer_cost_bps","net_spread_bps","estimated_net_profit_usd","confidence","execution_risk","freshness_seconds","cost_usdc","routing"],"title":"MarketSpreadResponse","description":"Response for ``POST /market-spread``."},"MediaConvertRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public URL of the source audio/video/image file."},"target_format":{"type":"string","maxLength":10,"minLength":1,"title":"Target Format","description":"Output container/codec, e.g. mp3, mp4, webm, wav, png."},"operation":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Operation","description":"Optional named operation, e.g. 'extract-audio', 'thumbnail', 'transcode'."}},"type":"object","required":["url","target_format"],"title":"MediaConvertRequest","description":"Request body for ``POST /media-convert`` (proxied to a self-hosted FFmpeg backend)."},"MediaConvertResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"source_url":{"type":"string","title":"Source Url"},"target_format":{"type":"string","title":"Target Format"},"operation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operation"},"output_url":{"type":"string","title":"Output Url"},"output_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Bytes"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","source_url","target_format","output_url","source"],"title":"MediaConvertResponse","description":"Response for ``POST /media-convert``."},"MetadataRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public page URL to extract metadata from."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["url"],"title":"MetadataRequest","description":"Request body for ``POST /metadata``."},"MetadataResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"status_code":{"type":"integer","title":"Status Code"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"keywords":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Keywords"},"canonical":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical"},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"},"charset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Charset"},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Favicon"},"open_graph":{"additionalProperties":{"type":"string"},"type":"object","title":"Open Graph"},"twitter":{"additionalProperties":{"type":"string"},"type":"object","title":"Twitter"},"og_count":{"type":"integer","title":"Og Count"},"twitter_count":{"type":"integer","title":"Twitter Count"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","final_url","status_code","open_graph","twitter","og_count","twitter_count"],"title":"MetadataResponse","description":"Response for ``POST /metadata``."},"NewsArticle":{"properties":{"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["title","url"],"title":"NewsArticle"},"NewsSearchRequest":{"properties":{"query":{"type":"string","maxLength":200,"minLength":2,"title":"Query","description":"Search phrase (GDELT syntax allowed)."},"max_results":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Results","default":10},"language":{"type":"string","maxLength":10,"minLength":2,"title":"Language","description":"Article language (ISO-639-1, e.g. en, de, fr).","default":"en"},"timespan":{"type":"string","pattern":"^\\d{1,3}(min|h|d|w)$","title":"Timespan","description":"Look-back window, e.g. 24h, 7d, 4w.","default":"7d"},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["query"],"title":"NewsSearchRequest","description":"Request body for ``POST /news-search``."},"NewsSearchResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"language":{"type":"string","title":"Language"},"timespan":{"type":"string","title":"Timespan"},"articles":{"items":{"$ref":"#/components/schemas/NewsArticle"},"type":"array","title":"Articles"},"article_count":{"type":"integer","title":"Article Count"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","language","timespan","articles","article_count","source"],"title":"NewsSearchResponse","description":"Response for ``POST /news-search``."},"NpmPackageRequest":{"properties":{"name":{"type":"string","maxLength":214,"minLength":1,"pattern":"^(@[a-z0-9\\-_.]+/)?[a-z0-9\\-_.]+$","title":"Name","description":"npm package name, scoped allowed."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["name"],"title":"NpmPackageRequest","description":"Request body for ``POST /npm-package``."},"NpmPackageResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"name":{"type":"string","title":"Name"},"latest_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Version"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License"},"homepage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Homepage"},"repository_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repository Url"},"npm_url":{"type":"string","title":"Npm Url"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"},"maintainers":{"items":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"array","title":"Maintainers"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"latest_published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Published At"},"version_count":{"type":"integer","title":"Version Count","default":0},"dependency_count":{"type":"integer","title":"Dependency Count","default":0},"dependencies":{"additionalProperties":true,"type":"object","title":"Dependencies"},"weekly_downloads":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weekly Downloads"},"deprecated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deprecated"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","name","npm_url","source"],"title":"NpmPackageResponse","description":"Response for ``POST /npm-package``."},"PartnerUpsert":{"properties":{"slug":{"type":"string","maxLength":40,"minLength":3,"title":"Slug"},"name":{"type":"string","maxLength":80,"minLength":2,"title":"Name"},"upstream_url":{"type":"string","maxLength":500,"title":"Upstream Url"},"price_usd":{"type":"number","title":"Price Usd"},"revenue_share":{"type":"number","title":"Revenue Share","default":0.25},"owner_email":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Owner Email"},"auth_header_name":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Auth Header Name"},"auth_header_value":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Auth Header Value"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["slug","name","upstream_url","price_usd"],"title":"PartnerUpsert"},"PdfTextRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public URL of the PDF (max 25 MB)."},"max_pages":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Max Pages","default":50},"pages":{"anyOf":[{"items":{"type":"integer"},"type":"array","maxItems":200},{"type":"null"}],"title":"Pages","description":"1-based page numbers to extract."}},"type":"object","required":["url"],"title":"PdfTextRequest","description":"Request body for ``POST /pdf-text``."},"PdfTextResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"bytes":{"type":"integer","title":"Bytes"},"fetch_ms":{"type":"integer","title":"Fetch Ms"},"page_count":{"type":"integer","title":"Page Count"},"pages_extracted":{"type":"integer","title":"Pages Extracted"},"truncated":{"type":"boolean","title":"Truncated"},"char_count":{"type":"integer","title":"Char Count"},"word_count":{"type":"integer","title":"Word Count"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"pages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Pages"},"text":{"type":"string","title":"Text"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","final_url","bytes","fetch_ms","page_count","pages_extracted","truncated","char_count","word_count","metadata","pages","text"],"title":"PdfTextResponse","description":"Response for ``POST /pdf-text``."},"ProviderHealth":{"properties":{"name":{"type":"string","title":"Name"},"capability":{"type":"string","title":"Capability"},"healthy":{"type":"boolean","title":"Healthy"},"circuit_open":{"type":"boolean","title":"Circuit Open"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"success_rate":{"type":"number","title":"Success Rate"},"avg_latency_ms":{"type":"number","title":"Avg Latency Ms"},"requests":{"type":"integer","title":"Requests"}},"type":"object","required":["name","capability","healthy","circuit_open","consecutive_failures","success_rate","avg_latency_ms","requests"],"title":"ProviderHealth"},"PublishVerifyRequest":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url","description":"Landing page / document URL for SEO checks."},"pdf_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Pdf Url","description":"PDF URL to extract text from (max 25 MB)."},"emails":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":10},{"type":"null"}],"title":"Emails","description":"Contact emails to validate."},"checks":{"items":{"type":"string"},"type":"array","maxItems":4,"title":"Checks","description":"Checks to run: seo, pdf_text, email_validation."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","title":"PublishVerifyRequest","description":"Request body for ``POST /publish-verify`` (pre-publication QA bundle)."},"PypiPackageRequest":{"properties":{"name":{"type":"string","maxLength":214,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._\\-]*$","title":"Name","description":"PyPI project name."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["name"],"title":"PypiPackageRequest","description":"Request body for ``POST /pypi-package``."},"PypiPackageResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"name":{"type":"string","title":"Name"},"latest_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Version"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"homepage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Homepage"},"project_urls":{"additionalProperties":true,"type":"object","title":"Project Urls"},"pypi_url":{"type":"string","title":"Pypi Url"},"requires_python":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requires Python"},"requires_dist":{"items":{"type":"string"},"type":"array","title":"Requires Dist"},"dependency_count":{"type":"integer","title":"Dependency Count","default":0},"keywords":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Keywords"},"classifiers":{"items":{"type":"string"},"type":"array","title":"Classifiers"},"release_count":{"type":"integer","title":"Release Count","default":0},"latest_released_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Released At"},"yanked":{"type":"boolean","title":"Yanked","default":false},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","name","pypi_url","source"],"title":"PypiPackageResponse","description":"Response for ``POST /pypi-package``."},"QrGenerateRequest":{"properties":{"data":{"type":"string","maxLength":4096,"minLength":1,"title":"Data","description":"Text or URL to encode in the QR code."},"error_correction":{"type":"string","title":"Error Correction","description":"Error-correction level: L (~7%), M (~15%), Q (~25%), H (~30%).","default":"M"},"scale":{"type":"integer","maximum":40.0,"minimum":1.0,"title":"Scale","description":"Pixel size of each QR module in the SVG output.","default":8},"border":{"type":"integer","maximum":20.0,"minimum":0.0,"title":"Border","description":"Quiet-zone width in modules.","default":4}},"type":"object","required":["data"],"title":"QrGenerateRequest","description":"Request body for ``POST /qr-generate``."},"QrGenerateResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"data":{"type":"string","title":"Data"},"format":{"type":"string","title":"Format"},"svg":{"type":"string","title":"Svg"},"data_uri":{"type":"string","title":"Data Uri"},"version":{"type":"integer","title":"Version"},"module_count":{"type":"integer","title":"Module Count"},"error_correction":{"type":"string","title":"Error Correction"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","data","format","svg","data_uri","version","module_count","error_correction","source"],"title":"QrGenerateResponse","description":"Response for ``POST /qr-generate``."},"RateLimitInfo":{"properties":{"limit":{"type":"integer","title":"Limit"},"remaining":{"type":"integer","title":"Remaining"},"window_seconds":{"type":"integer","title":"Window Seconds"},"reset":{"type":"integer","title":"Reset","description":"Unix timestamp when the current window frees up."}},"type":"object","required":["limit","remaining","window_seconds","reset"],"title":"RateLimitInfo"},"RedditPost":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"},"permalink":{"type":"string","title":"Permalink"},"subreddit":{"type":"string","title":"Subreddit"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"score":{"type":"integer","title":"Score"},"upvote_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Upvote Ratio"},"num_comments":{"type":"integer","title":"Num Comments"},"created_utc":{"type":"integer","title":"Created Utc"},"created_at":{"type":"string","title":"Created At"},"selftext":{"type":"string","title":"Selftext"},"is_self":{"type":"boolean","title":"Is Self"},"flair":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flair"},"over_18":{"type":"boolean","title":"Over 18","default":false}},"type":"object","required":["id","title","url","permalink","subreddit","score","num_comments","created_utc","created_at","selftext","is_self"],"title":"RedditPost"},"RedditSearchRequest":{"properties":{"query":{"type":"string","maxLength":200,"minLength":1,"title":"Query"},"subreddit":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Subreddit","description":"Restrict to one subreddit (without r/)."},"max_results":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Results","default":10},"sort":{"type":"string","pattern":"^(relevance|hot|new|top|comments)$","title":"Sort","default":"relevance"},"time_filter":{"type":"string","pattern":"^(hour|day|week|month|year|all)$","title":"Time Filter","default":"all"},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["query"],"title":"RedditSearchRequest","description":"Request body for ``POST /reddit-search``."},"RedditSearchResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"subreddit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subreddit"},"sort":{"type":"string","title":"Sort"},"posts":{"items":{"$ref":"#/components/schemas/RedditPost"},"type":"array","title":"Posts"},"post_count":{"type":"integer","title":"Post Count"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","sort","posts","post_count","source"],"title":"RedditSearchResponse","description":"Response for ``POST /reddit-search``."},"RedirectHop":{"properties":{"url":{"type":"string","title":"Url"},"status_code":{"type":"integer","title":"Status Code"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"}},"type":"object","required":["url","status_code"],"title":"RedirectHop"},"RenderJsRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public URL to render with a real browser (JS executed)."},"wait_ms":{"type":"integer","maximum":15000.0,"minimum":0.0,"title":"Wait Ms","description":"Extra wait after load for late content (milliseconds).","default":0}},"type":"object","required":["url"],"title":"RenderJsRequest","description":"Request body for ``POST /render-js`` (proxied to a self-hosted AnyCrawl backend)."},"RenderJsResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"html":{"type":"string","title":"Html"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"markdown":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Markdown"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","html","source"],"title":"RenderJsResponse","description":"Response for ``POST /render-js``."},"RepoCommit":{"properties":{"sha":{"type":"string","title":"Sha"},"message":{"type":"string","title":"Message"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},"type":"object","required":["sha","message"],"title":"RepoCommit"},"RobotsCheckRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Full URL to test against the site's robots.txt."},"user_agent":{"type":"string","maxLength":200,"title":"User Agent","description":"User-agent string to evaluate the rules for.","default":"*"},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["url"],"title":"RobotsCheckRequest","description":"Request body for ``POST /robots-check``."},"RobotsCheckResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"user_agent":{"type":"string","title":"User Agent"},"allowed":{"type":"boolean","title":"Allowed"},"robots_txt_found":{"type":"boolean","title":"Robots Txt Found"},"robots_txt_url":{"type":"string","title":"Robots Txt Url"},"robots_status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Robots Status Code"},"path_checked":{"type":"string","title":"Path Checked"},"crawl_delay_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crawl Delay Seconds"},"request_rate":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Rate"},"sitemaps":{"items":{"type":"string"},"type":"array","title":"Sitemaps"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","user_agent","allowed","robots_txt_found","robots_txt_url","path_checked","source"],"title":"RobotsCheckResponse","description":"Response for ``POST /robots-check``."},"RoutingMeta":{"properties":{"provider":{"type":"string","title":"Provider","description":"Name of the upstream provider that served the result."},"fallback_used":{"type":"boolean","title":"Fallback Used","description":"True if the primary provider failed and a fallback served the result.","default":false},"providers_tried":{"items":{"type":"string"},"type":"array","title":"Providers Tried","description":"Providers attempted, in order."},"cache_hit":{"type":"boolean","title":"Cache Hit","description":"True if the result was served from cache.","default":false},"latency_ms":{"type":"integer","title":"Latency Ms","description":"End-to-end routing latency in milliseconds.","default":0}},"type":"object","required":["provider"],"title":"RoutingMeta","description":"Metadata about how the request was routed (returned to the caller)."},"RssFeedRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"RSS 2.0 or Atom feed URL."},"max_items":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Items","default":20},"include_content":{"type":"boolean","title":"Include Content","description":"Include full item content (text-only, truncated).","default":false},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","required":["url"],"title":"RssFeedRequest","description":"Request body for ``POST /rss-feed``."},"RssFeedResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"format":{"type":"string","title":"Format"},"feed_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feed Title"},"feed_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feed Link"},"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"item_count":{"type":"integer","title":"Item Count"},"total_items":{"type":"integer","title":"Total Items"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","format","items","item_count","total_items"],"title":"RssFeedResponse","description":"Response for ``POST /rss-feed``."},"ScreenshotRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public URL to screenshot with a real browser."},"full_page":{"type":"boolean","title":"Full Page","description":"Capture the full scrollable page, not just the viewport.","default":true},"format":{"type":"string","enum":["png","jpeg"],"title":"Format","description":"Image format.","default":"png"},"wait_ms":{"type":"integer","maximum":15000.0,"minimum":0.0,"title":"Wait Ms","description":"Extra wait after load before capture (milliseconds).","default":0}},"type":"object","required":["url"],"title":"ScreenshotRequest","description":"Request body for ``POST /screenshot`` (proxied to a self-hosted AnyCrawl backend)."},"ScreenshotResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"format":{"type":"string","title":"Format"},"full_page":{"type":"boolean","title":"Full Page"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"image_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Base64"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","format","full_page","source"],"title":"ScreenshotResponse","description":"Response for ``POST /screenshot``."},"SeoCheckRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Page URL to audit."},"check_robots":{"type":"boolean","title":"Check Robots","description":"Also probe robots.txt and sitemap.xml.","default":true}},"type":"object","required":["url"],"title":"SeoCheckRequest","description":"Request body for ``POST /seo-check``."},"SeoCheckResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"http_status":{"type":"integer","title":"Http Status"},"redirects":{"type":"integer","title":"Redirects"},"https":{"type":"boolean","title":"Https"},"load_ms":{"type":"integer","title":"Load Ms"},"html_bytes":{"type":"integer","title":"Html Bytes"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"title_length":{"type":"integer","title":"Title Length"},"meta_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Description"},"meta_description_length":{"type":"integer","title":"Meta Description Length"},"meta_robots":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Robots"},"canonical":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical"},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"},"viewport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Viewport"},"h1":{"items":{"type":"string"},"type":"array","title":"H1"},"h2_count":{"type":"integer","title":"H2 Count"},"word_count":{"type":"integer","title":"Word Count"},"images":{"additionalProperties":{"type":"integer"},"type":"object","title":"Images"},"links":{"additionalProperties":{"type":"integer"},"type":"object","title":"Links"},"open_graph":{"additionalProperties":true,"type":"object","title":"Open Graph"},"twitter_card":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitter Card"},"structured_data_blocks":{"type":"integer","title":"Structured Data Blocks"},"hreflang_count":{"type":"integer","title":"Hreflang Count"},"robots_txt":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Robots Txt"},"sitemap":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sitemap"},"issues":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Issues"},"score":{"type":"integer","title":"Score"},"grade":{"type":"string","title":"Grade"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","final_url","http_status","redirects","https","load_ms","html_bytes","title_length","meta_description_length","h1","h2_count","word_count","images","links","open_graph","structured_data_blocks","hreflang_count","issues","score","grade"],"title":"SeoCheckResponse","description":"Response for ``POST /seo-check``."},"SitemapEntry":{"properties":{"loc":{"type":"string","title":"Loc"},"lastmod":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastmod"},"changefreq":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changefreq"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"}},"type":"object","required":["loc"],"title":"SitemapEntry"},"SitemapUrlsRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Sitemap URL, sitemap index, or a site root (robots.txt / /sitemap.xml is used)."},"max_urls":{"type":"integer","maximum":5000.0,"minimum":1.0,"title":"Max Urls","description":"Hard cap on returned URLs (default 200, max 5000).","default":200},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["url"],"title":"SitemapUrlsRequest","description":"Request body for ``POST /sitemap-urls``."},"SitemapUrlsResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"discovered_via":{"type":"string","title":"Discovered Via"},"sitemaps_fetched":{"items":{"type":"string"},"type":"array","title":"Sitemaps Fetched"},"child_sitemaps":{"items":{"type":"string"},"type":"array","title":"Child Sitemaps"},"urls":{"items":{"$ref":"#/components/schemas/SitemapEntry"},"type":"array","title":"Urls"},"url_count":{"type":"integer","title":"Url Count"},"truncated":{"type":"boolean","title":"Truncated"},"max_urls":{"type":"integer","title":"Max Urls"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","discovered_via","sitemaps_fetched","child_sitemaps","urls","url_count","truncated","max_urls"],"title":"SitemapUrlsResponse","description":"Response for ``POST /sitemap-urls``."},"SnapshotTokenBalance":{"properties":{"contract":{"type":"string","title":"Contract"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"decimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Decimals"},"raw":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw"},"balance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Usd"}},"type":"object","required":["contract"],"title":"SnapshotTokenBalance"},"SslInfo":{"properties":{"checked":{"type":"boolean","title":"Checked"},"valid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Valid"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"days_until_expiry":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Until Expiry"},"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["checked"],"title":"SslInfo"},"StatsResponse":{"properties":{"requests_total":{"type":"integer","title":"Requests Total"},"requests_today":{"type":"integer","title":"Requests Today"},"paid_requests_total":{"type":"integer","title":"Paid Requests Total"},"free_requests_total":{"type":"integer","title":"Free Requests Total"},"cache_hits_total":{"type":"integer","title":"Cache Hits Total"},"active_wallets_total":{"type":"integer","title":"Active Wallets Total"},"active_wallets_today":{"type":"integer","title":"Active Wallets Today"},"active_api_keys":{"type":"integer","title":"Active Api Keys"},"revenue_usd_total":{"type":"number","title":"Revenue Usd Total"},"revenue_usd_today":{"type":"number","title":"Revenue Usd Today"},"provider_cost_usd_total":{"type":"number","title":"Provider Cost Usd Total"},"gross_margin_usd_total":{"type":"number","title":"Gross Margin Usd Total"},"providers":{"additionalProperties":{"type":"integer"},"type":"object","title":"Providers"},"recent_settlements":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Recent Settlements","description":"Newest on-chain settlements (request path → tx hash) for reconciliation."},"endpoints":{"additionalProperties":{"type":"integer"},"type":"object","title":"Endpoints"},"last_request_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Request At"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"}},"type":"object","required":["requests_total","requests_today","paid_requests_total","free_requests_total","cache_hits_total","active_wallets_total","active_wallets_today","active_api_keys","revenue_usd_total","revenue_usd_today","provider_cost_usd_total","gross_margin_usd_total"],"title":"StatsResponse","description":"Response for ``GET /stats`` – global service statistics."},"TextStatsRequest":{"properties":{"text":{"anyOf":[{"type":"string","maxLength":200000},{"type":"null"}],"title":"Text","description":"Raw text to analyse. Optional if 'url' is given."},"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url","description":"Page URL to fetch and analyse instead of raw text."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","title":"TextStatsRequest","description":"Request body for ``POST /text-stats``."},"TextStatsResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"source":{"type":"string","title":"Source"},"character_count":{"type":"integer","title":"Character Count"},"character_count_no_spaces":{"type":"integer","title":"Character Count No Spaces"},"word_count":{"type":"integer","title":"Word Count"},"sentence_count":{"type":"integer","title":"Sentence Count"},"paragraph_count":{"type":"integer","title":"Paragraph Count"},"syllable_count":{"type":"integer","title":"Syllable Count"},"complex_word_count":{"type":"integer","title":"Complex Word Count"},"avg_words_per_sentence":{"type":"number","title":"Avg Words Per Sentence"},"avg_syllables_per_word":{"type":"number","title":"Avg Syllables Per Word"},"flesch_reading_ease":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Flesch Reading Ease"},"flesch_kincaid_grade":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Flesch Kincaid Grade"},"reading_time_minutes":{"type":"number","title":"Reading Time Minutes"},"speaking_time_minutes":{"type":"number","title":"Speaking Time Minutes"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","source","character_count","character_count_no_spaces","word_count","sentence_count","paragraph_count","syllable_count","complex_word_count","avg_words_per_sentence","avg_syllables_per_word","reading_time_minutes","speaking_time_minutes"],"title":"TextStatsResponse","description":"Response for ``POST /text-stats``."},"TimezoneRequest":{"properties":{"timezone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Timezone","description":"IANA timezone name, e.g. 'Europe/Berlin'. Optional if 'location' is given."},"location":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Location","description":"Place name to resolve to a timezone, e.g. 'Tokyo'. Optional if 'timezone' is given."},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":0}},"type":"object","title":"TimezoneRequest","description":"Request body for ``POST /timezone``."},"TimezoneResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"timezone":{"type":"string","title":"Timezone"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"datetime":{"type":"string","title":"Datetime"},"date":{"type":"string","title":"Date"},"time":{"type":"string","title":"Time"},"utc_datetime":{"type":"string","title":"Utc Datetime"},"utc_offset":{"type":"string","title":"Utc Offset"},"utc_offset_seconds":{"type":"integer","title":"Utc Offset Seconds"},"day_of_week":{"type":"string","title":"Day Of Week"},"day_of_year":{"type":"integer","title":"Day Of Year"},"week_number":{"type":"integer","title":"Week Number"},"is_dst":{"type":"boolean","title":"Is Dst"},"dst_offset_seconds":{"type":"integer","title":"Dst Offset Seconds"},"abbreviation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abbreviation"},"unix_time":{"type":"integer","title":"Unix Time"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","timezone","datetime","date","time","utc_datetime","utc_offset","utc_offset_seconds","day_of_week","day_of_year","week_number","is_dst","dst_offset_seconds","unix_time","source"],"title":"TimezoneResponse","description":"Response for ``POST /timezone``."},"TokenPriceRequest":{"properties":{"asset":{"type":"string","maxLength":20,"minLength":1,"title":"Asset","description":"Asset ticker, e.g. ETH."},"quote":{"type":"string","maxLength":10,"minLength":1,"title":"Quote","description":"Quote currency, e.g. USD or USDT.","default":"USD"},"venues":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":6},{"type":"null"}],"title":"Venues","description":"Optional subset of binance, coinbase, kraken, coingecko."},"max_age_seconds":{"type":"integer","maximum":300.0,"minimum":0.0,"title":"Max Age Seconds","default":5}},"type":"object","required":["asset"],"title":"TokenPriceRequest","description":"Request body for ``POST /token-price``."},"TokenPriceResponse":{"properties":{"asset":{"type":"string","title":"Asset"},"quote":{"type":"string","title":"Quote"},"price":{"type":"number","title":"Price"},"price_min":{"type":"number","title":"Price Min"},"price_max":{"type":"number","title":"Price Max"},"max_deviation_pct":{"type":"number","title":"Max Deviation Pct"},"change_24h_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Change 24H Pct"},"sources":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Sources"},"sources_failed":{"additionalProperties":{"type":"string"},"type":"object","title":"Sources Failed"},"sources_checked":{"type":"integer","title":"Sources Checked"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence"},"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."}},"type":"object","required":["asset","quote","price","price_min","price_max","max_deviation_pct","sources","sources_checked","confidence","freshness_seconds","cost_usdc","routing"],"title":"TokenPriceResponse","description":"Response for ``POST /token-price``."},"TranscriptSegment":{"properties":{"start":{"type":"number","title":"Start"},"end":{"type":"number","title":"End"},"text":{"type":"string","title":"Text"}},"type":"object","required":["start","end","text"],"title":"TranscriptSegment"},"TxStatusRequest":{"properties":{"tx_hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","title":"Tx Hash","description":"Transaction hash (0x + 64 hex)."},"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","description":"base, ethereum, bsc, polygon, arbitrum, optimism.","default":"base"},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":0}},"type":"object","required":["tx_hash"],"title":"TxStatusRequest","description":"Request body for ``POST /tx-status``."},"TxStatusResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"tx_hash":{"type":"string","title":"Tx Hash"},"chain":{"type":"string","title":"Chain"},"chain_id":{"type":"integer","title":"Chain Id"},"status":{"type":"string","enum":["success","failed","pending"],"title":"Status"},"block_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Block Number"},"confirmations":{"type":"integer","title":"Confirmations"},"from_address":{"type":"string","title":"From Address"},"to_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Address"},"value_wei":{"type":"string","title":"Value Wei"},"value":{"type":"number","title":"Value"},"native_token":{"type":"string","title":"Native Token"},"gas_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gas Used"},"gas_price_wei":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gas Price Wei"},"gas_price_gwei":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gas Price Gwei"},"fee_native":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fee Native"},"nonce":{"type":"integer","title":"Nonce"},"input_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Selector"},"contract_created":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Created"},"transfers":{"items":{"$ref":"#/components/schemas/Erc20Transfer"},"type":"array","title":"Transfers"},"log_count":{"type":"integer","title":"Log Count"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","tx_hash","chain","chain_id","status","confirmations","from_address","value_wei","value","native_token","nonce","transfers","log_count"],"title":"TxStatusResponse","description":"Response for ``POST /tx-status``."},"UrlStatusRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Public URL to probe."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":0}},"type":"object","required":["url"],"title":"UrlStatusRequest","description":"Request body for ``POST /url-status``."},"UrlStatusResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"url":{"type":"string","title":"Url"},"final_url":{"type":"string","title":"Final Url"},"reachable":{"type":"boolean","title":"Reachable"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"ok":{"type":"boolean","title":"Ok"},"method_used":{"type":"string","title":"Method Used"},"response_time_ms":{"type":"integer","title":"Response Time Ms"},"redirect_count":{"type":"integer","title":"Redirect Count"},"redirect_chain":{"items":{"$ref":"#/components/schemas/RedirectHop"},"type":"array","title":"Redirect Chain"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"content_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Content Length"},"server":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server"},"ssl":{"$ref":"#/components/schemas/SslInfo"},"security_headers":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Security Headers"},"security_score":{"type":"integer","title":"Security Score"},"missing_security_headers":{"items":{"type":"string"},"type":"array","title":"Missing Security Headers"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","url","final_url","reachable","ok","method_used","response_time_ms","redirect_count","redirect_chain","ssl","security_headers","security_score","missing_security_headers"],"title":"UrlStatusResponse","description":"Response for ``POST /url-status``."},"UsageResponse":{"properties":{"identity_type":{"type":"string","enum":["wallet","api_key"],"title":"Identity Type"},"wallet":{"type":"string","title":"Wallet"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"api_key_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Api Key Active"},"requests_today":{"type":"integer","title":"Requests Today"},"requests_total":{"type":"integer","title":"Requests Total"},"paid_requests_total":{"type":"integer","title":"Paid Requests Total"},"free_requests_total":{"type":"integer","title":"Free Requests Total"},"cache_hits_total":{"type":"integer","title":"Cache Hits Total"},"cost_usd_today":{"type":"number","title":"Cost Usd Today","description":"Amount paid via x402 today."},"cost_usd_total":{"type":"number","title":"Cost Usd Total","description":"Amount paid via x402 overall."},"providers":{"additionalProperties":{"type":"integer"},"type":"object","title":"Providers"},"endpoints":{"additionalProperties":{"type":"integer"},"type":"object","title":"Endpoints"},"free_tier":{"$ref":"#/components/schemas/FreeTierInfo"},"rate_limit":{"anyOf":[{"$ref":"#/components/schemas/RateLimitInfo"},{"type":"null"}]},"last_request_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Request At"},"last_requests":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Last Requests"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"}},"type":"object","required":["identity_type","wallet","requests_today","requests_total","paid_requests_total","free_requests_total","cache_hits_total","cost_usd_today","cost_usd_total","free_tier"],"title":"UsageResponse","description":"Response for ``GET /usage``."},"UuidRequest":{"properties":{"version":{"type":"integer","title":"Version","description":"UUID version: 4 (random) or 5 (namespaced SHA-1).","default":4},"count":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Count","description":"How many UUIDs to generate (v4 only; v5 always returns 1).","default":1},"namespace":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Namespace","description":"For v5: 'dns', 'url', 'oid', 'x500' or a UUID string."},"name":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Name","description":"For v5: the name to hash within the namespace."}},"type":"object","title":"UuidRequest","description":"Request body for ``POST /uuid``."},"UuidResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"version":{"type":"integer","title":"Version"},"count":{"type":"integer","title":"Count"},"uuids":{"items":{"type":"string"},"type":"array","title":"Uuids"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","version","count","source"],"title":"UuidResponse","description":"Response for ``POST /uuid``."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WalletBalanceRequest":{"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","title":"Address","description":"EVM wallet address."},"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain","default":"base"},"tokens":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":8},{"type":"null"}],"title":"Tokens","description":"Token symbols (USDC, USDT, DAI, WETH). Default: all known."}},"type":"object","required":["address"],"title":"WalletBalanceRequest","description":"Request body for ``POST /wallet-balance``."},"WalletBalanceResponse":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain"},"chain_id":{"type":"integer","title":"Chain Id"},"block_number":{"type":"integer","title":"Block Number"},"balances":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Balances"},"total_usd":{"type":"number","title":"Total Usd"},"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."}},"type":"object","required":["address","chain","chain_id","block_number","balances","total_usd","freshness_seconds","cost_usdc","routing"],"title":"WalletBalanceResponse","description":"Response for ``POST /wallet-balance``."},"WeatherRequest":{"properties":{"location":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Location","description":"Place name, e.g. 'Berlin' or 'Paris, France'. Optional if latitude/longitude are given."},"latitude":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Longitude"},"forecast_days":{"type":"integer","maximum":16.0,"minimum":1.0,"title":"Forecast Days","default":7},"temperature_unit":{"type":"string","pattern":"^(celsius|fahrenheit)$","title":"Temperature Unit","default":"celsius"},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":1800}},"type":"object","title":"WeatherRequest","description":"Request body for ``POST /weather``."},"WeatherResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation"},"temperature_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Temperature Unit"},"current":{"additionalProperties":true,"type":"object","title":"Current"},"daily":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Daily"},"source":{"type":"string","title":"Source"},"attribution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribution"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","source"],"title":"WeatherResponse","description":"Response for ``POST /weather``."},"WebCrawlRequest":{"properties":{"start_url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Start Url","description":"Public page to start from."},"max_pages":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Pages","description":"Hard cap on fetched pages (max 10).","default":5},"follow_links":{"type":"boolean","title":"Follow Links","description":"Follow same-domain links found on crawled pages.","default":true},"include_links":{"type":"boolean","title":"Include Links","default":true},"respect_robots":{"type":"boolean","title":"Respect Robots","description":"Honour robots.txt Disallow rules for '*'.","default":true},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":600}},"type":"object","required":["start_url"],"title":"WebCrawlRequest","description":"Request body for ``POST /web-crawl``."},"WebCrawlResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"start_url":{"type":"string","title":"Start Url"},"domain":{"type":"string","title":"Domain"},"pages":{"items":{"$ref":"#/components/schemas/CrawledPage"},"type":"array","title":"Pages"},"page_count":{"type":"integer","title":"Page Count"},"pages_failed":{"type":"integer","title":"Pages Failed"},"max_pages":{"type":"integer","title":"Max Pages"},"follow_links":{"type":"boolean","title":"Follow Links"},"robots_blocked":{"type":"integer","title":"Robots Blocked"},"queued_not_fetched":{"type":"integer","title":"Queued Not Fetched"},"total_words":{"type":"integer","title":"Total Words"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","start_url","domain","pages","page_count","pages_failed","max_pages","follow_links","robots_blocked","queued_not_fetched","total_words"],"title":"WebCrawlResponse","description":"Response for ``POST /web-crawl``."},"WebSearchRequest":{"properties":{"query":{"type":"string","maxLength":400,"minLength":1,"title":"Query","description":"Search query."},"max_results":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Results","default":10},"region":{"type":"string","maxLength":10,"minLength":2,"title":"Region","description":"DuckDuckGo region, e.g. de-de.","default":"wt-wt"},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","description":"Accept cached results up to this age.","default":300}},"type":"object","required":["query"],"title":"WebSearchRequest","description":"Request body for ``POST /web-search``."},"WebSearchResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"region":{"type":"string","title":"Region"},"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"},"result_count":{"type":"integer","title":"Result Count"},"source":{"type":"string","title":"Source"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","region","results","result_count","source"],"title":"WebSearchResponse","description":"Response for ``POST /web-search``."},"WebToStructuredRequest":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url","description":"Public page URL to convert to clean markdown."},"pdf_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Pdf Url","description":"PDF URL to extract text from (max 25 MB)."},"rss_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Rss Url","description":"RSS/Atom feed URL to parse into items."},"ip":{"anyOf":[{"type":"string","maxLength":45},{"type":"null"}],"title":"Ip","description":"IP address for geolocation context."},"include":{"items":{"type":"string"},"type":"array","maxItems":4,"title":"Include","description":"Operations to run: extract, pdf_text, rss_feed, geo_ip."},"max_age_seconds":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Max Age Seconds","default":300}},"type":"object","title":"WebToStructuredRequest","description":"Request body for ``POST /web-to-structured`` (low-cost structured extraction bundle)."},"WikipediaSummaryRequest":{"properties":{"title":{"type":"string","maxLength":300,"minLength":1,"title":"Title","description":"Article title or search phrase."},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[a-z]{2,8})?$","title":"Language","description":"Wikipedia language code (default en).","default":"en"},"max_chars":{"type":"integer","maximum":5000.0,"minimum":100.0,"title":"Max Chars","description":"Max characters of the extract (default 1200).","default":1200},"max_age_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Max Age Seconds","default":3600}},"type":"object","required":["title"],"title":"WikipediaSummaryRequest","description":"Request body for ``POST /wikipedia-summary``."},"WikipediaSummaryResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"query":{"type":"string","title":"Query"},"language":{"type":"string","title":"Language"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract"},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"coordinates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Coordinates"},"page_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Type"},"last_modified":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Modified"},"resolved_from_search":{"type":"boolean","title":"Resolved From Search","default":false},"source":{"type":"string","title":"Source"},"license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","query","language","source"],"title":"WikipediaSummaryResponse","description":"Response for ``POST /wikipedia-summary``."},"YoutubeTranscriptRequest":{"properties":{"video_id":{"type":"string","maxLength":300,"minLength":11,"title":"Video Id","description":"11-char YouTube video id or any YouTube URL."},"language":{"type":"string","maxLength":10,"minLength":2,"title":"Language","description":"Preferred caption language (BCP-47, e.g. en, de, pt-BR).","default":"en"},"include_segments":{"type":"boolean","title":"Include Segments","description":"Return timestamped segments in addition to full_text.","default":true},"max_age_seconds":{"type":"integer","maximum":604800.0,"minimum":0.0,"title":"Max Age Seconds","default":86400}},"type":"object","required":["video_id"],"title":"YoutubeTranscriptRequest","description":"Request body for ``POST /youtube-transcript``."},"YoutubeTranscriptResponse":{"properties":{"freshness_seconds":{"type":"integer","title":"Freshness Seconds","description":"Age of the underlying data in seconds (0 = fetched live)."},"cost_usdc":{"type":"number","title":"Cost Usdc","description":"Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier."},"token":{"type":"string","title":"Token","description":"Token actually used for payment (USDC, USDT or FREE).","default":"USDC"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At","description":"UTC timestamp when the data was fetched."},"routing":{"$ref":"#/components/schemas/RoutingMeta","description":"How the request was routed (provider, fallback, cache, latency)."},"video_id":{"type":"string","title":"Video Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"language":{"type":"string","title":"Language"},"is_generated":{"type":"boolean","title":"Is Generated","default":false},"duration_seconds":{"type":"integer","title":"Duration Seconds"},"segment_count":{"type":"integer","title":"Segment Count"},"segments":{"items":{"$ref":"#/components/schemas/TranscriptSegment"},"type":"array","title":"Segments"},"full_text":{"type":"string","title":"Full Text"},"word_count":{"type":"integer","title":"Word Count"}},"type":"object","required":["freshness_seconds","cost_usdc","routing","video_id","language","duration_seconds","segment_count","full_text","word_count"],"title":"YoutubeTranscriptResponse","description":"Response for ``POST /youtube-transcript``."}}}}