{"openapi":"3.1.0","info":{"title":"2s — the (most) everything API","version":"1","summary":"The (most) everything API.","description":"The (most) everything API for AI agents: 575+ pay-per-call endpoints on one origin. More live, ground-truth data than any other x402 service — public records, finance & SEC filings, crypto & web3, security & CVEs, legal, medical, weather, geocoding, and B2B/EDI. A full AI gateway: chat, image, and multi-model consensus across every major model, priced per request in the 402 before you pay. And agent infrastructure with no account: wallet-scoped storage (kv/docs/vectors/files), locks, queues, scheduled callbacks, pub/sub, and watchers that push signed webhooks when the world changes. Pay per call in USDC on Base or Solana via x402 — no API keys, no signup, no subscription. The first x402 API with upto billing: on AI endpoints, authorize the quoted max and settle only your actual usage. Try before you buy: add ?trial=1 (or header X-2s-Trial: 1) to any endpoint for one free real call per endpoint per hour — no wallet needed. New endpoints land constantly.","contact":{"name":"2s","url":"https://2s-3cpr6qm6j-alleyford.vercel.app","email":"alley@2s.io"},"x-logo":{"url":"https://2s-3cpr6qm6j-alleyford.vercel.app/icon-512.png","altText":"2s"},"x-guidance":"Pay-per-call REST API for AI agents — hundreds of endpoints returning ground-truth data (US public records, company & legal identifiers, finance/SEC, crypto/web3, security & CVEs, medical codes, weather & geocoding, agriculture, energy, maritime, music, and more). Every endpoint is paid per call in USDC via x402 (Base or Solana) — no API key, no signup. Call any endpoint with no auth to get a 402 PaymentRequirements envelope, sign it (EIP-3009 on Base, partial SPL transfer on Solana), and retry with the PAYMENT-SIGNATURE header. Add ?trial=1 for one free real call per endpoint per hour to test before paying. To discover the right endpoint: GET https://2s-3cpr6qm6j-alleyford.vercel.app/api/directory for the full catalog, or GET https://2s-3cpr6qm6j-alleyford.vercel.app/api/search/endpoints?q=<natural-language task> for a ranked match. Per-call price is on each operation as x-payment-info (from $0.001). Batch up to 50 calls behind one payment via POST https://2s-3cpr6qm6j-alleyford.vercel.app/api/batch/run."},"servers":[{"url":"https://2s-3cpr6qm6j-alleyford.vercel.app"}],"components":{"responses":{"BadRequest":{"description":"Bad request — invalid parameters."},"PaymentRequired":{"description":"Payment required. Body contains the x402 PaymentRequirements envelope with a multi-network accepts array; the per-call price is in accepts[].amount (and on the operation as x-2s-price). Sign for whichever rail you hold USDC on (EIP-3009 for Base, partial SPL transfer for Solana) and retry with the PAYMENT-SIGNATURE header (X-PAYMENT also accepted for v1 clients).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequiredV2"}}}},"MethodNotAllowed":{"description":"Method not allowed — see `Allow` header for the supported method."},"ServerError":{"description":"Internal server error."},"UpstreamError":{"description":"Upstream provider error."}},"parameters":{"TrialMode":{"name":"trial","in":"query","required":false,"description":"Try before you buy. Set to 1 for one free real call per endpoint per hour — no wallet or payment needed — to verify the endpoint before paying. Equivalent to sending the \"X-2s-Trial: 1\" request header. Works on every endpoint.","schema":{"type":"integer","enum":[1]}}},"securitySchemes":{"x402Payment":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 protocol v2: base64-encoded PaymentPayload. Call any paid endpoint without auth to receive a 402 with a multi-network PaymentRequirements envelope. Sign for either rail: EIP-3009 transferWithAuthorization (Base USDC) OR a partial SPL token transfer (Solana USDC). Retry with PAYMENT-SIGNATURE header. X-PAYMENT is also accepted for v1 buyer clients. See https://x402.org."}},"schemas":{"Source":{"type":"object","description":"Provenance of the data: upstream provider, source URL, and license.","properties":{"provider":{"type":"string","description":"Upstream data provider."},"url":{"type":"string","description":"Source URL or documentation link."},"license":{"type":"string","description":"License / usage terms for the data."}}},"CallMeta":{"type":"object","description":"Per-call meta envelope — endpoint id, cost, caller kind, settlement details."},"X402PaymentRequiredV2":{"type":"object","description":"x402 v2 PaymentRequired envelope. Pick any entry from accepts[], sign for that rail, retry with the PAYMENT-SIGNATURE header.","required":["x402Version","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string","description":"Human-readable reason payment is required."},"resource":{"type":"string","description":"The resource URL being purchased."},"accepts":{"type":"array","description":"Payment requirement options, one per supported network (Base USDC, Solana USDC).","items":{"type":"object","required":["scheme","network","amount","asset","payTo","maxTimeoutSeconds"],"properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 network id, e.g. \"eip155:8453\" (Base) or \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\"."},"amount":{"type":"string","description":"Price in atomic asset units (USDC has 6 decimals)."},"asset":{"type":"string","description":"Asset contract address / mint."},"payTo":{"type":"string","description":"Treasury address to pay."},"maxTimeoutSeconds":{"type":"integer"},"extra":{"type":"object","description":"Rail-specific extras (EVM: EIP-712 domain name/version; Solana: feePayer).","additionalProperties":true}}}},"extensions":{"type":"object","description":"Optional discovery metadata (e.g. bazaar input/output schemas).","additionalProperties":true}}}}},"paths":{"/api/agent/knowledge-delta":{"post":{"tags":["agent"],"summary":"What's happened in a given topic since a given date?","description":"What's happened in a given topic since a given date? Pass a free-text topic + ISO date; receive a deduplicated, ranked list of recent events drawn from US federal regulations, US House + Senate roll-call votes, academic papers (arXiv + PubMed + Semantic Scholar), and federal court opinions. Each event includes title, 1-2 sentence summary, date, source label, source URL, and a 1-5 significance score. Designed so an AI agent can spend one call to catch up on a domain since its LLM training cutoff. LLM-backed source routing and synthesis.","operationId":"agent_knowledge-delta","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [delta] (one knowledge-delta document: query echo, sourcesQueried, deduplicated+ranked events); total = 1; meta.rawHits = raw hit count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"topic":{"type":"string"},"since":{"type":"string"},"until":{"type":"string"},"maxEvents":{"type":"integer"}},"required":["topic","since","until","maxEvents"],"additionalProperties":false},"sourcesQueried":{"type":"array","items":{"type":"string"}},"events":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"summary":{"type":"string"},"date":{"type":"string","nullable":true},"source":{"type":"string"},"sourceLabel":{"type":"string"},"sourceUrl":{"type":"string","nullable":true},"significance":{"type":"integer","minimum":1,"maximum":5}},"required":["title","summary","date","source","sourceLabel","sourceUrl","significance"],"additionalProperties":false}}},"required":["query","sourcesQueried","events"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"rawHits":{"type":"integer","description":"Total raw hits before dedup/ranking."}},"required":["rawHits"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"agent.knowledge-delta","x-2s-version":null,"x-2s-price":{"usd":0.06},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"type":"string","minLength":2,"maxLength":200,"description":"Free-text domain. Examples: \"oncology immunotherapy\", \"Rust language ecosystem\", \"SEC enforcement against crypto exchanges\"."},"since":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Earliest date (YYYY-MM-DD). Typically the agent's LLM training cutoff date."},"until":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Latest date (YYYY-MM-DD). Default = today."},"maxEvents":{"type":"integer","minimum":1,"maximum":50,"default":20,"description":"Max events to return (1-50). Default 20."}},"required":["topic","since"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/agriculture/drought":{"get":{"tags":["agriculture"],"summary":"US Drought Monitor severity for a county (5-digit FIPS) or...","description":"US Drought Monitor severity for a county (5-digit FIPS) or state (2-letter code). Returns the weekly percent of area in each drought category — None, D0 (Abnormally Dry), D1 (Moderate), D2 (Severe), D3 (Extreme), D4 (Exceptional) — newest week first, plus the worst category present each week. Keyless, public-domain (NDMC/USDA/NOAA). This is the official metric behind USDA disaster-program eligibility; use for crop-risk, water, and insurance reasoning.","operationId":"agriculture_drought","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = weekly drought breakdowns (newest first); total = week count; meta carries area + areaType.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"none":{"type":"number","nullable":true},"d0":{"type":"number","nullable":true},"d1":{"type":"number","nullable":true},"d2":{"type":"number","nullable":true},"d3":{"type":"number","nullable":true},"d4":{"type":"number","nullable":true},"worst":{"type":"string"}},"required":["date","none","d0","d1","d2","d3","d4","worst"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"area":{"type":"string"},"areaType":{"type":"string"}},"required":["area","areaType"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"agriculture.drought","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"area","in":"query","required":true,"description":"Area.","schema":{"type":"string","minLength":2,"maxLength":5}},{"name":"weeks","in":"query","required":false,"description":"Weeks.","schema":{"type":"integer","minimum":1,"maximum":260}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/agriculture/stats":{"get":{"tags":["agriculture"],"summary":"USDA NASS QuickStats - authoritative US agricultural...","description":"USDA NASS QuickStats — authoritative US agricultural statistics: crop yields, acreage, production, livestock inventory, and prices received. Filter by commodity (e.g. CORN, SOYBEANS, CATTLE), year (or year__GE/year__LE range), state (2-letter), county, statistic category (YIELD, PRODUCTION, AREA HARVESTED, PRICE RECEIVED), and aggregation level (NATIONAL/STATE/COUNTY). Returns normalized rows with value + unit. QuickStats caps results at 50,000 rows, so narrow broad queries (a 400 RESULT_TOO_LARGE tells you to add filters). Public-domain federal data.","operationId":"agriculture_stats","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching NASS statistics rows; total = row count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"commodity":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"state":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"dataItem":{"type":"string","nullable":true},"value":{"type":"number","nullable":true},"valueRaw":{"type":"string","nullable":true},"unit":{"type":"string","nullable":true}},"required":["commodity","year","state","county","category","dataItem","value","valueRaw","unit"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"agriculture.stats","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"commodity_desc","in":"query","required":true,"description":"Commodity desc.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"year__GE","in":"query","required":false,"description":"Year ge.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"year__LE","in":"query","required":false,"description":"Year le.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"state_alpha","in":"query","required":false,"description":"State alpha.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"county_name","in":"query","required":false,"description":"County name.","schema":{"type":"string","maxLength":60}},{"name":"statisticcat_desc","in":"query","required":false,"description":"Statisticcat desc.","schema":{"type":"string","maxLength":60}},{"name":"agg_level_desc","in":"query","required":false,"description":"Agg level desc.","schema":{"type":"string","maxLength":30}},{"name":"short_desc","in":"query","required":false,"description":"Short desc.","schema":{"type":"string","maxLength":200}},{"name":"freq_desc","in":"query","required":false,"description":"Freq desc.","schema":{"type":"string","maxLength":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/chat":{"post":{"tags":["ai"],"summary":"OpenAI-compatible chat completions across every frontier...","description":"OpenAI-compatible chat completions across every frontier model on one endpoint — GPT-5, Claude, Gemini, Grok, DeepSeek, Llama, Mistral and ~290 more. POST { model, messages, max_tokens?, temperature?, top_p?, stop? } and get back a standard chat.completion (choices[].message + usage). Pay per call in USDC via x402 — no accounts, no provider keys, no subscriptions. Price scales with the model and max_tokens and is quoted in the 402. List selectable models at GET /api/ai/models.","operationId":"ai_chat","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.chat","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001000","max":"50.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1,"maxLength":80,"description":"Gateway model id, e.g. openai/gpt-5, anthropic/claude-opus-4.8, google/gemini-3-pro-preview. Full list: GET /api/ai/models."},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant"],"description":"Role."},"content":{"type":"string","description":"Content."}},"required":["role","content"],"additionalProperties":false},"minItems":1,"description":"OpenAI-style message list."},"max_tokens":{"type":"integer","minimum":1,"maximum":8192,"description":"Max output tokens (default 1024)."},"temperature":{"type":"number","minimum":0,"maximum":2,"description":"Temperature."},"top_p":{"type":"number","minimum":0,"maximum":1,"description":"Top p."},"stop":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Stop."}},"required":["model","messages"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/classify":{"post":{"tags":["ai"],"summary":"Zero-shot text classification.","description":"Zero-shot text classification. POST { text, labels[], multiLabel? }. Assigns the text to one of your labels (or several when multiLabel=true) with a confidence score and a one-line rationale. No training data needed — define the labels at call time. Great for routing, tagging, triage, and intent detection.","operationId":"ai_classify","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [classification].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"labels":{"type":"array","items":{"type":"string"}},"top":{"type":"string","nullable":true},"confidence":{"type":"number","nullable":true},"reasoning":{"type":"string","nullable":true}},"required":["labels","top","confidence","reasoning"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.classify","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":12000,"description":"Text."},"labels":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"minItems":2,"maxItems":20,"description":"Candidate labels to choose from."},"multiLabel":{"type":"boolean","description":"Allow multiple labels (default single)."}},"required":["text","labels"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/council":{"post":{"tags":["ai"],"summary":"Ask several frontier models the same question and get one...","description":"Ask several frontier models the same question and get one synthesized answer. Choose a preset council — fast (3 quick models), balanced (3 strong models with a peer-refine round), or deep (5 models plus refine) — or supply your own set of 2–8 models. A chairman model merges the responses into a single consensus with a confidence score and any points of dissent, and each member’s individual answer is returned alongside. Price scales with the council size and answer length, and is quoted up front in the 402. Models auto-resolve to their latest available version; any unavailable model simply drops out (at least 2 are needed).","operationId":"ai_council","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the consensus result]; total = 1. meta carries the mode, chairman model, and how many members answered.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"consensus":{"type":"string","description":"The synthesized best answer."},"confidence":{"type":"number","description":"0–1 confidence; high when the council agreed."},"agreement":{"type":"string","description":"One-line note on what the council agreed on."},"dissent":{"type":"array","items":{"type":"string"},"description":"Notable disagreements or points one model added; empty on full agreement."},"models":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string"},"answered":{"type":"boolean"},"answer":{"type":"string","nullable":true}},"required":["model","answered","answer"],"additionalProperties":false},"description":"Each council member and its individual answer (null if it did not respond)."}},"required":["consensus","confidence","agreement","dissent","models"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string"},"chairman":{"type":"string"},"modelCount":{"type":"integer"},"answered":{"type":"integer"}},"required":["mode","chairman","modelCount","answered"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.council","x-2s-version":null,"x-2s-price":{"usd":0.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.012000","max":"50.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":12000,"description":"The question to put to the council."},"mode":{"type":"string","enum":["fast","balanced","deep"],"description":"Preset council. Default balanced. Ignored if `models` is given."},"models":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":2,"maxItems":8,"description":"Custom council of 2–8 gateway model ids, e.g. [\"openai/gpt-5\",\"anthropic/claude-opus\",\"google/gemini-3-pro\"] (overrides `mode`). Full selectable list + live prices: GET /api/ai/council/menu."},"maxTokens":{"type":"integer","minimum":128,"maximum":4096,"description":"Max output tokens per model. Default 640."}},"required":["prompt"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/describe-image":{"post":{"tags":["ai"],"summary":"Describe an image. POST { imageUrl, instruction? }. Returns...","description":"Describe an image. POST { imageUrl, instruction? }. Returns { imageUrl, altText (5-15 word accessibility text), description (2-3 sentences), contentType (photograph|illustration|screenshot|diagram|document|mixed|other), text (verbatim OCR transcription, \"\" if none), mainObjects[], dominantColors[] (hex) }. Accepts JPEG, PNG, GIF, WebP. 1MB image size cap.","operationId":"ai_describe-image","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [description] (one structured image description: altText, description, OCR text, main objects, dominant colors); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"imageUrl":{"type":"string"},"altText":{"type":"string","description":"Short accessibility text (~5-15 words)."},"description":{"type":"string","description":"2-3 sentence description."},"contentType":{"type":"string","enum":["photograph","illustration","screenshot","diagram","document","mixed","other"]},"text":{"type":"string","description":"Verbatim OCR transcription, \"\" if no text present."},"mainObjects":{"type":"array","items":{"type":"string"},"description":"Salient objects/subjects in the image."},"dominantColors":{"type":"array","items":{"type":"string"},"description":"Hex color codes (e.g. \"#1a3b5f\") of dominant colors."}},"required":["imageUrl","altText","description","contentType","text","mainObjects","dominantColors"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.describe-image","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"imageUrl":{"type":"string","format":"uri","maxLength":2048,"description":"HTTPS URL of a JPEG, PNG, GIF, or WebP image (≤1MB)."},"instruction":{"type":"string","maxLength":1000,"description":"Optional caller-supplied focus hint, e.g. \"describe the chart axes\"."}},"required":["imageUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/entities":{"post":{"tags":["ai"],"summary":"Named-entity recognition.","description":"Named-entity recognition. POST { text }. Extracts people, organizations, locations, dates, money, products, laws, events and more — each with a standard type and mention count. For knowledge extraction, redaction prep, and document indexing.","operationId":"ai_entities","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ entities, count }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"type":{"type":"string"},"mentions":{"type":"number","nullable":true}},"required":["text","type","mentions"],"additionalProperties":false}},"count":{"type":"number"}},"required":["entities","count"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.entities","x-2s-version":null,"x-2s-price":{"usd":0.036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.036000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":12000,"description":"Text."}},"required":["text"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/extract":{"post":{"tags":["ai"],"summary":"Extract structured data from a webpage.","description":"Extract structured data from a webpage. POST { url, schema, instruction? }. The schema is a JSON Schema object (top-level type:\"object\") describing the shape you want back; output is guaranteed to conform. Returns { url, finalUrl, extracted, meta:{ truncated } }.","operationId":"ai_extract","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [extraction] (one object: the schema-conforming extracted data, source URLs, truncation flag); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Requested URL."},"finalUrl":{"type":"string","description":"Final URL after redirects."},"extracted":{"type":"object","additionalProperties":{},"description":"The extracted object, conforming to the caller-supplied JSON Schema."},"truncated":{"type":"boolean","description":"True if the source page was truncated before extraction."}},"required":["url","finalUrl","extracted","truncated"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.extract","x-2s-version":null,"x-2s-price":{"usd":0.075},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.075000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"URL to process."},"schema":{"type":"object","additionalProperties":{},"description":"Schema."},"instruction":{"type":"string","maxLength":2000,"description":"Instruction."}},"required":["url","schema"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/image":{"post":{"tags":["ai"],"summary":"Generate images from a text prompt across the gateway's...","description":"Generate images from a text prompt across the gateway’s image models (gpt-image, Gemini image, FLUX, Grok Imagine, …) on one endpoint. POST { model, prompt, n?, size? } → OpenAI-style { created, data: [{ b64_json }] }. Pay per call in USDC via x402 — no accounts or provider keys. Priced per model from $0.03/image (quoted in the 402). List models at GET /api/ai/models.","operationId":"ai_image","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.image","x-2s-version":null,"x-2s-price":{"usd":0.036},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.036000","max":"50.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1,"maxLength":80,"description":"Gateway image model id, e.g. openai/gpt-image-1, google/gemini-3-pro-image, black-forest-labs/flux-1.1-pro."},"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"Text prompt."},"n":{"type":"integer","minimum":1,"maximum":4,"description":"Number of images (1-4, default 1)."},"size":{"type":"string","maxLength":16,"description":"Optional WxH, e.g. 1024x1024."}},"required":["model","prompt"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/moderate":{"post":{"tags":["ai"],"summary":"Content moderation. POST { text }. Flags content across...","description":"Content moderation. POST { text }. Flags content across categories — hate, harassment, sexual, sexual/minors, violence, self-harm, dangerous, illicit — with a per-category boolean and 0..1 severity score, plus an overall flagged verdict. For UGC filtering, trust & safety, and pre-publish checks.","operationId":"ai_moderate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ flagged, categories, scores }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"flagged":{"type":"boolean"},"categories":{"type":"object","additionalProperties":{"type":"boolean"}},"scores":{"type":"object","additionalProperties":{"type":"number"}}},"required":["flagged","categories","scores"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.moderate","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":12000,"description":"Text."}},"required":["text"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/ocr":{"post":{"tags":["ai"],"summary":"OCR + layout extraction.","description":"OCR + layout extraction. POST { imageUrl, instruction? }. Returns verbatim transcribed text in reading order, any detected tables as markdown, the primary language, and a handwriting flag. For reading receipts, forms, screenshots, scanned pages, and labels. JPEG/PNG/GIF/WebP.","operationId":"ai_ocr","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [OCR result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"imageUrl":{"type":"string"},"fullText":{"type":"string"},"tables":{"type":"array","items":{"type":"string"}},"language":{"type":"string","nullable":true},"hasHandwriting":{"type":"boolean","nullable":true}},"required":["imageUrl","fullText","tables","language","hasHandwriting"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.ocr","x-2s-version":null,"x-2s-price":{"usd":0.036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.036000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"imageUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Public image URL (JPEG/PNG/GIF/WebP)."},"instruction":{"type":"string","maxLength":500,"description":"Optional steering, e.g. \"only the table\" or \"preserve line numbers\"."}},"required":["imageUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/pii":{"post":{"tags":["ai"],"summary":"PII detection. POST { text }. Finds personally identifiable...","description":"PII detection. POST { text }. Finds personally identifiable information — names, emails, phones, addresses, SSNs, credit cards, bank/IP/passport/DOB and more — returning each finding with its type and exact substring so you can redact it. For compliance, logging hygiene, and data-minimization before storing or sending text.","operationId":"ai_pii","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ hasPii, count, types, entities }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"hasPii":{"type":"boolean"},"count":{"type":"number"},"types":{"type":"array","items":{"type":"string"}},"entities":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}},"required":["type","value"],"additionalProperties":false}}},"required":["hasPii","count","types","entities"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.pii","x-2s-version":null,"x-2s-price":{"usd":0.03},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.030000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":12000,"description":"Text."}},"required":["text"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/research":{"post":{"tags":["ai"],"summary":"Grounded research brief.","description":"Grounded research brief. POST { query, urls? }. Gathers sources (Wikipedia + any URLs you supply), then synthesizes a factual, cited brief: a 2-4 sentence summary, key facts, and the source list. Grounded only in the fetched sources (no free-form invention). For agent research, due diligence, and topic primers.","operationId":"ai_research","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [research brief]; sources lists what was used.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string"},"summary":{"type":"string"},"keyFacts":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"}},"required":["title","url"],"additionalProperties":false}}},"required":["query","summary","keyFacts","sources"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.research","x-2s-version":null,"x-2s-price":{"usd":0.042},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.042000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":400,"description":"Topic, entity, or question to research."},"urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048},"maxItems":5,"description":"Optional source URLs to ground the brief in, alongside Wikipedia."}},"required":["query"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/screenshot":{"post":{"tags":["ai"],"summary":"Render a URL as a screenshot.","description":"Render a URL as a screenshot. POST { url, width?, height?, fullPage?, format?, quality?, waitUntil?, timeoutMs?, deviceScaleFactor?, blockAds? }. Returns raw image bytes (no JSON envelope) with X-2s-Render-Ms and X-2s-Image-Bytes headers. Viewport clamped 320-3840 × 320-2160. Timeout clamped 1-15s. Defaults: 1280×720 PNG, networkidle2 wait, ad-blocking on. Use cases: visual verification, archival, change detection, OG-card generation, RSS thumbnails.","operationId":"ai_screenshot","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Raw image bytes (PNG / JPEG / WebP per `format`). X-2s-Render-Ms + X-2s-Image-Bytes response headers describe the render. No JSON envelope on success.","content":{"image/*":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.screenshot","x-2s-version":null,"x-2s-price":{"usd":0.0075},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007500"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"HTTPS URL to render."},"width":{"type":"integer","minimum":320,"maximum":3840,"description":"Viewport width (320-3840). Default 1280."},"height":{"type":"integer","minimum":320,"maximum":2160,"description":"Viewport height (320-2160). Default 720."},"fullPage":{"type":"boolean","description":"Capture the full scrollable page instead of the viewport."},"format":{"type":"string","enum":["png","jpeg","webp"],"description":"Image format. Default png."},"quality":{"type":"integer","minimum":1,"maximum":100,"description":"JPEG/WebP quality 1-100. Ignored for PNG."},"waitUntil":{"type":"string","enum":["load","domcontentloaded","networkidle0","networkidle2"],"description":"Wait condition before snap. Default networkidle2."},"timeoutMs":{"type":"integer","minimum":1000,"maximum":15000,"description":"Render timeout in milliseconds (1000-15000). Default 8000."},"deviceScaleFactor":{"type":"integer","minimum":1,"maximum":3,"description":"Pixel density multiplier 1-3. Default 1."},"blockAds":{"type":"boolean","description":"Block ads + trackers. Default true."}},"required":["url"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/sentiment":{"post":{"tags":["ai"],"summary":"Sentiment analysis. POST { text }. Returns overall...","description":"Sentiment analysis. POST { text }. Returns overall sentiment (positive/negative/neutral/mixed), a polarity score from -1 to 1, a confidence, and a one-line rationale. For reviews, social posts, support messages, and feedback triage.","operationId":"ai_sentiment","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [sentiment].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"sentiment":{"type":"string","nullable":true},"score":{"type":"number","nullable":true},"confidence":{"type":"number","nullable":true},"rationale":{"type":"string","nullable":true}},"required":["sentiment","score","confidence","rationale"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.sentiment","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":12000,"description":"Text."}},"required":["text"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/summarize":{"post":{"tags":["ai"],"summary":"Summarize a webpage. POST { url, instruction? }. Returns {...","description":"Summarize a webpage. POST { url, instruction? }. Returns { url, finalUrl, summary (1-3 sentences), keyPoints (3-7 bullets), title, audience, estimatedReadingMinutes, meta:{ truncated } }. Sibling to /api/ai/extract — use extract when you need a typed payload conforming to your own schema; use summarize when you want a ready-made digest. Supports x402 upto billing: authorize the quoted max, pay only your actual usage.","operationId":"ai_summarize","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [summary] (one structured page summary: summary, keyPoints, title, audience, reading time); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Requested URL."},"finalUrl":{"type":"string","description":"Final URL after redirects."},"summary":{"type":"string","description":"1-3 sentence digest."},"keyPoints":{"type":"array","items":{"type":"string"},"description":"3-7 bullet key points."},"title":{"type":"string","description":"Page title."},"audience":{"type":"string","description":"Inferred target audience."},"estimatedReadingMinutes":{"type":"integer","description":"Estimated reading time in minutes."},"truncated":{"type":"boolean","description":"True if the source page was truncated before summarizing."}},"required":["url","finalUrl","summary","keyPoints","title","audience","estimatedReadingMinutes","truncated"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.summarize","x-2s-version":null,"x-2s-price":{"usd":0.063},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.063000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"URL to process."},"instruction":{"type":"string","maxLength":1000,"description":"Instruction."}},"required":["url"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/translate":{"post":{"tags":["ai"],"summary":"Translate text. POST { text, targetLanguage...","description":"Translate text. POST { text, targetLanguage, sourceLanguage? } — language codes are BCP-47 (e.g. \"en\", \"es-MX\", \"zh-Hans\"). Source auto-detected when omitted. Returns { text, targetLanguage, detectedSourceLanguage, confidence (high|medium|low) }. Best for short-to-medium passages; chunk long documents on your side.","operationId":"ai_translate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [translation] (one result: translated text, detected source language, confidence); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","description":"Translated text in targetLanguage."},"targetLanguage":{"type":"string"},"detectedSourceLanguage":{"type":"string","description":"BCP-47 source language tag (echoed when supplied, detected otherwise)."},"confidence":{"type":"string","enum":["high","medium","low"],"description":"Model confidence in the translation."}},"required":["text","targetLanguage","detectedSourceLanguage","confidence"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.translate","x-2s-version":null,"x-2s-price":{"usd":0.0282},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.028200"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":6000,"description":"Source text to translate (1-6000 chars)."},"targetLanguage":{"type":"string","minLength":2,"maxLength":20,"description":"Target language as BCP-47 (e.g. \"en\", \"es-MX\", \"zh-Hans\")."},"sourceLanguage":{"type":"string","minLength":2,"maxLength":20,"description":"Source language as BCP-47. Auto-detected when omitted."}},"required":["text","targetLanguage"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ai/web-answer":{"post":{"tags":["ai"],"summary":"Answer a question from the live web.","description":"Answer a question from the live web. POST { query, topic?, maxResults? }. Runs a deep web search and returns a synthesized, citation-backed answer plus the ranked source pages (title, URL, snippet). For up-to-the-minute questions an LLM alone can't answer — news, prices, current events, recent releases. topic=news biases toward recent reporting.","operationId":"ai_web-answer","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ answer, sources }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"answer":{"type":"string","nullable":true},"sources":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"content":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["title","url","content","score"],"additionalProperties":false}}},"required":["answer","sources"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ai.web-answer","x-2s-version":null,"x-2s-price":{"usd":0.033},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.033000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":400,"description":"Free-text search query."},"topic":{"type":"string","enum":["general","news"],"description":"Topic."},"maxResults":{"type":"integer","minimum":1,"maximum":10,"description":"Max results."}},"required":["query"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/aircraft/lookup":{"get":{"tags":["aircraft"],"summary":"Look up a US-registered aircraft by tail number (N-number, e.g.","description":"Look up a US-registered aircraft by tail number (N-number, e.g. N757F) or icao24 Mode-S hex (e.g. aa3487). Pass exactly one of `tail` or `icao24`. Returns the airframe: registration, manufacturer, model, ICAO type code + class, serial number, operator, owner, build year, engines, category, plus the icao24 Mode-S address that ADS-B transponders broadcast — use it to join live flight-tracking feeds. ~307k US airframes. 404 if no match. Source: OpenSky Network aircraft database (CC-BY-SA).","operationId":"aircraft_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [aircraft] (one airframe matched by tail or icao24); total = 1. 404 if no US airframe matches.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"icao24":{"type":"string","description":"24-bit Mode-S address (lowercase hex) — broadcast by ADS-B."},"registration":{"type":"string","nullable":true,"description":"Tail / N-number."},"manufacturer":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"typecode":{"type":"string","nullable":true,"description":"ICAO type designator (e.g. BE36)."},"icaoType":{"type":"string","nullable":true,"description":"ICAO aircraft type class (e.g. L1P = land, 1 piston engine)."},"serialNumber":{"type":"string","nullable":true},"operator":{"type":"string","nullable":true},"owner":{"type":"string","nullable":true},"built":{"type":"string","nullable":true},"engines":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"registered":{"type":"string","nullable":true},"regUntil":{"type":"string","nullable":true}},"required":["icao24","registration","manufacturer","model","typecode","icaoType","serialNumber","operator","owner","built","engines","category","registered","regUntil"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"aircraft.lookup","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tail","in":"query","required":false,"description":"Tail.","schema":{"type":"string","pattern":"^[Nn][0-9A-Za-z]{1,5}$"}},{"name":"icao24","in":"query","required":false,"description":"Icao24.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{6}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/aircraft/profile":{"get":{"tags":["aircraft"],"summary":"Identify a US-registered aircraft by tail (N-number) or...","description":"Identify a US-registered aircraft by tail (N-number) or icao24 Mode-S hex, AND screen its owner and operator against the OFAC sanctions list — in one call. Returns the full aircraft record (registration, manufacturer, model, type, serial, owner, operator, year built) plus a sanctions screen of the owner and operator names against OFAC SDN, with fuzzy-match confidence and a flagged boolean. OSINT, asset-tracing, sanctions-evasion investigation, due diligence. Composition of /api/aircraft/lookup + /api/law/sanctions-check (the sanctions section reports found/error independently). Note: screening is name-based and probabilistic — review flagged matches manually.","operationId":"aircraft_profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"aircraft":{"type":"object","additionalProperties":{}},"ownerScreen":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"flagged":{"type":"boolean"},"matchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","flagged","matchCount","matches"],"additionalProperties":false},"operatorScreen":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"flagged":{"type":"boolean"},"matchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","flagged","matchCount","matches"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["aircraft","ownerScreen","operatorScreen","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"aircraft.profile","x-2s-version":null,"x-2s-price":{"usd":0.00432},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004320"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tail","in":"query","required":false,"description":"Tail.","schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"icao24","in":"query","required":false,"description":"Icao24.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{6}$"}},{"name":"threshold","in":"query","required":false,"description":"Minimum score/threshold required to include a result.","schema":{"type":"number","minimum":0.1,"maximum":1,"default":0.5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/airport/lookup":{"get":{"tags":["airport"],"summary":"Look up an airport by 3-letter IATA (e.g.","description":"Look up an airport by 3-letter IATA (e.g. SFO) or 4-letter ICAO (e.g. KSFO) code. Query: code (3-5 chars, alphanumeric). Returns { airport: { id, ident, type, name, latitude, longitude, elevationFt, continent, isoCountry, isoRegion, municipality, scheduledService, icaoCode, iataCode, gpsCode, localCode, wikipediaLink } } or 404 NOT_FOUND.","operationId":"airport_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [airport] (one OurAirports record); total = 1. 404 if no airport matches the code.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"OurAirports stable numeric id."},"ident":{"type":"string","description":"Globally unique identifier (usually ICAO)."},"type":{"type":"string","nullable":true,"description":"large_airport | medium_airport | small_airport | heliport | seaplane_base | closed."},"name":{"type":"string","nullable":true},"latitude":{"type":"number"},"longitude":{"type":"number"},"elevationFt":{"type":"integer","nullable":true},"continent":{"type":"string","nullable":true},"isoCountry":{"type":"string","nullable":true,"description":"ISO 3166-1 alpha-2 country code."},"isoRegion":{"type":"string","nullable":true,"description":"ISO 3166-2 region code (e.g. US-CA)."},"municipality":{"type":"string","nullable":true},"scheduledService":{"type":"boolean","nullable":true},"icaoCode":{"type":"string","nullable":true},"iataCode":{"type":"string","nullable":true},"gpsCode":{"type":"string","nullable":true},"localCode":{"type":"string","nullable":true},"wikipediaLink":{"type":"string","nullable":true}},"required":["id","ident","type","name","latitude","longitude","elevationFt","continent","isoCountry","isoRegion","municipality","scheduledService","icaoCode","iataCode","gpsCode","localCode","wikipediaLink"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"airport.lookup","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":true,"description":"3-letter IATA or 4-letter ICAO airport code (e.g. SFO, KSFO).","schema":{"type":"string","minLength":3,"maxLength":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/airport/near":{"get":{"tags":["airport"],"summary":"Airports within a radius of a coordinate, sorted by distance.","description":"Airports within a radius of a coordinate, sorted by distance. Query: lat (-90..90), lon (-180..180), radius_km (1-2000, default 200), limit (1-100, default 20), type (optional: large_airport|medium_airport|small_airport|heliport|seaplane_base|balloonport|closed), country (optional 2-letter ISO 3166-1), scheduled_service (optional bool, true = commercial-service airports only). Returns { query, count, airports: [{ id, ident, name, iataCode, icaoCode, type, latitude, longitude, distanceKm, ... }] }.","operationId":"airport_near","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = airports within radius_km, sorted by ascending distance; total = null (no upstream total; query-bounded set); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"ident":{"type":"string"},"name":{"type":"string","nullable":true},"iataCode":{"type":"string","nullable":true},"icaoCode":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"latitude":{"type":"number"},"longitude":{"type":"number"},"distanceKm":{"type":"number","description":"Great-circle distance to (lat, lon), kilometers."},"isoCountry":{"type":"string","nullable":true},"isoRegion":{"type":"string","nullable":true},"municipality":{"type":"string","nullable":true},"scheduledService":{"type":"boolean","nullable":true}},"required":["id","ident","name","iataCode","icaoCode","type","latitude","longitude","distanceKm","isoCountry","isoRegion","municipality","scheduledService"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"radiusKm":{"type":"number"},"limit":{"type":"integer"},"type":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"scheduledServiceOnly":{"type":"boolean","nullable":true}},"required":["latitude","longitude","radiusKm","limit","type","country","scheduledServiceOnly"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"airport.near","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (-90 to 90).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (-180 to 180).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius_km","in":"query","required":false,"description":"Search radius in kilometers (1-2000). Default 200.","schema":{"type":"number","minimum":1,"maximum":2000,"default":200}},{"name":"limit","in":"query","required":false,"description":"Max airports to return (1-100). Default 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"type","in":"query","required":false,"description":"Filter by airport type.","schema":{"type":"string","enum":["large_airport","medium_airport","small_airport","heliport","seaplane_base","balloonport","closed"]}},{"name":"country","in":"query","required":false,"description":"Filter by ISO 3166-1 alpha-2 country code (e.g. US).","schema":{"type":"string","pattern":"^[A-Z]{2}$"}},{"name":"scheduled_service","in":"query","required":false,"description":"When true, only commercial-service airports.","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/aviation/accidents":{"get":{"tags":["aviation"],"summary":"Search the NTSB civil aviation accident & incident database...","description":"Search the NTSB civil aviation accident & incident database (CAROL) — US events from 1962 to present plus selected foreign investigations. Filter by aircraft registration (N-number, partial match), US state (2-letter code or name), make, model, city, and/or event date range (dateFrom/dateTo as YYYY-MM-DD). At least one filter is required. Returns matching events newest-first: NTSB number, event date/type, city/state/country, aircraft registration(s)/make(s)/model(s), highest injury level, onboard & on-ground injury counts, report type/status, and a link to the official NTSB case page. Data: NTSB (U.S. public domain), live. For aviation safety research, fleet/tail-number history, incident due-diligence, and accident-trend analysis.","operationId":"aviation_accidents","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"anyOf":[{"not":{}},{"anyOf":[{"type":"string"},{"type":"number"}]}]}},"total":{"type":"number"},"truncated":{"type":"boolean"},"count":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"ntsbNumber":{"type":"string","nullable":true},"mkey":{"type":"string","nullable":true},"eventType":{"type":"string","nullable":true},"eventDate":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"registration":{"type":"array","items":{"type":"string"}},"make":{"type":"array","items":{"type":"string"}},"model":{"type":"array","items":{"type":"string"}},"highestInjuryLevel":{"type":"string","nullable":true},"injuriesOnboard":{"type":"number","nullable":true},"injuriesOnGround":{"type":"number","nullable":true},"reportType":{"type":"string","nullable":true},"reportStatus":{"type":"string","nullable":true},"reportUrl":{"type":"string","nullable":true}},"required":["ntsbNumber","mkey","eventType","eventDate","city","state","country","registration","make","model","highestInjuryLevel","injuriesOnboard","injuriesOnGround","reportType","reportStatus","reportUrl"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","total","truncated","count","items","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"aviation.accidents","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"registration","in":"query","required":false,"description":"Aircraft registration / N-number (partial match).","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"state","in":"query","required":false,"description":"US state, 2-letter code or full name.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"make","in":"query","required":false,"description":"Aircraft make (partial match), e.g. Cessna.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"model","in":"query","required":false,"description":"Aircraft model (partial match), e.g. 172.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"city","in":"query","required":false,"description":"Event city (partial match).","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"dateFrom","in":"query","required":false,"description":"Earliest event date, YYYY-MM-DD.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dateTo","in":"query","required":false,"description":"Latest event date, YYYY-MM-DD.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max records to return (1-100, default 25).","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/aviation/metar":{"get":{"tags":["aviation"],"summary":"Current aviation weather observation (METAR) for one or...","description":"Current aviation weather observation (METAR) for one or more airports. Pass ids = comma-separated ICAO station ids (e.g. KATL, EGLL, KJFK). Returns the raw METAR plus decoded fields: flight category (VFR/MVFR/IFR/LIFR), temperature + dewpoint (°C), wind direction/speed/gust (kt), visibility, altimeter (inHg), and cloud layers. Source: NOAA Aviation Weather Center (keyless, public domain).","operationId":"aviation_metar","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = METAR observations (one per station); total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"station":{"type":"string"},"observedAt":{"type":"string","nullable":true},"raw":{"type":"string","nullable":true},"flightCategory":{"type":"string","nullable":true},"tempC":{"type":"number","nullable":true},"dewpointC":{"type":"number","nullable":true},"windDirDeg":{"type":"number","nullable":true},"windSpeedKt":{"type":"number","nullable":true},"windGustKt":{"type":"number","nullable":true},"visibility":{"type":"string","nullable":true},"altimeterInHg":{"type":"number","nullable":true},"clouds":{"type":"array","items":{"type":"object","properties":{"cover":{"type":"string"},"baseFtAgl":{"type":"number","nullable":true}},"required":["cover","baseFtAgl"],"additionalProperties":false}},"name":{"type":"string","nullable":true}},"required":["station","observedAt","raw","flightCategory","tempC","dewpointC","windDirDeg","windSpeedKt","windGustKt","visibility","altimeterInHg","clouds","name"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"aviation.metar","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ids","in":"query","required":true,"description":"Comma-separated list of identifiers.","schema":{"type":"string","minLength":3,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/aviation/sigmet":{"get":{"tags":["aviation"],"summary":"Active in-flight weather hazard advisories (SIGMETs and...","description":"Active in-flight weather hazard advisories (SIGMETs and AIRMETs) from the NOAA Aviation Weather Center. Returns current advisories over a lookback window (1-24h), optionally filtered by hazard (CONVECTIVE, TURB turbulence, ICE icing, IFR, MTN OBSCN mountain obscuration, ASH volcanic ash). Each advisory carries the issuing office, type (SIGMET/AIRMET/OUTLOOK), hazard, severity, valid-from/to times, affected altitude band (feet MSL), movement (direction/speed), and the raw text bulletin. Keyless, public-domain (NOAA). The active-hazard layer aviation agents need — distinct from aviation.metar (station conditions) and aviation.taf (forecasts). Not for navigation.","operationId":"aviation_sigmet","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = active advisories (sliced to limit); total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"icaoId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"hazard":{"type":"string","nullable":true},"severity":{"type":"string","nullable":true},"validFrom":{"type":"string","nullable":true},"validTo":{"type":"string","nullable":true},"altitudeLowFt":{"type":"number","nullable":true},"altitudeHiFt":{"type":"number","nullable":true},"movementDirDeg":{"type":"number","nullable":true},"movementSpeedKt":{"type":"number","nullable":true},"raw":{"type":"string","nullable":true}},"required":["icaoId","type","hazard","severity","validFrom","validTo","altitudeLowFt","altitudeHiFt","movementDirDeg","movementSpeedKt","raw"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"aviation.sigmet","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"hazard","in":"query","required":false,"description":"Hazard.","schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"hours","in":"query","required":false,"description":"Look-back window, in hours.","schema":{"type":"integer","minimum":1,"maximum":24}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/aviation/taf":{"get":{"tags":["aviation"],"summary":"Terminal Aerodrome Forecast (TAF) for one or more airports...","description":"Terminal Aerodrome Forecast (TAF) for one or more airports — the official aviation forecast issued for an airport (~24–30h ahead). Pass ids = comma-separated ICAO station ids (e.g. KATL). Returns the raw TAF text + issue time. Source: NOAA Aviation Weather Center (keyless). For current conditions use aviation.metar.","operationId":"aviation_taf","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = TAFs (one per station); total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"station":{"type":"string"},"issuedAt":{"type":"string","nullable":true},"raw":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["station","issuedAt","raw","name"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"aviation.taf","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ids","in":"query","required":true,"description":"Comma-separated list of identifiers.","schema":{"type":"string","minLength":3,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bank/lookup":{"get":{"tags":["bank"],"summary":"FDIC-insured US bank directory lookup.","description":"FDIC-insured US bank directory lookup. Lookup by name (fuzzy match), FDIC certificate number, RSSD ID, or state. Each record includes name + short name, web address, active flag, city/state/county/zip, established + insured dates, charter class, bank class, primary federal regulator, number of branches, assets and deposits ($1000s), and closed-date + reason for inactive institutions. Public-domain FDIC data, free.","operationId":"bank_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched FDIC-insured institutions; total = upstream total match count; meta echoes the query + returned (this page).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"cert":{"type":"string"},"rssdId":{"type":"string","nullable":true},"name":{"type":"string"},"shortName":{"type":"string","nullable":true},"webAddress":{"type":"string","nullable":true},"active":{"type":"boolean"},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zipcode":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"establishedDate":{"type":"string","nullable":true},"insuredDate":{"type":"string","nullable":true},"charterClass":{"type":"string","nullable":true},"bankClass":{"type":"string","nullable":true},"primaryRegulator":{"type":"string","nullable":true},"numberOfBranches":{"type":"integer","nullable":true},"assets":{"type":"number","nullable":true},"deposits":{"type":"number","nullable":true},"closedDate":{"type":"string","nullable":true},"reasonClosed":{"type":"string","nullable":true}},"required":["cert","rssdId","name","shortName","webAddress","active","city","state","zipcode","county","establishedDate","insuredDate","charterClass","bankClass","primaryRegulator","numberOfBranches","assets","deposits","closedDate","reasonClosed"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string","nullable":true},"cert":{"type":"string","nullable":true},"rssdId":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"string"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["name","cert","rssdId","state","status","limit","offset"],"additionalProperties":false},"returned":{"type":"integer","description":"Records returned on this page."}},"required":["query","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bank.lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"cert","in":"query","required":false,"description":"Cert.","schema":{"type":"string","pattern":"^\\d{1,7}$"}},{"name":"rssdId","in":"query","required":false,"description":"Rssd ID.","schema":{"type":"string","pattern":"^\\d{1,10}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["active","inactive","any"],"default":"active"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/barcode/generate":{"post":{"tags":["barcode"],"summary":"Generate QR / Aztec / Data Matrix / PDF417 codes from...","description":"Generate QR / Aztec / Data Matrix / PDF417 codes from structured payloads (url, wifi, vcard, vevent, email, sms, tel, geo, bitcoin, json, text). QR supports rounded or dotted modules, solid colors or linear/radial gradients, transparent backgrounds, configurable error correction, and a centered logo image (URL or data URI).","operationId":"barcode_generate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"barcode.generate","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","enum":["qr","aztec","datamatrix","pdf417"],"default":"qr","description":"Format."},"data":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Filter results by type."},"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text."}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Filter results by type."},"url":{"type":"string","format":"uri","maxLength":2000,"description":"URL to process."}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["email"],"description":"Filter results by type."},"to":{"type":"string","format":"email","description":"End of the range."},"subject":{"type":"string","maxLength":200,"description":"Subject."},"body":{"type":"string","maxLength":1000,"description":"Body."}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["sms"],"description":"Filter results by type."},"to":{"type":"string","minLength":1,"maxLength":50,"description":"End of the range."},"body":{"type":"string","maxLength":1000,"description":"Body."}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["phone"],"description":"Filter results by type."},"number":{"type":"string","minLength":1,"maxLength":50,"description":"Item number or identifier."}},"required":["type","number"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["wifi"],"description":"Filter results by type."},"ssid":{"type":"string","minLength":1,"maxLength":100,"description":"Ssid."},"password":{"type":"string","maxLength":200,"description":"Password."},"security":{"type":"string","enum":["WPA","WEP","none"],"description":"Security."},"hidden":{"type":"boolean","description":"Hidden."}},"required":["type","ssid"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["vcard"],"description":"Filter results by type."},"name":{"type":"string","minLength":1,"maxLength":200,"description":"Name to search for."},"firstName":{"type":"string","maxLength":100,"description":"First name to filter by."},"lastName":{"type":"string","maxLength":100,"description":"Last name to filter by."},"phone":{"type":"string","maxLength":50,"description":"Phone."},"email":{"type":"string","format":"email","description":"Email."},"org":{"type":"string","maxLength":200,"description":"Org."},"title":{"type":"string","maxLength":200,"description":"Title to search for."},"url":{"type":"string","format":"uri","description":"URL to process."},"note":{"type":"string","maxLength":500,"description":"Note."}},"required":["type","name"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["geo"],"description":"Filter results by type."},"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude in decimal degrees (WGS84)."},"lon":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude in decimal degrees (WGS84)."},"altitude":{"type":"number","description":"Altitude."}},"required":["type","lat","lon"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bitcoin"],"description":"Filter results by type."},"address":{"type":"string","minLength":1,"maxLength":100,"description":"Street address or full address string."},"amount":{"type":"number","exclusiveMinimum":true,"minimum":0,"description":"Amount."},"label":{"type":"string","maxLength":200,"description":"Label."},"message":{"type":"string","maxLength":500,"description":"Message."}},"required":["type","address"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["calendar"],"description":"Filter results by type."},"title":{"type":"string","minLength":1,"maxLength":200,"description":"Title to search for."},"start":{"type":"string","format":"date-time","description":"Start."},"end":{"type":"string","format":"date-time","description":"End."},"location":{"type":"string","maxLength":200,"description":"Location."},"description":{"type":"string","maxLength":1000,"description":"Description."}},"required":["type","title","start","end"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["json"],"description":"Filter results by type."},"value":{"description":"Value."}},"required":["type"],"additionalProperties":false}],"description":"Data."},"output":{"type":"string","enum":["svg","png","dataurl"],"default":"svg","description":"Output."},"size":{"type":"integer","minimum":64,"maximum":4096,"default":512,"description":"Size."},"margin":{"type":"integer","minimum":0,"maximum":16,"default":4,"description":"Margin."},"errorCorrection":{"type":"string","enum":["L","M","Q","H"],"default":"M","description":"L=~7%, M=~15%, Q=~25%, H=~30% recoverable damage (QR only)."},"style":{"type":"object","properties":{"modules":{"type":"string","enum":["square","rounded","dots"],"description":"Modules."},"foreground":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","enum":["linear","radial"],"description":"Gradient type."},"stops":{"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1,"description":"Number of results to skip before returning (pagination offset)."},"color":{"type":"string","description":"Color."}},"required":["offset","color"],"additionalProperties":false},"minItems":2,"maxItems":10,"description":"Stops."},"rotation":{"type":"number","description":"Linear gradient rotation in degrees."}},"required":["type","stops"],"additionalProperties":false}],"description":"Foreground."},"background":{"type":"string","description":"CSS color or \"transparent\"."},"logo":{"type":"object","properties":{"source":{"type":"string","description":"https:// URL or data: URI. QR only."},"sizePct":{"type":"number","minimum":0.05,"maximum":0.4,"description":"Size pct."},"padding":{"type":"number","minimum":0,"maximum":32,"description":"Padding."},"background":{"type":"string","description":"Background."},"cornerRadius":{"type":"number","minimum":0,"maximum":64,"description":"Corner radius."}},"required":["source"],"additionalProperties":false,"description":"Logo."}},"additionalProperties":false,"description":"Style."}},"required":["data"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/batch/run":{"post":{"tags":["batch"],"summary":"Run up to 50 endpoint calls behind ONE x402 payment.","description":"Run up to 50 endpoint calls behind ONE x402 payment. Price is the exact sum of the sub-call prices (no batch discount). Atomic: every sub-call must succeed or nothing is charged — the failing calls are returned and you can retry for free. Eligible sub-calls are ordinary catalog endpoints (no bearer-only, deprecated, variable-priced, or metered-upstream endpoints, and no nested batch).","operationId":"batch_run","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"One item per sub-call, in request order, each carrying that endpoint’s own response in `data`.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"endpoint":{"type":"string"},"ok":{"type":"boolean","enum":[true]},"price_usd":{"type":"number"},"data":{}},"required":["endpoint","ok","price_usd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer"},"total_price_usd":{"type":"number"},"pricing":{"type":"string"},"atomic":{"type":"string"}},"required":["count","total_price_usd","pricing","atomic"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"batch.run","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.001200","max":"50.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"calls":{"type":"array","items":{"type":"object","properties":{"endpoint":{"type":"string","minLength":3,"maxLength":64,"pattern":"^[a-z0-9-]+\\.[a-z0-9-]+$","description":"Endpoint."},"params":{"type":"object","additionalProperties":{},"default":{},"description":"Params."}},"required":["endpoint"],"additionalProperties":false},"minItems":1,"maxItems":50,"description":"Calls."}},"required":["calls"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bio/gene":{"get":{"tags":["bio"],"summary":"Look up a gene by its official symbol (e.g.","description":"Look up a gene by its official symbol (e.g. \"TP53\", \"BRCA1\", \"CFTR\") and organism (taxid, default 9606 = human), merging NCBI Gene with UniProt. Returns the gene symbol, NCBI Gene ID, full description, organism, chromosome + cytogenetic map location, alias symbols, and the curated RefSeq function summary; plus the reviewed protein from UniProt — accession, entry id, recommended protein name, length in amino acids, and the curated function description. NCBI + UniProt links. Bioinformatics, clinical-genetics research, education. Public-domain NCBI + CC-BY UniProt data. Common organism taxids: human 9606, mouse 10090, zebrafish 7955, fruit fly 7227, yeast 559292.","operationId":"bio_gene","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ gene }] (one gene; the best-effort UniProt protein sub-block stays inside the item); total = 1; meta.sources lists both NCBI Gene + UniProt attributions (envelope source is the primary, NCBI Gene).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"gene":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"ncbiGeneId":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"organism":{"type":"object","properties":{"scientificName":{"type":"string","nullable":true},"commonName":{"type":"string","nullable":true},"taxid":{"type":"number","nullable":true}},"required":["scientificName","commonName","taxid"],"additionalProperties":false,"nullable":true},"chromosome":{"type":"string","nullable":true},"mapLocation":{"type":"string","nullable":true},"aliases":{"type":"array","items":{"type":"string"}},"summary":{"type":"string","nullable":true},"protein":{"type":"object","properties":{"found":{"type":"boolean"},"uniprotAccession":{"type":"string","nullable":true},"uniprotId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"lengthAa":{"type":"number","nullable":true},"function":{"type":"string","nullable":true}},"required":["found","uniprotAccession","uniprotId","name","lengthAa","function"],"additionalProperties":false},"ncbiUrl":{"type":"string","nullable":true},"uniprotUrl":{"type":"string","nullable":true}},"required":["symbol","ncbiGeneId","description","organism","chromosome","mapLocation","aliases","summary","protein","ncbiUrl","uniprotUrl"],"additionalProperties":false}},"required":["gene"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["sources"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bio.gene","x-2s-version":null,"x-2s-price":{"usd":0.00192},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001920"},"protocols":[{"x402":{}}]},"parameters":[{"name":"symbol","in":"query","required":true,"description":"Symbol.","schema":{"type":"string","minLength":1,"maxLength":30}},{"name":"taxid","in":"query","required":false,"description":"Taxid.","schema":{"type":"integer","minimum":1,"maximum":9999999,"default":9606}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bio/protein":{"get":{"tags":["bio"],"summary":"Look up a protein in UniProtKB by accession (e.g.","description":"Look up a protein in UniProtKB by accession (e.g. \"P04637\", \"Q9Y6K9\", \"P0DTC2\"). Returns the entry id, reviewed (Swiss-Prot) flag, recommended + alternative protein names, gene names, organism + taxid, sequence length and molecular weight, the curated function description, subcellular locations, Gene Ontology terms (id + term + aspect: biological_process / molecular_function / cellular_component), PDB structure ids, and keywords. Bioinformatics, structural biology, drug-target research, education. Gene-centric sibling: /api/bio/gene. CC-BY UniProt data.","operationId":"bio_protein","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ protein }] (one UniProtKB entry: names, organism, sequence, function, GO terms, PDB ids); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"protein":{"type":"object","properties":{"accession":{"type":"string"},"entryId":{"type":"string","nullable":true},"reviewed":{"type":"boolean"},"proteinName":{"type":"string","nullable":true},"alternativeNames":{"type":"array","items":{"type":"string"}},"genes":{"type":"array","items":{"type":"string"}},"organism":{"type":"object","properties":{"scientificName":{"type":"string","nullable":true},"commonName":{"type":"string","nullable":true},"taxid":{"type":"number","nullable":true}},"required":["scientificName","commonName","taxid"],"additionalProperties":false,"nullable":true},"lengthAa":{"type":"number","nullable":true},"molecularWeightDa":{"type":"number","nullable":true},"function":{"type":"string","nullable":true},"subcellularLocations":{"type":"array","items":{"type":"string"}},"goTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"term":{"type":"string"},"aspect":{"type":"string","nullable":true}},"required":["id","term","aspect"],"additionalProperties":false}},"pdbStructures":{"type":"array","items":{"type":"string"}},"keywords":{"type":"array","items":{"type":"string"}},"uniprotUrl":{"type":"string"}},"required":["accession","entryId","reviewed","proteinName","alternativeNames","genes","organism","lengthAa","molecularWeightDa","function","subcellularLocations","goTerms","pdbStructures","keywords","uniprotUrl"],"additionalProperties":false}},"required":["protein"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bio.protein","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"accession","in":"query","required":true,"description":"Accession.","schema":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z0-9]+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bio/species":{"get":{"tags":["bio"],"summary":"Resolve any organism by scientific or common name to the...","description":"Resolve any organism by scientific or common name to the GBIF taxonomic backbone — the canonical free reference for life on Earth. Returns the accepted scientific name + canonical name, taxonomic rank and status, the match type/confidence, the full classification (kingdom → phylum → class → order → family → genus → species), up to 8 English vernacular (common) names, the count of recorded occurrences worldwide, and the GBIF species URL. Biodiversity, ecology, education, and as a taxonomy normalizer for other pipelines. Fuzzy-matches misspellings. CC-BY GBIF data.","operationId":"bio_species","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ species }] (one resolved taxon; classification + vernacular + occurrence sub-blocks stay inside the item, best-effort); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"species":{"type":"object","properties":{"usageKey":{"type":"number","nullable":true},"scientificName":{"type":"string","nullable":true},"canonicalName":{"type":"string","nullable":true},"rank":{"type":"string","nullable":true},"taxonomicStatus":{"type":"string","nullable":true},"matchType":{"type":"string","nullable":true},"matchConfidence":{"type":"number","nullable":true},"classification":{"type":"object","properties":{"kingdom":{"type":"string","nullable":true},"phylum":{"type":"string","nullable":true},"class":{"type":"string","nullable":true},"order":{"type":"string","nullable":true},"family":{"type":"string","nullable":true},"genus":{"type":"string","nullable":true},"species":{"type":"string","nullable":true}},"required":["kingdom","phylum","class","order","family","genus","species"],"additionalProperties":false},"vernacularNames":{"type":"array","items":{"type":"string"}},"occurrenceCount":{"type":"number","nullable":true},"gbifUrl":{"type":"string","nullable":true}},"required":["usageKey","scientificName","canonicalName","rank","taxonomicStatus","matchType","matchConfidence","classification","vernacularNames","occurrenceCount","gbifUrl"],"additionalProperties":false}},"required":["species"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bio.species","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bls/series":{"get":{"tags":["bls"],"summary":"US Bureau of Labor Statistics time-series data.","description":"US Bureau of Labor Statistics time-series data. Pass seriesIds = comma-separated BLS series IDs (1-10 per call), optional startYear + endYear bracket (max 10 years). Each observation: year, period (M01-M12 monthly, Q01-Q04 quarterly, A01 annual, S01/S02 semiannual), periodName, value (verbatim string from BLS) + numericValue (parsed number), latest flag, footnote texts. Common series IDs: LNS14000000 (unemployment rate), CUUR0000SA0 (CPI-U all items), CES0000000001 (nonfarm employment), LNS11300000 (labor force participation). Unauthenticated upstream — ~25 queries/day per IP.","operationId":"bls_series","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = one entry per requested BLS series (seriesId, catalog, observations); total = number of series returned; meta.status is the upstream REQUEST_SUCCEEDED flag; meta.query echoes the request.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"seriesId":{"type":"string"},"catalog":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"observations":{"type":"array","items":{"type":"object","properties":{"year":{"type":"string"},"period":{"type":"string"},"periodName":{"type":"string"},"value":{"type":"string"},"numericValue":{"type":"number","nullable":true},"latest":{"type":"boolean"},"footnotes":{"type":"array","items":{"type":"string"}}},"required":["year","period","periodName","value","numericValue","latest","footnotes"],"additionalProperties":false}}},"required":["seriesId","catalog","observations"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"seriesIds":{"type":"array","items":{"type":"string"}},"startYear":{"type":"integer","nullable":true},"endYear":{"type":"integer","nullable":true}},"required":["seriesIds","startYear","endYear"],"additionalProperties":false},"status":{"type":"string"}},"required":["query","status"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bls.series","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"seriesIds","in":"query","required":true,"description":"Series ids.","schema":{"type":"string","minLength":4,"maxLength":400}},{"name":"startYear","in":"query","required":false,"description":"Start year.","schema":{"type":"integer","minimum":1900,"maximum":2100}},{"name":"endYear","in":"query","required":false,"description":"End year.","schema":{"type":"integer","minimum":1900,"maximum":2100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/book/search":{"get":{"tags":["book"],"summary":"Open Library book metadata search.","description":"Open Library book metadata search. Lookup by free-text query (matches title + author), or by individual title / author / ISBN (10 or 13 digit). Each record includes Open Library work key, title, author names + Open Library author keys, first publish year, edition count, cover image URL, sample ISBNs, publishers, languages, subject tags, fulltext flag, ebook access tier (public/borrowable/printdisabled/no_ebook), and canonical openlibrary.org URL. CC0 public-domain metadata.","operationId":"book_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Open Library book records; total = upstream match count (numFound); page = current page; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"workKey":{"type":"string"},"title":{"type":"string"},"authorNames":{"type":"array","items":{"type":"string"}},"authorKeys":{"type":"array","items":{"type":"string"}},"firstPublishYear":{"type":"integer","nullable":true},"editionCount":{"type":"integer","nullable":true},"coverEditionKey":{"type":"string","nullable":true},"coverImageUrl":{"type":"string","nullable":true},"isbns":{"type":"array","items":{"type":"string"}},"publishers":{"type":"array","items":{"type":"string"}},"languages":{"type":"array","items":{"type":"string"}},"subjectTags":{"type":"array","items":{"type":"string"}},"hasFulltext":{"type":"boolean"},"ebookAccess":{"type":"string","nullable":true},"openlibraryUrl":{"type":"string","format":"uri"}},"required":["workKey","title","authorNames","authorKeys","firstPublishYear","editionCount","coverEditionKey","coverImageUrl","isbns","publishers","languages","subjectTags","hasFulltext","ebookAccess","openlibraryUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"q":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"author":{"type":"string","nullable":true},"isbn":{"type":"string","nullable":true},"limit":{"type":"integer"},"page":{"type":"integer"}},"required":["q","title","author","isbn","limit","page"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"book.search","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"title","in":"query","required":false,"description":"Title to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"author","in":"query","required":false,"description":"Author.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"isbn","in":"query","required":false,"description":"ISBN.","schema":{"type":"string","minLength":9,"maxLength":17}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/br-cnpj":{"get":{"tags":["business"],"summary":"Brazilian company registry lookup by CNPJ (the 14-digit...","description":"Brazilian company registry lookup by CNPJ (the 14-digit national company tax ID). Returns the legal name (razão social), trade name, registration status and reason, start date, legal nature, company size, share capital (BRL), primary economic activity (CNAE code + description), contact email/phone, full address, and the partners/officers (QSA — name + role). Free, open Brazilian government data (Receita Federal via BrasilAPI). The canonical \"who is this Brazilian company\" lookup for KYB, diligence, and cross-border onboarding — complements business.lei (GLEIF) and business.sos-search (US).","operationId":"business_br-cnpj","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one company] (or [] if not found); total = 1 or 0.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"cnpj":{"type":"string","nullable":true},"legalName":{"type":"string","nullable":true},"tradeName":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"statusReason":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"legalNature":{"type":"string","nullable":true},"size":{"type":"string","nullable":true},"shareCapitalBRL":{"type":"number","nullable":true},"primaryActivityCode":{"type":"string","nullable":true},"primaryActivity":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"address":{"type":"object","properties":{"street":{"type":"string","nullable":true},"number":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zip":{"type":"string","nullable":true}},"required":["street","number","district","city","state","zip"],"additionalProperties":false},"partners":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"role":{"type":"string","nullable":true}},"required":["name","role"],"additionalProperties":false}}},"required":["cnpj","legalName","tradeName","status","statusReason","startDate","legalNature","size","shareCapitalBRL","primaryActivityCode","primaryActivity","email","phone","address","partners"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.br-cnpj","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"cnpj","in":"query","required":true,"description":"14-digit CNPJ.","schema":{"type":"string","minLength":14,"maxLength":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/entity-match":{"get":{"tags":["business"],"summary":"Fuzzy entity resolution: resolve a messy, free-text company...","description":"Fuzzy entity resolution: resolve a messy, free-text company name to its canonical GLEIF Legal Entity Identifier (LEI) with a 0-1 similarity score and a high/medium/low confidence label. Tolerant of legal-suffix noise (Inc/Ltd/GmbH/S.A.), word order, ampersands, punctuation, and former/alternate names (e.g. 'Apple Computer Inc' resolves to Apple Inc. via GLEIF's recorded other-names). Returns the top candidates ranked by score plus a single bestMatch (null when nothing clears medium confidence — so a low-confidence top hit is never silently treated as a match, which is the safe default for KYB). The record-linkage complement to business.lei (name search). Optional country (ISO-2) narrows to a jurisdiction. Backed by GLEIF Golden Copy (~2.6M entities, CC0).","operationId":"business_entity-match","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = candidate LEI records ranked by fuzzy score (desc); total = size of the FTS candidate pool; meta.bestMatch = the single confident resolution (or null); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lei":{"type":"string"},"legalName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"score":{"type":"number"},"confidence":{"type":"string","enum":["high","medium","low"]},"jurisdiction":{"type":"string","nullable":true},"entityStatus":{"type":"string","nullable":true},"registrationStatus":{"type":"string","nullable":true},"headquarters":{"type":"object","properties":{"city":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["city","region","country"],"additionalProperties":false}},"required":["lei","legalName","otherName","score","confidence","jurisdiction","entityStatus","registrationStatus","headquarters"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["name","country","limit"],"additionalProperties":false},"bestMatch":{"type":"object","properties":{"lei":{"type":"string"},"legalName":{"type":"string","nullable":true},"score":{"type":"number"},"confidence":{"type":"string","enum":["high","medium","low"]}},"required":["lei","legalName","score","confidence"],"additionalProperties":false,"nullable":true}},"required":["query","bestMatch"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.entity-match","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Free-text company / legal-entity name to resolve. Messy input is fine: \"Apple Computer Inc.\", \"jp morgan chase & co\".","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"country","in":"query","required":false,"description":"Optional ISO-2 country of the entity HQ to narrow the match (e.g., \"US\", \"DE\", \"GB\").","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"limit","in":"query","required":false,"description":"Max ranked candidates to return (1-25). Default 5.","schema":{"type":"integer","minimum":1,"maximum":25,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/entity-profile":{"get":{"tags":["business"],"summary":"Full business-entity dossier from a state registry - master...","description":"Full business-entity dossier from a state registry — master record plus officers/principals, registered agent (name, phone, email, address), and filing history — the detail layer that flat registry search omits. v1 state: CT (Connecticut). Resolve by entityId (state registry record id), accountNumber, or name (partial; most recent registration wins). Returns entity status, type, registration date, mailing address, minority/woman/veteran/disability/LGBTQI ownership flags, officers, registered agent, and recent filings. KYB, vendor due-diligence, and counterparty-verification staple, sourced from the official state open-data portal.","operationId":"business_entity-profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [entity dossier] (master + officers + registered agent + filings); total = 1; meta = {state, resolvedFrom, candidateCount, partial}. partial lists any child source that degraded.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"state":{"type":"string"},"entityId":{"type":"string","nullable":true},"accountNumber":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"jurisdiction":{"type":"string","nullable":true},"registrationDate":{"type":"string","nullable":true},"mailingAddress":{"type":"string","nullable":true},"ownership":{"type":"object","properties":{"womanOwned":{"type":"boolean","nullable":true},"veteranOwned":{"type":"boolean","nullable":true},"minorityOwned":{"type":"boolean","nullable":true},"disabilityOwned":{"type":"boolean","nullable":true},"lgbtqiOwned":{"type":"boolean","nullable":true}},"required":["womanOwned","veteranOwned","minorityOwned","disabilityOwned","lgbtqiOwned"],"additionalProperties":false},"officers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"businessAddress":{"type":"string","nullable":true},"residenceAddress":{"type":"string","nullable":true}},"required":["name","firstName","lastName","businessAddress","residenceAddress"],"additionalProperties":false}},"registeredAgent":{"type":"object","properties":{"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"address":{"type":"string","nullable":true}},"required":["name","type","phone","email","address"],"additionalProperties":false,"nullable":true},"filings":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"filingType":{"type":"string","nullable":true},"reportYear":{"type":"string","nullable":true}},"required":["date","type","filingType","reportYear"],"additionalProperties":false}},"counts":{"type":"object","properties":{"officers":{"type":"integer"},"filings":{"type":"integer"}},"required":["officers","filings"],"additionalProperties":false}},"required":["state","entityId","accountNumber","name","status","type","jurisdiction","registrationDate","mailingAddress","ownership","officers","registeredAgent","filings","counts"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"state":{"type":"string"},"resolvedFrom":{"type":"string","enum":["entityId","accountNumber","name"]},"candidateCount":{"type":"integer","nullable":true},"partial":{"type":"array","items":{"type":"string"}}},"required":["state","resolvedFrom","candidateCount","partial"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.entity-profile","x-2s-version":null,"x-2s-price":{"usd":0.003},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"State registry to query (v1: CT only).","schema":{"type":"string","enum":["CT"]}},{"name":"entityId","in":"query","required":false,"description":"State registry record id (canonical join key).","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"accountNumber","in":"query","required":false,"description":"State business account number.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"name","in":"query","required":false,"description":"Entity name, partial match.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"filingsLimit","in":"query","required":false,"description":"Max recent filings.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/entity-screen":{"get":{"tags":["business"],"summary":"KYC in one call: look up a business in a US state registry...","description":"KYC in one call: look up a business in a US state registry (NY, CO, CT) AND screen it against the OFAC sanctions list. Give a state and a name (or exact entityId). Returns the matched registered entities (id, type, status, jurisdiction, address, registered agent) and, for each, a sanctions screen of the entity name AND its registered agent against OFAC SDN — with fuzzy-match confidence and a flagged boolean. Counterparty due-diligence, vendor onboarding, AML. Composition of /api/business/sos-search + /api/law/sanctions-check (each section reports found/error independently). Note: sanctions screening is name-based and probabilistic — review flagged matches manually.","operationId":"business_entity-screen","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"state":{"type":"string"},"count":{"type":"number"},"entities":{"type":"array","items":{"type":"object","properties":{"entity":{"type":"object","additionalProperties":{}},"sanctions":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"flagged":{"type":"boolean"},"entityMatchCount":{"type":"number"},"agentMatchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","flagged","entityMatchCount","agentMatchCount","matches"],"additionalProperties":false}},"required":["entity","sanctions"],"additionalProperties":false}},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["state","count","entities","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.entity-screen","x-2s-version":null,"x-2s-price":{"usd":0.00576},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005760"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","enum":["NY","CO","CT"]}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"entityId","in":"query","required":false,"description":"Entity ID.","schema":{"type":"string","minLength":2,"maxLength":30}},{"name":"threshold","in":"query","required":false,"description":"Minimum score/threshold required to include a result.","schema":{"type":"number","minimum":0.1,"maximum":1,"default":0.5}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/fi-companies":{"get":{"tags":["business"],"summary":"Official Finnish company registry search (PRH/YTJ...","description":"Official Finnish company registry search (PRH/YTJ avoindata, Finnish Patent & Registration Office). Search by company name. Each result: Business ID (Y-tunnus), current name, company form, trade-register status, primary line of business, registration date, and street address — descriptions in English where available. Free, CC BY 4.0. The authoritative FI company lookup — complements business.uk-companies and business.lei.","operationId":"business_fi-companies","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching Finnish companies.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"businessId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"companyForm":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"mainBusinessLine":{"type":"string","nullable":true},"registrationDate":{"type":"string","nullable":true},"street":{"type":"string","nullable":true},"postCode":{"type":"string","nullable":true},"city":{"type":"string","nullable":true}},"required":["businessId","name","companyForm","status","mainBusinessLine","registrationDate","street","postCode","city"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.fi-companies","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Company name to search.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/fr-companies":{"get":{"tags":["business"],"summary":"Official French company registry search (annuaire des...","description":"Official French company registry search (annuaire des entreprises / data.gouv.fr). Search by company name, SIREN, SIRET, or director. Each result: SIREN, legal name, legal-form code, primary NAF activity code, enterprise category (PME/ETI/GE), employee-count range, creation date, administrative status (active/ceased), head-office SIRET and address. Free, Licence Ouverte. The authoritative FR company lookup — complements business.uk-companies and business.lei.","operationId":"business_fr-companies","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching French companies.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"siren":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"legalForm":{"type":"string","nullable":true},"naf":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"employeesRange":{"type":"string","nullable":true},"created":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"siret":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true}},"required":["siren","name","legalForm","naf","category","employeesRange","created","status","siret","address","city","postalCode"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.fr-companies","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name, SIREN, SIRET, or director name.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/id-resolve":{"get":{"tags":["business"],"summary":"Resolve a legal entity across identifier systems.","description":"Resolve a legal entity across identifier systems. Give exactly one of name, lei, cik, or ticker and get the others back: LEI (GLEIF), SEC CIK, ticker(s) with exchange, jurisdiction, and a canonical entity name. This is the COMPANY-ENTITY resolver: it joins the legal entity (LEI) to its SEC filer identity (CIK/ticker) and back. For SECURITIES (FIGI, ISIN, share-class identifiers) use finance.security-resolve instead -- this one deliberately stays at the legal-entity layer. Composes SEC company_tickers_exchange (public domain) + GLEIF (CC0). The SEC<->GLEIF link is by name-match when you anchor on ticker/cik (best-effort, flagged via bridge + leiName); a supplied LEI is authoritative. Per-source status is returned so a partial resolve is explicit. No CUSIP/SEDOL.","operationId":"business_id-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one resolved legal entity with cross-system identifiers + per-source status]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"resolvedFrom":{"type":"string","enum":["name","lei","cik","ticker"]},"name":{"type":"string","nullable":true},"lei":{"type":"string","nullable":true},"leiName":{"type":"string","nullable":true},"cik":{"type":"string","nullable":true},"tickers":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"exchange":{"type":"string","nullable":true}},"required":["ticker","exchange"],"additionalProperties":false}},"jurisdiction":{"type":"string","nullable":true},"bridge":{"type":"string","enum":["direct-lei","name-match","sec-only","gleif-only","none"],"description":"How SEC<->GLEIF were linked; name-match is best-effort -- verify leiName."},"sources":{"type":"object","properties":{"sec":{"type":"string"},"gleif":{"type":"string"}},"required":["sec","gleif"],"additionalProperties":false}},"required":["resolvedFrom","name","lei","leiName","cik","tickers","jurisdiction","bridge","sources"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.id-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Legal/common entity name to search (GLEIF).","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"lei","in":"query","required":false,"description":"20-char LEI.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$"}},{"name":"cik","in":"query","required":false,"description":"SEC CIK, leading zeros optional.","schema":{"type":"string","minLength":1,"maxLength":13}},{"name":"ticker","in":"query","required":false,"description":"US stock ticker.","schema":{"type":"string","minLength":1,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/kyb-360":{"get":{"tags":["business"],"summary":"Full Know-Your-Business (KYB) intelligence dossier on a...","description":"Full Know-Your-Business (KYB) intelligence dossier on a company, in one call. Pass name (legal/common company name); optional state narrows federal awards, and optional ticker pulls the company's SEC EDGAR identity + recent filings (SEC has no name search). Fans out to seven authoritative sources and merges them: SAM.gov registration (UEI/CAGE, active status), SAM exclusions (federal debarment/suspension), OFAC SDN sanctions screen, GLEIF LEI (legal-entity identifier + jurisdiction), USAspending federal contract awards, FARA foreign-agent registration (a disclosure status, not wrongdoing), and USPTO trademarks owned (brand/IP footprint). Returns headline riskFlags and a cleared boolean (strictly debarment + sanctions), a summary of every signal, and a found/error block per source so one slow or empty source never fails the rest. For vendor onboarding, KYB/AML, procurement due diligence, and competitive/IP research. Probabilistic name matching — confirm with a hard identifier (UEI/LEI/CIK) before acting; public records, not legal advice.","operationId":"business_kyb-360","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [KYB dossier with per-source blocks]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string"},"state":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true}},"required":["name","state","ticker"],"additionalProperties":false},"riskFlags":{"type":"array","items":{"type":"string"}},"cleared":{"type":"boolean"},"summary":{"type":"object","properties":{"samRegistered":{"type":"boolean","nullable":true},"activeRegistration":{"type":"boolean","nullable":true},"isDebarred":{"type":"boolean","nullable":true},"isSanctioned":{"type":"boolean","nullable":true},"hasLei":{"type":"boolean","nullable":true},"federalAwardCount":{"type":"number","nullable":true},"isForeignAgent":{"type":"boolean","nullable":true},"trademarkCount":{"type":"number","nullable":true},"secCik":{"type":"string","nullable":true}},"required":["samRegistered","activeRegistration","isDebarred","isSanctioned","hasLei","federalAwardCount","isForeignAgent","trademarkCount","secCik"],"additionalProperties":false},"registration":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"exclusions":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"sanctions":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"lei":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"federalAwards":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"foreignAgent":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"trademarks":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"securities":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string"}},"required":["query","riskFlags","cleared","summary","registration","exclusions","sanctions","lei","federalAwards","foreignAgent","trademarks","securities","sources","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.kyb-360","x-2s-version":null,"x-2s-price":{"usd":0.0144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.014400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"ticker","in":"query","required":false,"description":"Ticker.","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"threshold","in":"query","required":false,"description":"Minimum score/threshold required to include a result.","schema":{"type":"number","minimum":0,"maximum":1}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/lei":{"get":{"tags":["business"],"summary":"Look up or search the global LEI (Legal Entity Identifier)...","description":"Look up or search the global LEI (Legal Entity Identifier) registry — the authoritative ISO 17442 directory of ~2.6M legal entities worldwide. Pass `lei` for an exact 20-character LEI, or `query` to search by legal/other name (ranked best-match first). Filter name search by `country` (ISO 2-letter, HQ country) and `status` (active = currently active entities only; all = default). Each result returns the LEI, legal name, an alternate/other name, legal jurisdiction, entity category (GENERAL/FUND/BRANCH/…), ISO 20275 legal-form code, entity status (ACTIVE/INACTIVE), LEI registration status (ISSUED/LAPSED/RETIRED/…), headquarters city/region/country/postal code, the initial registration + last update + next renewal dates, and the managing LOU. Use this to canonicalize a company name to its LEI, resolve a counterparty, or enrich a vendor master. Data: GLEIF Golden Copy (CC0, public domain).","operationId":"business_lei","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching entities (bm25-ranked for name search; ≤1 for exact LEI lookup); total = match count; page = pagination block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lei":{"type":"string"},"legalName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true,"description":"First alternate/other registered name, if any."},"jurisdiction":{"type":"string","nullable":true,"description":"Legal jurisdiction (ISO country or subdivision)."},"category":{"type":"string","nullable":true,"description":"Entity category: GENERAL | FUND | BRANCH | SOLE_PROPRIETOR | …"},"legalForm":{"type":"string","nullable":true,"description":"ISO 20275 Entity Legal Form (ELF) code."},"entityStatus":{"type":"string","nullable":true,"description":"ACTIVE | INACTIVE."},"registrationStatus":{"type":"string","nullable":true,"description":"LEI registration status: ISSUED | LAPSED | RETIRED | ANNULLED | …"},"headquarters":{"type":"object","properties":{"city":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true}},"required":["city","region","country","postalCode"],"additionalProperties":false},"initialRegistrationDate":{"type":"string","nullable":true},"lastUpdateDate":{"type":"string","nullable":true},"nextRenewalDate":{"type":"string","nullable":true},"managingLou":{"type":"string","nullable":true,"description":"LEI of the Local Operating Unit that maintains this record."}},"required":["lei","legalName","otherName","jurisdiction","category","legalForm","entityStatus","registrationStatus","headquarters","initialRegistrationDate","lastUpdateDate","nextRenewalDate","managingLou"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.lei","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lei","in":"query","required":false,"description":"LEI.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$"}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["active","all"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/lei-hierarchy":{"get":{"tags":["business"],"summary":"Corporate ownership graph for a legal entity by LEI (GLEIF...","description":"Corporate ownership graph for a legal entity by LEI (GLEIF Level-2 relationships, live). Returns the direct parent and ultimate parent (each: LEI, legal name, jurisdiction, country, status), the direct children (paged), and total counts of direct and ultimate children. The authoritative 'who owns whom' lookup for KYB, beneficial-ownership, and corporate-tree mapping — complements business.lei (entity reference) and business.lei-isins.","operationId":"business_lei-hierarchy","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one ownership-graph object].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lei":{"type":"string"},"directParent":{"type":"object","properties":{"lei":{"nullable":true},"name":{"nullable":true},"jurisdiction":{"nullable":true},"country":{"nullable":true},"status":{"nullable":true},"registrationStatus":{"nullable":true}},"additionalProperties":false,"nullable":true},"ultimateParent":{"type":"object","properties":{"lei":{"nullable":true},"name":{"nullable":true},"jurisdiction":{"nullable":true},"country":{"nullable":true},"status":{"nullable":true},"registrationStatus":{"nullable":true}},"additionalProperties":false,"nullable":true},"directChildren":{"type":"array","items":{"type":"object","properties":{"lei":{"nullable":true},"name":{"nullable":true},"jurisdiction":{"nullable":true},"country":{"nullable":true},"status":{"nullable":true},"registrationStatus":{"nullable":true}},"additionalProperties":false}},"directChildrenCount":{"type":"number"},"ultimateChildrenCount":{"type":"number","nullable":true}},"required":["lei","directParent","ultimateParent","directChildren","directChildrenCount","ultimateChildrenCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.lei-hierarchy","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lei","in":"query","required":true,"description":"20-character LEI, e.g. HWUPKR0MPOU8FGXBT394 (Apple Inc.).","schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$"}},{"name":"childLimit","in":"query","required":false,"description":"Max direct children to return (1-50, default 10).","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/lei-isins":{"get":{"tags":["business"],"summary":"ISIN LEI mapping (GLEIF, live, CC0).","description":"ISIN ↔ LEI mapping (GLEIF, live, CC0). Two modes: pass lei to list every ISIN (security identifier) issued by that entity; or pass isin to resolve the issuer's LEI (with legal name, jurisdiction, country). Bridges securities to their legal-entity issuers for finance, compliance, and reference-data joins — complements business.lei and business.lei-hierarchy.","operationId":"business_lei-isins","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one mapping result]; meta.total = upstream total ISIN count (lei mode).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string","enum":["lei-to-isins","isin-to-lei"]},"lei":{"type":"string"},"isin":{"type":"string"},"issuer":{"type":"object","properties":{"lei":{"nullable":true},"name":{"nullable":true},"jurisdiction":{"nullable":true},"country":{"nullable":true},"status":{"nullable":true},"registrationStatus":{"nullable":true}},"additionalProperties":false,"nullable":true},"isins":{"type":"array","items":{}}},"required":["mode","isins"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total":{"type":"number"}},"required":["total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.lei-isins","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lei","in":"query","required":false,"description":"LEI → list its ISINs.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$"}},{"name":"isin","in":"query","required":false,"description":"ISIN → resolve issuer LEI, e.g. US0378331005.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{12}$"}},{"name":"limit","in":"query","required":false,"description":"Max ISINs in lei mode (1-200, default 100).","schema":{"type":"integer","minimum":1,"maximum":200}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/naics":{"get":{"tags":["business"],"summary":"Look up or search NAICS 2022 industry classification codes...","description":"Look up or search NAICS 2022 industry classification codes (US Census Bureau, public domain). Pass `code` for an exact NAICS code — 2–6 digits or a combined sector like 31-33 — and get its official title, hierarchy path, full official description, activity index terms, and direct child codes. Or pass `query` for free-text search (e.g. 'software publishers', 'coffee shop') over titles plus the official ~20k-entry activity index → ranked candidate codes, optionally filtered by `level` (2=sector … 6=national industry). Ground truth for industry coding in KYC, business registration, government filings, and ERP vendor/customer setup.","operationId":"business_naics","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NAICS codes (exact match first followed by its direct children, or ranked search candidates); total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"NAICS 2022 code (sectors may be ranges like 31-33)."},"level":{"type":"number","description":"Hierarchy level: 2=sector, 3=subsector, 4=industry group, 5=NAICS industry, 6=national industry."},"title":{"type":"string","description":"Official NAICS title."},"heading":{"type":"string","nullable":true,"description":"Ancestor path (sector > subsector > …), excludes the code itself."},"description":{"type":"string","nullable":true,"description":"Official Census description. Full text on the exactly-matched code; truncated elsewhere."},"indexTerms":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Official activity index entries cross-referenced to this code (6-digit codes; capped)."}},"required":["code","level","title","heading","description","indexTerms"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.naics","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"Exact NAICS code (2–6 digits, or a combined sector range like 31-33). XOR with query.","schema":{"type":"string","pattern":"^(\\d{2}-\\d{2}|\\d{2,6})$"}},{"name":"query","in":"query","required":false,"description":"Free-text industry or activity description to search. XOR with code.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"level","in":"query","required":false,"description":"Search mode only: restrict results to one hierarchy level (2=sector … 6=national industry).","schema":{"type":"integer","minimum":2,"maximum":6}},{"name":"limit","in":"query","required":false,"description":"Search mode only: max results, 1–50, default 20.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/no-companies":{"get":{"tags":["business"],"summary":"Official Norwegian company registry search (Brnnysund...","description":"Official Norwegian company registry search (Brønnøysund Enhetsregisteret). Search by company name. Each result: organisation number, name, organisation form, primary industry (NACE), employee count, registration date, website, bankruptcy and dissolution flags, and business address. Free, NLOD/CC BY 4.0. The authoritative NO company lookup — complements business.uk-companies and business.lei.","operationId":"business_no-companies","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching Norwegian entities.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"orgNumber":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"orgForm":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"employees":{"type":"number","nullable":true},"registered":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"bankrupt":{"type":"boolean"},"beingDissolved":{"type":"boolean"},"address":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["orgNumber","name","orgForm","industry","employees","registered","website","bankrupt","beingDissolved","address","country"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.no-companies","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Company name to search.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/pl-krs":{"get":{"tags":["business"],"summary":"Official Polish company registry lookup by KRS number (KRS...","description":"Official Polish company registry lookup by KRS number (KRS — Ministry of Justice, current extract / OdpisAktualny). Returns legal name, legal form, NIP and REGON identifiers, KRS registration date, share capital, and registered address. Register P = entrepreneurs (default); S = associations/foundations. Free, Polish public-sector open data. The authoritative PL company lookup — complements business.uk-companies and business.lei.","operationId":"business_pl-krs","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one KRS entity].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"krs":{"type":"string","nullable":true},"register":{"type":"string"},"name":{"type":"string","nullable":true},"legalForm":{"type":"string","nullable":true},"nip":{"type":"string","nullable":true},"regon":{"type":"string","nullable":true},"registeredDate":{"type":"string","nullable":true},"asOf":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"shareCapital":{"type":"string","nullable":true}},"required":["krs","register","name","legalForm","nip","regon","registeredDate","asOf","address","city","postalCode","country","shareCapital"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.pl-krs","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"krs","in":"query","required":true,"description":"10-digit KRS number, e.g. 0000028860.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"name":"register","in":"query","required":false,"description":"P = entrepreneurs (default), S = associations/foundations.","schema":{"type":"string","enum":["P","S"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/sos-search":{"get":{"tags":["business"],"summary":"Search state Secretary-of-State business registries...","description":"Search state Secretary-of-State business registries, normalized to one schema across states. Currently supported: NY (active corporations + LLCs), CO (all entities incl. status), and CT (Business Registry Master incl. type, status, NAICS). Query by name (partial, case-insensitive) or exact entityId; results: state, entity id, name, type, status, formation jurisdiction, formation date, principal/registered address, registered agent. KYC, vendor due-diligence, and counterparty-verification staple. Each state sourced from its official open-data portal.","operationId":"business_sos-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching business entities (normalized across states); total = null (capped state-portal search); meta = {state}.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"state":{"type":"string"},"entityId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"jurisdiction":{"type":"string","nullable":true},"formedDate":{"type":"string","nullable":true},"address":{"type":"object","properties":{"street":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zip":{"type":"string","nullable":true}},"required":["street","city","state","zip"],"additionalProperties":false,"nullable":true},"agent":{"type":"string","nullable":true}},"required":["state","entityId","name","type","status","jurisdiction","formedDate","address","agent"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"state":{"type":"string"}},"required":["state"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.sos-search","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","enum":["NY","CO","CT"]}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"entityId","in":"query","required":false,"description":"Entity ID.","schema":{"type":"string","minLength":2,"maxLength":30}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/business/uk-companies":{"get":{"tags":["business"],"summary":"Official UK company registry (Companies House).","description":"Official UK company registry (Companies House). Two modes: pass query to search companies by name (returns company number, name, status, type, incorporation date, address), or pass companyNumber for the full registry profile — legal name, status, company type, jurisdiction, incorporation/cessation dates, SIC activity codes, registered office address, accounts (next due, last made-up-to), confirmation-statement due date, charges and insolvency flags, previous names, and the officers list (name, role, appointed/resigned dates, nationality, occupation). Free, Open Government Licence (commercial use permitted). The authoritative UK-company KYB lookup — complements business.lei (GLEIF) and business.br-cnpj (Brazil).","operationId":"business_uk-companies","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one result object] (mode=profile → company populated; mode=search → results populated); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string","enum":["profile","search"]},"query":{"type":"object","properties":{"query":{"type":"string","nullable":true},"companyNumber":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["query","companyNumber","limit"],"additionalProperties":false},"total":{"type":"number"},"company":{"type":"object","properties":{"companyNumber":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"jurisdiction":{"type":"string","nullable":true},"dateOfCreation":{"type":"string","nullable":true},"dateOfCessation":{"type":"string","nullable":true},"sicCodes":{"type":"array","items":{"type":"string"}},"registeredOfficeAddress":{"type":"string","nullable":true},"accountsNextDue":{"type":"string","nullable":true},"accountsLastMadeUpTo":{"type":"string","nullable":true},"confirmationStatementNextDue":{"type":"string","nullable":true},"hasCharges":{"type":"boolean","nullable":true},"hasInsolvencyHistory":{"type":"boolean","nullable":true},"previousNames":{"type":"array","items":{"type":"string"}},"officers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"appointedOn":{"type":"string","nullable":true},"resignedOn":{"type":"string","nullable":true},"nationality":{"type":"string","nullable":true},"occupation":{"type":"string","nullable":true}},"required":["name","role","appointedOn","resignedOn","nationality","occupation"],"additionalProperties":false}}},"required":["companyNumber","name","status","type","jurisdiction","dateOfCreation","dateOfCessation","sicCodes","registeredOfficeAddress","accountsNextDue","accountsLastMadeUpTo","confirmationStatementNextDue","hasCharges","hasInsolvencyHistory","previousNames","officers"],"additionalProperties":false,"nullable":true},"results":{"type":"array","items":{"type":"object","properties":{"companyNumber":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"dateOfCreation":{"type":"string","nullable":true},"address":{"type":"string","nullable":true}},"required":["companyNumber","name","status","type","dateOfCreation","address"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["mode","query","total","company","results","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"business.uk-companies","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"companyNumber","in":"query","required":false,"description":"Company number.","schema":{"type":"string","minLength":1,"maxLength":12}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/calendar/business-days":{"get":{"tags":["calendar"],"summary":"Holiday-aware business-day calculator for 200+ countries.","description":"Holiday-aware business-day calculator for 200+ countries. Three modes: pass start + addDays (signed integer) to shift a date by N business days; pass start + end to count business days between two dates (exclusive of start, inclusive of end); pass start alone to check one date (is it a business day, which holiday, next/previous business day). Query: country (ISO 3166-1 alpha-2), start (YYYY-MM-DD), optional region (subdivision code), addDays XOR end, optional weekend (comma-separated days, default sat,sun — e.g. fri,sat for the Gulf), optional types (holiday types treated as closures, default public,bank). Skipped holidays are itemized in the response. Use for payment terms, SLA deadlines, and delivery-date math.","operationId":"calendar_business-days","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one calculation result], shape depends on mode (check | add | between); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string","description":"check | add | between — which calculation ran, inferred from the params."},"country":{"type":"string","description":"Resolved ISO country code."},"region":{"type":"string","nullable":true,"description":"Resolved subdivision code, or null."},"start":{"type":"string","description":"Echoed anchor date."},"addDays":{"type":"integer","description":"add mode: the requested shift."},"result":{"type":"string","description":"add mode: the resulting business date, YYYY-MM-DD."},"calendarDaysSpanned":{"type":"integer","description":"add mode: calendar days between start and result."},"holidaysSkipped":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"name":{"type":"string"}},"required":["date","name"],"additionalProperties":false},"description":"add mode: weekday holidays skipped along the way."},"end":{"type":"string","description":"between mode: echoed end date."},"businessDays":{"type":"integer","description":"between mode: business days after start through end."},"calendarDays":{"type":"integer","description":"between mode: calendar days between start and end."},"holidaysInRange":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"name":{"type":"string"}},"required":["date","name"],"additionalProperties":false},"description":"between mode: weekday holidays inside the range."},"isBusinessDay":{"type":"boolean","description":"check mode: true when start is neither weekend nor closure holiday."},"isWeekend":{"type":"boolean","description":"check mode: start falls on a configured weekend day."},"isHoliday":{"type":"boolean","description":"check mode: start is a closure holiday."},"holidayNames":{"type":"array","items":{"type":"string"},"description":"check mode: names of holidays on start, if any."},"nextBusinessDay":{"type":"string","description":"check mode: first business day after start."},"previousBusinessDay":{"type":"string","description":"check mode: last business day before start."}},"required":["mode","country","region","start"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"calendar.business-days","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":true,"description":"ISO 3166-1 alpha-2 country code, e.g. US, DE, JP.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"start","in":"query","required":true,"description":"Anchor date, YYYY-MM-DD.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"addDays","in":"query","required":false,"description":"Signed number of business days to add to start (non-zero, ±3660). Mutually exclusive with end.","schema":{"type":"integer","minimum":-3660,"maximum":3660}},{"name":"end","in":"query","required":false,"description":"End date YYYY-MM-DD. Counts business days after start through end. Mutually exclusive with addDays.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"region","in":"query","required":false,"description":"Optional subdivision code — e.g. CA for US-California, BY for DE-Bavaria.","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"weekend","in":"query","required":false,"description":"Optional comma-separated weekend days (mon..sun). Default \"sat,sun\"; use \"fri,sat\" for Gulf states.","schema":{"type":"string","maxLength":30}},{"name":"types","in":"query","required":false,"description":"Optional comma-separated holiday types treated as business closures (public, bank, school, optional, observance). Default \"public,bank\".","schema":{"type":"string","maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/calendar/earnings":{"get":{"tags":["calendar"],"summary":"Earnings release calendar - which US-listed companies...","description":"Earnings release calendar — which US-listed companies report earnings in a date window, with expected and (once reported) actual EPS and revenue, and the time of day (before/after market). Pass a from/to window (YYYY-MM-DD; defaults to the next 14 days) and optionally a ticker to filter to one company. Agents cannot recall future earnings dates — this is the schedule. Data by Finnhub.","operationId":"calendar_earnings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = scheduled/reported earnings events in the window.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true,"description":"Report date (yyyy-mm-dd)."},"symbol":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"quarter":{"type":"number","nullable":true},"epsEstimate":{"type":"number","nullable":true},"epsActual":{"type":"number","nullable":true},"revenueEstimate":{"type":"number","nullable":true},"revenueActual":{"type":"number","nullable":true},"hour":{"type":"string","nullable":true,"description":"bmo (before open), amc (after close), or dmh (during)."}},"required":["date","symbol","year","quarter","epsEstimate","epsActual","revenueEstimate","revenueActual","hour"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"symbol":{"type":"string","nullable":true}},"required":["from","to","symbol"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"calendar.earnings","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"from","in":"query","required":false,"description":"Start date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"End date YYYY-MM-DD (default: 14 days out).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"ticker","in":"query","required":false,"description":"Filter to a single US ticker.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/calendar/holidays":{"get":{"tags":["calendar"],"summary":"List the official holidays for a country and year, with...","description":"List the official holidays for a country and year, with exact observed dates including substitute days (e.g. a Saturday July 4th observed on Friday). Query: country (ISO 3166-1 alpha-2, 200+ supported), year, optional region (subdivision code like CA for US-California or BY for DE-Bavaria), optional types filter (public, bank, school, optional, observance — comma-separated), optional lang (ISO 639-1) for localized names. Returns one item per holiday: { date (YYYY-MM-DD), name, type, substitute, rule }. Dates are computed from maintained per-country rules — including movable feasts and lunar-calendar holidays — so they stay correct year over year. Use for scheduling, delivery estimates, payment terms, and SLA math.","operationId":"calendar_holidays","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = holidays for the requested country/region/year, sorted by date; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"Observed date, YYYY-MM-DD."},"name":{"type":"string","description":"Holiday name (localized when lang is passed and a translation exists)."},"type":{"type":"string","description":"public | bank | school | optional | observance."},"substitute":{"type":"boolean","description":"True when this entry is a substitute/observed day for a holiday falling on a weekend."},"rule":{"type":"string","nullable":true,"description":"The rule the date was computed from, e.g. \"3rd monday in January\"."}},"required":["date","name","type","substitute","rule"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"calendar.holidays","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":true,"description":"ISO 3166-1 alpha-2 country code, e.g. US, DE, JP. 200+ countries supported.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"year","in":"query","required":true,"description":"Calendar year (1950-2100).","schema":{"type":"integer","minimum":1950,"maximum":2100}},{"name":"region","in":"query","required":false,"description":"Optional subdivision code — e.g. CA for US-California, BY for DE-Bavaria, ON for CA-Ontario.","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"types","in":"query","required":false,"description":"Optional comma-separated holiday-type filter: public, bank, school, optional, observance. Default: all types.","schema":{"type":"string","maxLength":60}},{"name":"lang","in":"query","required":false,"description":"Optional ISO 639-1 language code for localized holiday names, e.g. en, de, fr.","schema":{"type":"string","minLength":2,"maxLength":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/calendar/ipo":{"get":{"tags":["calendar"],"summary":"IPO calendar - companies going public (or recently public)...","description":"IPO calendar — companies going public (or recently public) in a date window, with the expected date, symbol, name, exchange, price range, number of shares, total offering value, and status (expected/priced/filed/withdrawn). Pass a from/to window (YYYY-MM-DD; defaults to a ±30-day span around today). Data by Finnhub.","operationId":"calendar_ipo","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = IPO events in the window.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","nullable":true},"symbol":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"exchange":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"price":{"type":"string","nullable":true},"numberOfShares":{"type":"number","nullable":true},"totalSharesValue":{"type":"number","nullable":true}},"required":["date","symbol","name","exchange","status","price","numberOfShares","totalSharesValue"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"calendar.ipo","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"from","in":"query","required":false,"description":"Start date YYYY-MM-DD (default: 15 days ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"End date YYYY-MM-DD (default: 30 days out).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/census/demographics":{"get":{"tags":["census"],"summary":"US Census ACS 5-year demographics for a state or county.","description":"US Census ACS 5-year demographics for a state or county. Give a state (2-letter or 2-digit FIPS), optionally a 3-digit county FIPS, and get population, median age, median household income, per-capita income, poverty rate (computed), households, owner-occupancy rate (computed), median home value, and median gross rent. Free, public-domain (US Census Bureau). Complements census.zipcode (ZIP/ZCTA-level) with state- and county-level geography. Authoritative demographic data an LLM cannot recall — for market sizing, site selection, and socioeconomic research.","operationId":"census_demographics","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one geography demographics object]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string"},"county":{"type":"string","nullable":true},"year":{"type":"number"}},"required":["state","county","year"],"additionalProperties":false},"geoName":{"type":"string","nullable":true},"population":{"type":"number","nullable":true},"medianAge":{"type":"number","nullable":true},"medianHouseholdIncomeUSD":{"type":"number","nullable":true},"perCapitaIncomeUSD":{"type":"number","nullable":true},"povertyRate":{"type":"number","nullable":true},"households":{"type":"number","nullable":true},"ownerOccupancyRate":{"type":"number","nullable":true},"medianHomeValueUSD":{"type":"number","nullable":true},"medianGrossRentUSD":{"type":"number","nullable":true},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","geoName","population","medianAge","medianHouseholdIncomeUSD","perCapitaIncomeUSD","povertyRate","households","ownerOccupancyRate","medianHomeValueUSD","medianGrossRentUSD","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"census.demographics","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"2-letter state code or 2-digit FIPS.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"county","in":"query","required":false,"description":"County name to filter by.","schema":{"type":"string","pattern":"^\\d{3}$"}},{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":2010,"maximum":2100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/census/zipcode":{"get":{"tags":["census"],"summary":"US Census ACS 5-year demographics for a ZIP code (ZCTA).","description":"US Census ACS 5-year demographics for a ZIP code (ZCTA). Returns population, median age, median household income, poverty rate, household composition, race + ethnicity breakdown, education attainment, workforce (with computed unemployment rate), and housing (with computed owner-occupancy rate and median rent/home value). Backed by ~33k ZCTAs pre-ingested from api.census.gov; refreshed annually. Public-domain US government data.","operationId":"census_zipcode","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [demographics] (one ZCTA: population, age, income, poverty, households, race/ethnicity, education, workforce, housing — with computed rates); total = 1. 404 if the ZIP has no ZCTA coverage.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"census.zipcode","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"zip","in":"query","required":true,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/chem/compound":{"get":{"tags":["chem"],"summary":"Look up a chemical compound by CID, common/IUPAC name...","description":"Look up a chemical compound by CID, common/IUPAC name, SMILES, or InChIKey. Returns CID, preferred name, IUPAC name, molecular formula, molecular weight, exact mass, SMILES, connectivity SMILES, InChI, InChIKey, XLogP, formal charge, the 10 most-common synonyms, a PubChem permalink, and source attribution. Data is sourced from NIH PubChem (public domain). Provide exactly one of cid, name, smiles, or inchikey.","operationId":"chem_compound","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [compound] (CID, names, formula, weights, SMILES/InChI, XLogP, synonyms, PubChem URL); total = 1; meta.query echoes the resolved namespace + value.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"namespace":{"type":"string"},"value":{"type":"string"}},"required":["namespace","value"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"chem.compound","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"cid","in":"query","required":false,"description":"PubChem Compound ID (CID), e.g. 2244 for aspirin.","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0,"maximum":2500000000}},{"name":"name","in":"query","required":false,"description":"Common, trade, or IUPAC name, e.g. \"aspirin\" or \"ibuprofen\".","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"smiles","in":"query","required":false,"description":"SMILES structural notation, e.g. \"CC(=O)Oc1ccccc1C(=O)O\".","schema":{"type":"string","minLength":1,"maxLength":500}},{"name":"inchikey","in":"query","required":false,"description":"InChIKey (27-char hashed identifier), e.g. \"BSYNRYMUTXBXSQ-UHFFFAOYSA-N\".","schema":{"type":"string","pattern":"^[A-Z]{14}-[A-Z]{10}-[A-Z]$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/chinese/convert":{"get":{"tags":["chinese"],"summary":"Convert Chinese text between Simplified and Traditional...","description":"Convert Chinese text between Simplified and Traditional scripts (and regional variants). from/to take: cn (Mainland Simplified), tw (Taiwan Traditional), twp (Taiwan w/ idioms), hk (Hong Kong Traditional), t (generic Traditional), jp (Japanese Shinjitai). E.g. from=cn to=tw. Deterministic, keyless (OpenCC mappings).","operationId":"chinese_convert","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [conversion result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"converted":{"type":"string"}},"required":["text","from","to","converted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"chinese.convert","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"text","in":"query","required":true,"description":"Text.","schema":{"type":"string","minLength":1,"maxLength":5000}},{"name":"from","in":"query","required":true,"description":"Source variant: cn | tw | twp | hk | t | jp.","schema":{"type":"string","enum":["cn","tw","twp","hk","t","jp"]}},{"name":"to","in":"query","required":true,"description":"Target variant: cn | tw | twp | hk | t | jp.","schema":{"type":"string","enum":["cn","tw","twp","hk","t","jp"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/chinese/detect":{"get":{"tags":["chinese"],"summary":"Detect Chinese in text: whether it contains Han characters...","description":"Detect Chinese in text: whether it contains Han characters, how many, total length, and a script classification — simplified, traditional, mixed, or han-common (characters identical in both scripts). Deterministic, keyless. Route text to the right pipeline or pick a conversion direction before calling chinese.convert.","operationId":"chinese_detect","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [detection result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"hasChinese":{"type":"boolean"},"hanCount":{"type":"number"},"totalChars":{"type":"number"},"script":{"type":"string","enum":["simplified","traditional","mixed","han-common","none"]}},"required":["text","hasChinese","hanCount","totalChars","script"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"chinese.detect","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"text","in":"query","required":true,"description":"Text.","schema":{"type":"string","minLength":1,"maxLength":5000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/chinese/pinyin":{"get":{"tags":["chinese"],"summary":"Convert Chinese (Hanzi) text to pinyin romanization.","description":"Convert Chinese (Hanzi) text to pinyin romanization. Choose tone marks (symbol, e.g. hàn yǔ), numbered tones (han4 yu3), or no tones. Auto-segments words and returns the full pinyin string plus a per-syllable array. Deterministic, keyless — useful for transliteration, pronunciation, search indexing, and TTS prep.","operationId":"chinese_pinyin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [pinyin result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"toneType":{"type":"string"},"pinyin":{"type":"string"},"segments":{"type":"array","items":{"type":"string"}},"syllables":{"type":"array","items":{"type":"string"}}},"required":["text","toneType","pinyin","syllables"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"chinese.pinyin","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"text","in":"query","required":true,"description":"Text.","schema":{"type":"string","minLength":1,"maxLength":2000}},{"name":"tone","in":"query","required":false,"description":"Tone.","schema":{"type":"string","enum":["symbol","num","none"]}},{"name":"segmented","in":"query","required":false,"description":"Include the per-word segment array.","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/class/industry-resolve":{"get":{"tags":["class"],"summary":"Cross-walk an industry classification code across the four...","description":"Cross-walk an industry classification code across the four major systems: NAICS <-> SIC <-> ISIC Rev.4 <-> NACE Rev.2. Pass the system + code and get the equivalent code(s) in every other system, with official titles where available, plus the vintage of each table used. The deterministic join that lets a KYC, procurement, ERP, or cross-border-reporting agent translate \"what industry is this\" between the US (NAICS/SIC), international (ISIC), and EU (NACE) standards. Backed by bundled public-domain Census concordances (NAICS<->SIC: 1997 NAICS <-> 1987 SIC; NAICS<->ISIC: 2012 NAICS <-> ISIC Rev.4) and the UNSD ISIC Rev.4 <-> NACE Rev.2 correspondence. Multi-hop links (e.g. SIC->NACE via NAICS->ISIC) are derived and explicitly flagged in notes. SIC is a retired US system; there is no newer NAICS<->SIC table.","operationId":"class_industry-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one code crosswalked across NAICS/SIC/ISIC/NACE with vintages + derivation notes]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"resolvedFrom":{"type":"string","enum":["naics","sic","isic","nace"]},"input":{"type":"string"},"naics":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string","nullable":true}},"required":["code","title"],"additionalProperties":false}},"sic":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string","nullable":true}},"required":["code","title"],"additionalProperties":false}},"isic":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string","nullable":true}},"required":["code","title"],"additionalProperties":false}},"nace":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false}},"vintages":{"type":"object","properties":{"naics":{"type":"string"},"sic":{"type":"string"},"isic":{"type":"string"},"nace":{"type":"string"}},"required":["naics","sic","isic","nace"],"additionalProperties":false},"notes":{"type":"array","items":{"type":"string"}}},"required":["resolvedFrom","input","naics","sic","isic","nace","vintages","notes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"class.industry-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"system","in":"query","required":true,"description":"Which system the input code is in.","schema":{"type":"string","enum":["naics","sic","isic","nace"]}},{"name":"code","in":"query","required":true,"description":"The classification code in that system, e.g. 511210 (NAICS), 7372 (SIC), 5820 (ISIC), 58.21 (NACE).","schema":{"type":"string","minLength":1,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/climate/station-history":{"get":{"tags":["climate"],"summary":"Historical daily weather observations from NOAA GHCN-Daily...","description":"Historical daily weather observations from NOAA GHCN-Daily for one station and date range (up to 366 days per call): max/min/avg temperature (°C), precipitation (mm), snowfall and snow depth (mm), wind (m/s). Coverage reaches back to the 1800s for long-running stations — actual measured values for \"what was the weather on this date\", not model recall. Pass a GHCN station id (e.g. USW00094728 = NYC Central Park); find the nearest station for any coordinate with /api/climate/station-near first. dataTypes selects elements (default TMAX,TMIN,PRCP). NOAA public-domain data.","operationId":"climate_station-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = daily observations for one GHCN station (date + element→value map); total = days with at least one reported value; meta carries station id/name, range, and requested element codes.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"values":{"type":"object","additionalProperties":{"type":"number","nullable":true},"description":"Element code → metric value (°C / mm / m/s); null when not reported that day."}},"required":["date","values"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"station":{"type":"string"},"stationName":{"type":"string","nullable":true},"startDate":{"type":"string"},"endDate":{"type":"string"},"dataTypes":{"type":"array","items":{"type":"string"}}},"required":["station","stationName","startDate","endDate","dataTypes"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"climate.station-history","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"station","in":"query","required":true,"description":"GHCN-Daily station id (11 chars). Find one with /api/climate/station-near.","schema":{"type":"string","pattern":"^[A-Z0-9]{11}$"}},{"name":"startDate","in":"query","required":true,"description":"Start of the date range (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"endDate","in":"query","required":true,"description":"End of the date range (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dataTypes","in":"query","required":false,"description":"Comma-separated element codes (TMAX, TMIN, TAVG, PRCP, SNOW, SNWD, AWND, WSF2, WSF5, EVAP). Default TMAX,TMIN,PRCP.","schema":{"allOf":[{"anyOf":[{"not":{}},{"type":"string"}],"default":"TMAX,TMIN,PRCP"},{"type":"array","items":{"type":"string","enum":["TMAX","TMIN","TAVG","PRCP","SNOW","SNWD","AWND","WSF2","WSF5","EVAP"]},"minItems":1,"maxItems":10}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/climate/station-near":{"get":{"tags":["climate"],"summary":"Find NOAA GHCN-Daily weather stations near a coordinate.","description":"Find NOAA GHCN-Daily weather stations near a coordinate. Returns up to 100 stations within a configurable radius (default 500 km), sorted by distance. Each station includes id, name, lat/lon, elevation, country/state, and GSN/HCN/WMO flags. Backed by a ~132k-station registry refreshed monthly from ncei.noaa.gov.","operationId":"climate_station-near","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NOAA GHCN-Daily stations near the coordinate, sorted by distance; total = null (query-bounded set); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"location":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"elevationM":{"type":"number","nullable":true},"state":{"type":"string","nullable":true}},"required":["latitude","longitude","elevationM","state"],"additionalProperties":false},"distanceKm":{"type":"number","description":"Great-circle distance to (lat, lon), kilometers."},"flags":{"type":"object","properties":{"gsn":{},"hcn":{},"wmo":{}},"additionalProperties":false}},"required":["id","name","location","distanceKm","flags"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"radiusKm":{"type":"number"},"limit":{"type":"integer"}},"required":["latitude","longitude","radiusKm","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"climate.station-near","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius_km","in":"query","required":false,"description":"Search radius in kilometers.","schema":{"type":"number","minimum":1,"maximum":5000}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/clinical/study-detail":{"get":{"tags":["clinical"],"summary":"Full ClinicalTrials.gov study record by NCT id - the deep...","description":"Full ClinicalTrials.gov study record by NCT id — the deep detail beyond clinical.trial-search's summary. Returns the brief + detailed description, status, phases, conditions, study design (allocation, intervention model, primary purpose, masking), enrollment, interventions, primary and secondary outcome measures (with time frames), full eligibility criteria (inclusion/exclusion text, sex, age range, healthy-volunteers, standard age groups), lead sponsor and collaborators, all facility locations (name, city, state, country), whether results are posted, and key dates. Free, public-domain (NIH NLM). Use clinical.trial-search to find an NCT id, then this for the complete protocol.","operationId":"clinical_study-detail","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one full study record] (or [] if not found); total = 1 or 0.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"nctId":{"type":"string","nullable":true},"briefTitle":{"type":"string","nullable":true},"officialTitle":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"studyType":{"type":"string","nullable":true},"phases":{"type":"array","items":{"type":"string"}},"conditions":{"type":"array","items":{"type":"string"}},"briefSummary":{"type":"string","nullable":true},"detailedDescription":{"type":"string","nullable":true},"eligibility":{"type":"object","properties":{"criteria":{"type":"string","nullable":true},"sex":{"type":"string","nullable":true},"minimumAge":{"type":"string","nullable":true},"maximumAge":{"type":"string","nullable":true},"healthyVolunteers":{"type":"boolean","nullable":true},"stdAges":{"type":"array","items":{"type":"string"}}},"required":["criteria","sex","minimumAge","maximumAge","healthyVolunteers","stdAges"],"additionalProperties":false},"design":{"type":"object","properties":{"allocation":{"type":"string","nullable":true},"interventionModel":{"type":"string","nullable":true},"primaryPurpose":{"type":"string","nullable":true},"masking":{"type":"string","nullable":true}},"required":["allocation","interventionModel","primaryPurpose","masking"],"additionalProperties":false},"enrollmentCount":{"type":"number","nullable":true},"interventions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["type","name"],"additionalProperties":false}},"primaryOutcomes":{"type":"array","items":{"type":"object","properties":{"measure":{"type":"string","nullable":true},"timeFrame":{"type":"string","nullable":true}},"required":["measure","timeFrame"],"additionalProperties":false}},"secondaryOutcomes":{"type":"array","items":{"type":"object","properties":{"measure":{"type":"string","nullable":true},"timeFrame":{"type":"string","nullable":true}},"required":["measure","timeFrame"],"additionalProperties":false}},"leadSponsor":{"type":"string","nullable":true},"collaborators":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"object","properties":{"facility":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["facility","city","state","country"],"additionalProperties":false}},"hasResults":{"type":"boolean"},"startDate":{"type":"string","nullable":true},"completionDate":{"type":"string","nullable":true},"lastUpdatePostedDate":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["nctId","briefTitle","officialTitle","status","studyType","phases","conditions","briefSummary","detailedDescription","eligibility","design","enrollmentCount","interventions","primaryOutcomes","secondaryOutcomes","leadSponsor","collaborators","locations","hasResults","startDate","completionDate","lastUpdatePostedDate","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"clinical.study-detail","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"nctId","in":"query","required":true,"description":"Nct ID.","schema":{"type":"string","pattern":"^NCT\\d{8}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/clinical/trial-search":{"get":{"tags":["clinical"],"summary":"Search ClinicalTrials.gov - every registered US (and many...","description":"Search ClinicalTrials.gov — every registered US (and many international) clinical study (~500k trials). Free-text query matches title + condition + intervention; or direct lookup by NCT ID. Optional filters: recruitment status, lead sponsor, phase (PHASE1..PHASE4), country. Each record includes NCT ID, brief + official title, status, phases, study type, conditions list, interventions (with type + name), enrollment count + type, key dates (start / primary completion / completion / first posted / last update), lead sponsor + class (INDUSTRY/NIH/OTHER), hasResults flag, brief summary, and canonical clinicaltrials.gov URL. Public-domain NIH NLM data.","operationId":"clinical_trial-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ClinicalTrials.gov studies; total = null (upstream paginates by opaque token, no true count); meta.nextPageToken for the next page; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"nctId":{"type":"string"},"briefTitle":{"type":"string","nullable":true},"officialTitle":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"phases":{"type":"array","items":{"type":"string"}},"studyType":{"type":"string","nullable":true},"conditions":{"type":"array","items":{"type":"string"}},"interventions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["type","name"],"additionalProperties":false}},"enrollmentCount":{"type":"integer","nullable":true},"enrollmentType":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"primaryCompletionDate":{"type":"string","nullable":true},"completionDate":{"type":"string","nullable":true},"leadSponsor":{"type":"string","nullable":true},"leadSponsorClass":{"type":"string","nullable":true},"hasResults":{"type":"boolean"},"studyFirstPostedDate":{"type":"string","nullable":true},"lastUpdatePostedDate":{"type":"string","nullable":true},"briefSummary":{"type":"string","nullable":true},"url":{"type":"string","format":"uri"}},"required":["nctId","briefTitle","officialTitle","status","phases","studyType","conditions","interventions","enrollmentCount","enrollmentType","startDate","primaryCompletionDate","completionDate","leadSponsor","leadSponsorClass","hasResults","studyFirstPostedDate","lastUpdatePostedDate","briefSummary","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"query":{"type":"string","nullable":true},"nctId":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"sponsor":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"pageSize":{"type":"integer"}},"required":["query","nctId","status","sponsor","phase","country","pageSize"],"additionalProperties":false},"nextPageToken":{"type":"string","nullable":true}},"required":["query","nextPageToken"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"clinical.trial-search","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":300}},{"name":"nctId","in":"query","required":false,"description":"Nct ID.","schema":{"type":"string","pattern":"^NCT\\d{8}$"}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["RECRUITING","ACTIVE_NOT_RECRUITING","COMPLETED","TERMINATED","WITHDRAWN","NOT_YET_RECRUITING","SUSPENDED"]}},{"name":"sponsor","in":"query","required":false,"description":"Sponsor.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"phase","in":"query","required":false,"description":"Phase.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"pageSize","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"pageToken","in":"query","required":false,"description":"Page token.","schema":{"type":"string","minLength":1,"maxLength":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/code/repo-lookup":{"get":{"tags":["code"],"summary":"Look up a public GitHub repository by \"owner/name\" slug.","description":"Look up a public GitHub repository by \"owner/name\" slug. Returns full name, owner, description, homepage, default branch, primary language, topics, license (SPDX key + name), counts (stars / forks / watchers / open issues / subscribers / network), size, timestamps (created/updated/pushed), visibility, has-issues/projects/wiki/discussions flags. Unauthenticated GitHub access is rate-limited to 60 req/hour per server IP — returns 429 UPSTREAM_RATE_LIMIT when the bucket is empty.","operationId":"code_repo-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [GitHub repo metadata] for the requested slug; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"owner":{"type":"string"},"repo":{"type":"string"},"description":{"type":"string","nullable":true},"homepage":{"type":"string","nullable":true},"htmlUrl":{"type":"string","format":"uri"},"isFork":{"type":"boolean"},"isArchived":{"type":"boolean"},"isDisabled":{"type":"boolean"},"isPrivate":{"type":"boolean"},"isTemplate":{"type":"boolean"},"defaultBranch":{"type":"string"},"language":{"type":"string","nullable":true},"topics":{"type":"array","items":{"type":"string"}},"license":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"additionalProperties":false,"nullable":true},"starsCount":{"type":"integer"},"forksCount":{"type":"integer"},"watchersCount":{"type":"integer"},"openIssuesCount":{"type":"integer"},"subscribersCount":{"type":"integer","nullable":true},"networkCount":{"type":"integer","nullable":true},"size":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"pushedAt":{"type":"string"},"visibility":{"type":"string"},"hasIssues":{"type":"boolean"},"hasProjects":{"type":"boolean"},"hasWiki":{"type":"boolean"},"hasDiscussions":{"type":"boolean"}},"required":["fullName","owner","repo","description","homepage","htmlUrl","isFork","isArchived","isDisabled","isPrivate","isTemplate","defaultBranch","language","topics","license","starsCount","forksCount","watchersCount","openIssuesCount","subscribersCount","networkCount","size","createdAt","updatedAt","pushedAt","visibility","hasIssues","hasProjects","hasWiki","hasDiscussions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"code.repo-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","pattern":"^[A-Za-z0-9][\\w.-]*\\/[A-Za-z0-9._-]+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/convert/currency":{"get":{"tags":["convert"],"summary":"Convert an amount between currencies at a live or...","description":"Convert an amount between currencies at a live or historical exchange rate. Pass from + to (3-letter ISO 4217 codes) and optional amount (default 1) and date (YYYY-MM-DD for a historical rate; omit for the latest). Returns the converted result, the per-unit rate, and the effective rate date. Live data from the European Central Bank reference rates (via Frankfurter) — fetched per request, never stale; weekends/holidays use the last published business day. Coverage is the ECB major currencies. Distinct from fx.rates (the raw rate table) — this is the agent-friendly \"X from = ? to\" call.","operationId":"convert_currency","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"amount":{"type":"number"},"date":{"type":"string","nullable":true}},"required":["from","to","amount","date"],"additionalProperties":false},"rateDate":{"type":"string"},"rate":{"type":"number"},"result":{"type":"number"},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","rateDate","rate","result","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"convert.currency","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"from","in":"query","required":true,"description":"Start of the range.","schema":{"type":"string","minLength":3,"maxLength":3}},{"name":"to","in":"query","required":true,"description":"End of the range.","schema":{"type":"string","minLength":3,"maxLength":3}},{"name":"amount","in":"query","required":false,"description":"Amount.","schema":{"type":"number","exclusiveMinimum":true,"minimum":0}},{"name":"date","in":"query","required":false,"description":"Date in YYYY-MM-DD format.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/convert/unit":{"get":{"tags":["convert"],"summary":"Convert a value between units of measure: mass (g, kg, mg...","description":"Convert a value between units of measure: mass (g, kg, mg, lb, oz, t, st), length (m, km, cm, mm, in, ft, yd, mi), volume (l, ml, m3, gal, gal-imp, qt, pt, cup, floz, tbsp, tsp), area (m2, km2, ft2, acre, ha), and temperature (C, F, K). Units are matched case-insensitively with common aliases (kg/kilogram/kgs). Returns {value, from, to, dimension, result}. Exact factors — the ground-truth answer a CPG/ETL pipeline needs instead of an LLM approximating conversions. Cross-dimension conversions (kg→m) return 400.","operationId":"convert_unit","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [conversion result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"from":{"type":"string","nullable":true},"to":{"type":"string","nullable":true},"dimension":{"type":"string","nullable":true,"description":"mass | length | volume | area | temperature"},"result":{"type":"number","nullable":true},"reason":{"type":"string","nullable":true}},"required":["value","from","to","dimension","result","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"convert.unit","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"value","in":"query","required":true,"description":"Value.","schema":{"type":"number"}},{"name":"from","in":"query","required":true,"description":"Start of the range.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"to","in":"query","required":true,"description":"End of the range.","schema":{"type":"string","minLength":1,"maxLength":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/countdown/gif":{"get":{"tags":["countdown"],"summary":"Animated countdown GIF from the current UTC time to endDate.","description":"Animated countdown GIF from the current UTC time to endDate. Always uncached. Supports 5 templates (default, minimal, neon, retro, corporate) and full customization: colors, fonts, dimensions, padding, cell padding, labels, dividers. Animates for `seconds` frames at `fps`.","operationId":"countdown_gif","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"countdown.gif","x-2s-version":null,"x-2s-price":{"usd":0.006},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"endDate","in":"query","required":true,"description":"End of the date range (YYYY-MM-DD).","schema":{"type":"string","format":"date-time"}},{"name":"template","in":"query","required":false,"description":"Template.","schema":{"type":"string","enum":["default","minimal","neon","retro","corporate"]}},{"name":"seconds","in":"query","required":false,"description":"Seconds.","schema":{"type":"integer","minimum":1,"maximum":60}},{"name":"fps","in":"query","required":false,"description":"Fps.","schema":{"type":"integer","minimum":1,"maximum":10}},{"name":"width","in":"query","required":false,"description":"Width.","schema":{"type":"integer","minimum":200,"maximum":1600}},{"name":"height","in":"query","required":false,"description":"Height.","schema":{"type":"integer","minimum":80,"maximum":800}},{"name":"padding","in":"query","required":false,"description":"Padding.","schema":{"type":"integer","minimum":0,"maximum":200}},{"name":"cellPadding","in":"query","required":false,"description":"Cell padding.","schema":{"type":"integer","minimum":0,"maximum":200}},{"name":"digitFontSize","in":"query","required":false,"description":"Digit font size.","schema":{"type":"integer","minimum":20,"maximum":300}},{"name":"labelFontSize","in":"query","required":false,"description":"Label font size.","schema":{"type":"integer","minimum":6,"maximum":80}},{"name":"labelPaddingY","in":"query","required":false,"description":"Label padding y.","schema":{"type":"integer","minimum":0,"maximum":60}},{"name":"digitPaddingY","in":"query","required":false,"description":"Digit padding y.","schema":{"type":"integer","minimum":-60,"maximum":60}},{"name":"letterSpacing","in":"query","required":false,"description":"Letter spacing.","schema":{"type":"number","minimum":0,"maximum":20}},{"name":"bg","in":"query","required":false,"description":"Bg.","schema":{"type":"string","maxLength":40}},{"name":"fg","in":"query","required":false,"description":"Fg.","schema":{"type":"string","maxLength":40}},{"name":"labelColor","in":"query","required":false,"description":"Label color.","schema":{"type":"string","maxLength":40}},{"name":"dividerColor","in":"query","required":false,"description":"Divider color.","schema":{"type":"string","maxLength":40}},{"name":"digitFont","in":"query","required":false,"description":"Digit font.","schema":{"type":"string","enum":["mono","sans"]}},{"name":"labelFont","in":"query","required":false,"description":"Label font.","schema":{"type":"string","enum":["mono","sans"]}},{"name":"digitWeight","in":"query","required":false,"description":"Digit weight.","schema":{"type":"string","enum":["regular","bold"]}},{"name":"showLabels","in":"query","required":false,"description":"Show labels.","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false","0","1"]}]}},{"name":"showDays","in":"query","required":false,"description":"Show days.","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false","0","1"]}]}},{"name":"dividerChar","in":"query","required":false,"description":"Divider char.","schema":{"type":"string","minLength":1,"maxLength":3}},{"name":"expiredText","in":"query","required":false,"description":"Expired text.","schema":{"type":"string","minLength":1,"maxLength":30}},{"name":"labelDays","in":"query","required":false,"description":"Label days.","schema":{"type":"string","minLength":1,"maxLength":12}},{"name":"labelHours","in":"query","required":false,"description":"Label hours.","schema":{"type":"string","minLength":1,"maxLength":12}},{"name":"labelMinutes","in":"query","required":false,"description":"Label minutes.","schema":{"type":"string","minLength":1,"maxLength":12}},{"name":"labelSeconds","in":"query","required":false,"description":"Label seconds.","schema":{"type":"string","minLength":1,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/country/financials":{"get":{"tags":["country"],"summary":"Country-level financial and credit reference data...","description":"Country-level financial and credit reference data: sovereign credit rating, equity risk premium, country risk premium, default spread, currency (name + ISO code), region/sub-region, and ISO country codes. Returns all ~249 countries by default, or pass code (ISO alpha-2 or alpha-3) to get one. Use it for cross-border valuation (discount-rate inputs) and sovereign-risk context — distinct from country.lookup (general reference). Data by Finnhub.","operationId":"country_financials","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = country financial/credit reference rows.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","nullable":true},"code2":{"type":"string","nullable":true},"code3":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"currencyCode":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"subRegion":{"type":"string","nullable":true},"rating":{"type":"string","nullable":true,"description":"Moody’s-style sovereign credit rating."},"equityRiskPremium":{"type":"number","nullable":true},"countryRiskPremium":{"type":"number","nullable":true},"defaultSpread":{"type":"number","nullable":true}},"required":["country","code2","code3","currency","currencyCode","region","subRegion","rating","equityRiskPremium","countryRiskPremium","defaultSpread"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"code":{"type":"string","nullable":true}},"required":["code"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"country.financials","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"ISO alpha-2 or alpha-3 country code. Omit for all countries.","schema":{"type":"string","minLength":2,"maxLength":3,"pattern":"^[A-Za-z]{2,3}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/country/lookup":{"get":{"tags":["country"],"summary":"Look up country metadata via REST Countries.","description":"Look up country metadata via REST Countries. Pass alpha2 (2-letter ISO 3166-1), alpha3 (3-letter), or name (with optional fullText=true for exact match). Returns common + official name, ISO codes, region + subregion, independence + UN-member flags, capital(s), population, area km², landlocked flag, neighboring borders (alpha-3), timezones, currencies (code → name + symbol), languages, calling code, flag emoji + SVG/PNG URLs, lat/lng coordinates, Google Maps + OSM URLs, driving side, top-level domains.","operationId":"country_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched country records (usually one for code lookups, several for name fuzzy match); total = number matched; meta.query echoes the lookup.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"object","properties":{"common":{"type":"string"},"official":{"type":"string"}},"required":["common","official"],"additionalProperties":false},"alpha2":{"type":"string"},"alpha3":{"type":"string"},"numericCode":{"type":"string","nullable":true},"cioc":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"subregion":{"type":"string","nullable":true},"independent":{"type":"boolean","nullable":true},"unMember":{"type":"boolean","nullable":true},"capital":{"type":"array","items":{"type":"string"}},"population":{"type":"integer","nullable":true},"areaKm2":{"type":"number","nullable":true},"landlocked":{"type":"boolean","nullable":true},"borders":{"type":"array","items":{"type":"string"}},"timezones":{"type":"array","items":{"type":"string"}},"currencies":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"symbol":{"type":"string","nullable":true}},"required":["name","symbol"],"additionalProperties":false}},"languages":{"type":"object","additionalProperties":{"type":"string"}},"callingCode":{"type":"string","nullable":true},"flag":{"type":"string","nullable":true},"flagSvg":{"type":"string","nullable":true},"flagPng":{"type":"string","nullable":true},"coordinates":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false,"nullable":true},"googleMapsUrl":{"type":"string","nullable":true},"openStreetMapsUrl":{"type":"string","nullable":true},"drivingSide":{"type":"string","nullable":true},"tld":{"type":"array","items":{"type":"string"}}},"required":["name","alpha2","alpha3","numericCode","cioc","region","subregion","independent","unMember","capital","population","areaKm2","landlocked","borders","timezones","currencies","languages","callingCode","flag","flagSvg","flagPng","coordinates","googleMapsUrl","openStreetMapsUrl","drivingSide","tld"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"alpha2":{"type":"string","nullable":true},"alpha3":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"fullText":{"type":"boolean"}},"required":["alpha2","alpha3","name","fullText"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"country.lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"alpha2","in":"query","required":false,"description":"Alpha2.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"alpha3","in":"query","required":false,"description":"Alpha3.","schema":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-Za-z]{3}$"}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"fullText","in":"query","required":false,"description":"Full text.","schema":{"type":"boolean","default":false}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-history":{"get":{"tags":["crypto"],"summary":"Transaction history for an Ethereum address (via Etherscan V2).","description":"Transaction history for an Ethereum address (via Etherscan V2). Returns normal transactions newest-first: hash, block, timestamp, from/to, value (wei + ETH), gas used, gas price, decoded method id + function name, error flag, and any contract created. Paginate with page + offset; bound with startBlock/endBlock. Defaults to Ethereum mainnet; other EVM chains are reachable by chainId where upstream coverage allows. Net-new vs crypto.tx (single-hash receipt).","operationId":"crypto_address-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = transactions.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"hash":{"nullable":true},"blockNumber":{"type":"number","nullable":true},"timestamp":{"type":"string","nullable":true},"from":{"nullable":true},"to":{"nullable":true},"valueWei":{"type":"string","nullable":true},"valueEth":{"type":"number","nullable":true},"gasUsed":{"type":"number","nullable":true},"gasPriceWei":{"type":"string","nullable":true},"methodId":{"nullable":true},"functionName":{"nullable":true},"isError":{"type":"boolean"},"contractAddress":{"type":"string","nullable":true}},"required":["blockNumber","timestamp","valueWei","valueEth","gasUsed","gasPriceWei","isError","contractAddress"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-history","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":false,"description":"EVM chain id; defaults to 1 (Ethereum). Other chains (8453 Base, 137 Polygon, 42161 Arbitrum…) require upstream multichain coverage.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["asc","desc"]}},{"name":"startBlock","in":"query","required":false,"description":"Start block.","schema":{"type":"integer","minimum":0}},{"name":"endBlock","in":"query","required":false,"description":"End block.","schema":{"type":"integer","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-safety":{"get":{"tags":["crypto"],"summary":"Malicious-wallet screen (via GoPlus, free/keyless).","description":"Malicious-wallet screen (via GoPlus, free/keyless). For any EVM address returns risk flags — cybercrime, money laundering, financial crime, darkweb, phishing, stealing/blackmail, fake KYC, mixer, sanctioned, honeypot-related, blacklist doubt and more — plus an overall malicious verdict and hit count. Counterparty risk check before interacting with an address.","operationId":"crypto_address-safety","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [address safety report].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"string"},"address":{"type":"string"},"malicious":{"type":"boolean"},"hitCount":{"type":"number"},"numberOfMaliciousContractsCreated":{"type":"number","nullable":true},"dataSource":{"nullable":true},"flags":{"type":"object","additionalProperties":{"type":"boolean","nullable":true}}},"required":["chainId","address","malicious","hitCount","numberOfMaliciousContractsCreated","flags"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-safety","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":true,"description":"EVM chain id, e.g. 1, 56, 137, 8453.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-screen":{"get":{"tags":["crypto"],"summary":"Sanctions-screen a crypto wallet address against the US...","description":"Sanctions-screen a crypto wallet address against the US Treasury OFAC SDN list's published Digital Currency Addresses (BTC/ETH/USDT/XMR and more). Exact match — returns whether the address is sanctioned, and for any hit the listed entity name, OFAC programs, source id, and the currency the address was listed under. Compliance check before transacting. Distinct from crypto.address-safety (GoPlus behavioral risk) — this is regulatory sanctions.","operationId":"crypto_address-screen","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [screen result]; sanctioned=true means the address is OFAC-listed.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"sanctioned":{"type":"boolean"},"matchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sourceList":{"type":"string"},"sourceId":{"type":"string","nullable":true},"entityType":{"type":"string","nullable":true},"programs":{"type":"array","items":{"type":"string"}},"currencies":{"type":"array","items":{"type":"string"}}},"required":["name","sourceList","sourceId","entityType","programs","currencies"],"additionalProperties":false}}},"required":["address","sanctioned","matchCount","matches"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-screen","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address (any chain). Case-insensitive.","schema":{"type":"string","minLength":8,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-validate":{"get":{"tags":["crypto"],"summary":"Validate a cryptocurrency address with full checksum...","description":"Validate a cryptocurrency address with full checksum verification (not just regex). Returns {chain, address, valid, canonical, format, reason}. Chains: btc (P2PKH, P2SH, Bech32 SegWit v0, Taproot Bech32m), eth (full EIP-55 checksum; non-checksummed flagged), sol (Ed25519 32-byte Base58), ltc (Base58Check L.../M.../3... + ltc1 Bech32), trx (T-prefix Base58Check 0x41), xrp (r-prefix custom Base58), bch (legacy Base58Check + bitcoincash:q... CashAddr). Catches typos via cryptographic checksum; canonical field returns the checksummed/lowercased form.","operationId":"crypto_address-validate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result] (chain, address, valid, canonical, format, reason); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-validate","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"Chain.","schema":{"type":"string","enum":["btc","eth","sol","ltc","trx","xrp","bch"]}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","minLength":1,"maxLength":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/balances":{"get":{"tags":["crypto"],"summary":"Live native + ERC-20 token balances for an EVM address...","description":"Live native + ERC-20 token balances for an EVM address (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Returns the native-coin balance and, for any ERC-20 contract addresses you pass, the symbol, decimals, raw and human-formatted balance — fetched in one multicall. For wallet dashboards, treasury checks, and agent payment/settlement flows.","operationId":"crypto_balances","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one balances object].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"address":{"type":"string"},"native":{"type":"object","properties":{"symbol":{"type":"string"},"raw":{"type":"string"},"balance":{"type":"string"}},"required":["symbol","raw","balance"],"additionalProperties":false},"tokens":{"type":"array","items":{"type":"object","properties":{"contract":{"type":"string"},"symbol":{"nullable":true},"decimals":{"type":"number"},"raw":{"type":"string","nullable":true},"balance":{"type":"string","nullable":true}},"required":["contract","decimals","raw","balance"],"additionalProperties":false}}},"required":["chain","address","native","tokens"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.balances","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"EVM address to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"chain","in":"query","required":false,"description":"Default base.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"name":"tokens","in":"query","required":false,"description":"Comma-separated ERC-20 contract addresses (max 20).","schema":{"type":"string","maxLength":900}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-address":{"get":{"tags":["crypto"],"summary":"Bitcoin address summary (free/keyless): confirmed balance...","description":"Bitcoin address summary (free/keyless): confirmed balance (sats + BTC), total received/sent, transaction count, funded/spent output counts, and pending mempool balance + tx count. Works for any BTC address (legacy, SegWit, Taproot). Net-new — our on-chain reads were EVM-only.","operationId":"crypto_btc-address","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [address summary].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"balanceSats":{"type":"number"},"balanceBtc":{"type":"number"},"totalReceivedBtc":{"type":"number"},"totalSentBtc":{"type":"number"},"txCount":{"type":"number","nullable":true},"fundedTxoCount":{"type":"number","nullable":true},"spentTxoCount":{"type":"number","nullable":true},"mempoolBalanceSats":{"type":"number"},"mempoolTxCount":{"type":"number","nullable":true}},"required":["address","balanceSats","balanceBtc","totalReceivedBtc","totalSentBtc","txCount","fundedTxoCount","spentTxoCount","mempoolBalanceSats","mempoolTxCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-address","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Bitcoin address (1.../3.../bc1...).","schema":{"type":"string","minLength":20,"maxLength":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-fees":{"get":{"tags":["crypto"],"summary":"Current Bitcoin network fee rates and mempool backlog from...","description":"Current Bitcoin network fee rates and mempool backlog from mempool.space. Returns recommended fee rates in satoshis per virtual byte for target confirmation speeds (fastest ~next block, half-hour, hour, economy, minimum) plus the current mempool size (transaction count, total vsize, total fees waiting). Keyless, live. The BTC counterpart to crypto.gas-oracle (Ethereum) — fresh, fast-moving network state an agent cannot recall, for wallets, payment timing, and fee estimation.","operationId":"crypto_btc-fees","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one fee/mempool snapshot]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recommendedFeesSatPerVByte":{"type":"object","properties":{"fastest":{"type":"number","nullable":true},"halfHour":{"type":"number","nullable":true},"hour":{"type":"number","nullable":true},"economy":{"type":"number","nullable":true},"minimum":{"type":"number","nullable":true}},"required":["fastest","halfHour","hour","economy","minimum"],"additionalProperties":false},"mempool":{"type":"object","properties":{"txCount":{"type":"number","nullable":true},"vsizeBytes":{"type":"number","nullable":true},"totalFeeSat":{"type":"number","nullable":true}},"required":["txCount","vsizeBytes","totalFeeSat"],"additionalProperties":false},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["recommendedFeesSatPerVByte","mempool","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-fees","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-mempool":{"get":{"tags":["crypto"],"summary":"Bitcoin mempool state (free/keyless): current unconfirmed...","description":"Bitcoin mempool state (free/keyless): current unconfirmed tx count, total vsize, and total fees, plus the most recent transactions (whale radar) — filter with minBtc to surface only large pending transfers. For congestion monitoring and large-transfer alerts.","operationId":"crypto_btc-mempool","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ summary, recent }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"summary":{"type":"object","properties":{"txCount":{"type":"number","nullable":true},"vsize":{"type":"number","nullable":true},"totalFeeSats":{"type":"number"}},"required":["txCount","vsize","totalFeeSats"],"additionalProperties":false},"recent":{"type":"array","items":{"type":"object","properties":{"txid":{"nullable":true},"valueBtc":{"type":"number"},"valueSats":{"type":"number"},"feeSats":{"type":"number"},"vsize":{"type":"number","nullable":true}},"required":["valueBtc","valueSats","feeSats","vsize"],"additionalProperties":false}}},"required":["summary","recent"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-mempool","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"minBtc","in":"query","required":false,"description":"Only include recent txs >= this BTC value.","schema":{"type":"number","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-tx":{"get":{"tags":["crypto"],"summary":"Bitcoin transaction lookup by txid (free/keyless)...","description":"Bitcoin transaction lookup by txid (free/keyless): confirmed status + confirmation count (vs current tip), block height + time, fee (sats + BTC), total output value, size/weight, and input/output counts. Distinct from crypto.tx (EVM) — this is Bitcoin.","operationId":"crypto_btc-tx","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [transaction].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"txid":{"nullable":true},"confirmed":{"type":"boolean"},"confirmations":{"type":"number"},"blockHeight":{"type":"number","nullable":true},"blockTime":{"type":"string","nullable":true},"feeSats":{"type":"number"},"feeBtc":{"type":"number"},"valueOutSats":{"type":"number"},"valueOutBtc":{"type":"number"},"sizeBytes":{"type":"number","nullable":true},"weight":{"type":"number","nullable":true},"vinCount":{"type":"number","nullable":true},"voutCount":{"type":"number","nullable":true}},"required":["confirmed","confirmations","blockHeight","blockTime","feeSats","feeBtc","valueOutSats","valueOutBtc","sizeBytes","weight","vinCount","voutCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-tx","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"txid","in":"query","required":true,"description":"Txid.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-utxos":{"get":{"tags":["crypto"],"summary":"Unspent transaction outputs (UTXOs) for a Bitcoin address...","description":"Unspent transaction outputs (UTXOs) for a Bitcoin address (free/keyless): each with txid, output index, value (sats + BTC), confirmation status, and block height. Sorted largest-first. For coin selection, balance verification, and wallet tooling.","operationId":"crypto_btc-utxos","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = UTXOs (largest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"txid":{"nullable":true},"vout":{"type":"number","nullable":true},"valueSats":{"type":"number"},"valueBtc":{"type":"number"},"confirmed":{"type":"boolean","nullable":true},"blockHeight":{"type":"number","nullable":true}},"required":["vout","valueSats","valueBtc","confirmed","blockHeight"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-utxos","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","minLength":20,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/cex-klines":{"get":{"tags":["crypto"],"summary":"Centralized-exchange OHLCV candlesticks for a spot trading...","description":"Centralized-exchange OHLCV candlesticks for a spot trading pair (e.g. BTC-USD, ETH-USD, SOL-USD), free/keyless. Pass interval (1m/5m/15m/1h/6h/1d) and limit. Each bar: time, open, high, low, close, volume. Net-new vs crypto.dex-ohlcv (on-chain DEX) — this is CEX spot.","operationId":"crypto_cex-klines","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = OHLCV bars (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","nullable":true},"open":{"type":"number","nullable":true},"high":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"close":{"type":"number","nullable":true},"volume":{"type":"number","nullable":true}},"required":["time","open","high","low","close","volume"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.cex-klines","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"pair","in":"query","required":true,"description":"Trading pair, e.g. BTC-USD.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{2,10}-[A-Za-z0-9]{2,10}$"}},{"name":"interval","in":"query","required":false,"description":"Interval.","schema":{"type":"string","enum":["1m","5m","15m","1h","6h","1d"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":300}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/cex-ticker":{"get":{"tags":["crypto"],"summary":"Centralized-exchange 24h ticker for a spot pair (e.g.","description":"Centralized-exchange 24h ticker for a spot pair (e.g. BTC-USD), free/keyless: current price, best bid/ask, 24h open/high/low, 24h + 30d volume, and 24h percent change. Real CEX spot quote — distinct from crypto.token-price (CoinGecko aggregate).","operationId":"crypto_cex-ticker","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [ticker].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"pair":{"type":"string"},"price":{"type":"number","nullable":true},"bid":{"type":"number","nullable":true},"ask":{"type":"number","nullable":true},"open24h":{"type":"number","nullable":true},"high24h":{"type":"number","nullable":true},"low24h":{"type":"number","nullable":true},"volume24h":{"type":"number","nullable":true},"volume30d":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true},"time":{"nullable":true}},"required":["pair","price","bid","ask","open24h","high24h","low24h","volume24h","volume30d","change24hPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.cex-ticker","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"pair","in":"query","required":true,"description":"Pair.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{2,10}-[A-Za-z0-9]{2,10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/chain-tvl-history":{"get":{"tags":["crypto"],"summary":"Historical total DeFi TVL time series for a blockchain (e.g.","description":"Historical total DeFi TVL time series for a blockchain (e.g. Ethereum, Solana, Arbitrum), via DefiLlama (free/keyless). Returns daily { date, tvlUsd } points (most recent N, default 90). For charting a chain's DeFi capital over time. Pair with crypto.defi-chains for the current cross-chain leaderboard.","operationId":"crypto_chain-tvl-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ chain, series }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"number","nullable":true},"tvlUsd":{"type":"number","nullable":true}},"required":["date","tvlUsd"],"additionalProperties":false}}},"required":["chain","series"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.chain-tvl-history","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"Chain name, e.g. Ethereum, Solana, Arbitrum, Base.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Most-recent N daily points (default 90).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/coin":{"get":{"tags":["crypto"],"summary":"Full coin profile by CoinGecko id (e.g.","description":"Full coin profile by CoinGecko id (e.g. bitcoin, ethereum, solana). Returns price, market cap + rank, FDV, 24h volume, all-time high/low with dates, circulating/total/max supply, price changes (1h/24h/7d/30d/1y), categories, and official links (homepage, X, GitHub, subreddit). Richer than crypto.token-price (spot only) and crypto.markets (list row).","operationId":"crypto_coin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [coin profile].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"symbol":{"type":"string"},"name":{"type":"string","nullable":true},"marketCapRank":{"type":"number","nullable":true},"categories":{"type":"array","items":{"type":"string"}},"priceUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"athUsd":{"type":"number","nullable":true},"athDate":{"nullable":true},"atlUsd":{"type":"number","nullable":true},"atlDate":{"nullable":true},"circulatingSupply":{"type":"number","nullable":true},"totalSupply":{"type":"number","nullable":true},"maxSupply":{"type":"number","nullable":true},"change1hPct":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true},"change7dPct":{"type":"number","nullable":true},"change30dPct":{"type":"number","nullable":true},"change1yPct":{"type":"number","nullable":true},"homepage":{"type":"string","nullable":true},"twitter":{"type":"string","nullable":true},"github":{"type":"string","nullable":true},"subreddit":{"type":"string","nullable":true}},"required":["id","symbol","name","marketCapRank","categories","priceUsd","marketCapUsd","fdvUsd","volume24hUsd","athUsd","atlUsd","circulatingSupply","totalSupply","maxSupply","change1hPct","change24hPct","change7dPct","change30dPct","change1yPct","homepage","twitter","github","subreddit"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.coin","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":true,"description":"CoinGecko coin id, e.g. bitcoin, ethereum, solana.","schema":{"type":"string","minLength":1,"maxLength":80}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/coin-history":{"get":{"tags":["crypto"],"summary":"Historical market chart for a coin by CoinGecko id...","description":"Historical market chart for a coin by CoinGecko id: time-series of price, market cap, and volume over the last N days (1-365) in USD or another vs-currency. Granularity is auto-selected by range (hourly for short windows, daily for long). For backtests, charts, and trend analysis.","operationId":"crypto_coin-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ prices, marketCaps, volumes }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"prices":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"value":{"type":"number","nullable":true}},"required":["time","value"],"additionalProperties":false}},"marketCaps":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"value":{"type":"number","nullable":true}},"required":["time","value"],"additionalProperties":false}},"volumes":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"value":{"type":"number","nullable":true}},"required":["time","value"],"additionalProperties":false}}},"required":["prices","marketCaps","volumes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.coin-history","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":true,"description":"CoinGecko coin id, e.g. bitcoin.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"days","in":"query","required":false,"description":"Lookback in days (default 7).","schema":{"type":"integer","minimum":1,"maximum":365}},{"name":"vs","in":"query","required":false,"description":"vs-currency (default usd).","schema":{"type":"string","maxLength":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/contract":{"get":{"tags":["crypto"],"summary":"Decode an EVM smart contract.","description":"Decode an EVM smart contract. Pass chain (ethereum, base, polygon, arbitrum, optimism, bsc, avalanche) + address; returns whether the contract is source-verified (Sourcify), its name/compiler/language, whether it is a proxy and its implementation address, and human-readable function and event signatures from the ABI. Optionally pass selector (a 0x 4-byte function selector) to decode what it calls — resolved from the contract's own ABI when verified, otherwise from the public 4byte directory. Pairs with crypto.tx (which gives a `to` address + calldata): turn an opaque contract + selector into \"what is this and what does it do.\" Free, keyless.","operationId":"crypto_contract","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items[0] = the contract (verification, ABI signatures, proxy, optional decoded selector).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"address":{"type":"string"},"verified":{"type":"boolean","description":"Source-verified on Sourcify."},"name":{"type":"string","nullable":true},"compiler":{"type":"string","nullable":true},"language":{"type":"string","nullable":true},"isProxy":{"type":"boolean"},"implementation":{"type":"string","nullable":true,"description":"Implementation address if a proxy."},"functionCount":{"type":"integer"},"functions":{"type":"array","items":{"type":"string"},"description":"Function signatures from the ABI."},"events":{"type":"array","items":{"type":"string"},"description":"Event signatures from the ABI."},"decoded":{"type":"object","properties":{"selector":{"type":"string"},"signature":{"type":"string","nullable":true},"source":{"type":"string"}},"required":["selector","signature","source"],"additionalProperties":false,"description":"Decoded selector (when selector passed)."}},"required":["chain","address","verified","name","compiler","language","isProxy","implementation","functionCount","functions","events"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"verified":{"type":"boolean"}},"required":["verified"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.contract","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"EVM chain: ethereum, base, polygon, arbitrum, optimism, bsc, or avalanche.","schema":{"type":"string","enum":["ethereum","base","polygon","arbitrum","optimism","bsc","avalanche"]}},{"name":"address","in":"query","required":true,"description":"0x-prefixed 40-hex contract address.","schema":{"type":"string"}},{"name":"selector","in":"query","required":false,"description":"Optional 0x 4-byte function selector to decode (e.g. 0xa9059cbb).","schema":{"type":"string"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/decode-calldata":{"post":{"tags":["crypto"],"summary":"Decode raw EVM transaction calldata.","description":"Decode raw EVM transaction calldata. POST { data } (0x-prefixed hex). Resolves the 4-byte function selector to its human signature(s) via the openchain.xyz database, then ABI-decodes the parameters (address, uint/int, bool, bytesN, string, bytes, and elementary dynamic arrays). Returns selector, candidate signatures, decoded params, and the raw 32-byte words. For agents inspecting/verifying a transaction before signing. Keyless.","operationId":"crypto_decode-calldata","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [decoded calldata].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string"},"signatures":{"type":"array","items":{"type":"string"}},"decoded":{"type":"object","properties":{"signature":{"type":"string"},"params":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{}},"required":["type"],"additionalProperties":false}}},"required":["signature","params"],"additionalProperties":false,"nullable":true},"rawWords":{"type":"array","items":{"type":"string"}},"note":{"type":"string","nullable":true}},"required":["selector","signatures","decoded","rawWords","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.decode-calldata","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","pattern":"^0x?[0-9a-fA-F]{8,}$","maxLength":60000,"description":"Data."}},"required":["data"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi":{"get":{"tags":["crypto"],"summary":"DeFi total-value-locked (TVL) metrics via DefiLlama.","description":"DeFi total-value-locked (TVL) metrics via DefiLlama. With no params, returns the top protocols by TVL (name, slug, category, TVL, 1-day and 7-day % change, chains) plus total DeFi TVL across all chains. Pass protocol=<slug> (e.g. lido, aave, uniswap) for a single protocol's TVL, category, momentum, and chains; or chain=<name> (e.g. ethereum, solana, arbitrum) for that chain's TVL. Distinct from crypto.markets/token-price (spot prices) — this is protocol- and chain-level capital locked in DeFi, which an agent can't know from training. Free, keyless.","operationId":"crypto_defi","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = protocol(s) or a chain; meta.mode = protocol|chain|top, meta.totalTvl = total DeFi TVL.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true,"description":"DefiLlama protocol slug."},"category":{"type":"string","nullable":true,"description":"Protocol category (e.g. Liquid Staking, Lending)."},"tvl":{"type":"number","nullable":true,"description":"Total value locked, USD."},"change1d":{"type":"number","nullable":true,"description":"1-day TVL change, %."},"change7d":{"type":"number","nullable":true,"description":"7-day TVL change, %."},"chains":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Chains the protocol is deployed on."},"tokenSymbol":{"type":"string","nullable":true,"description":"Native token symbol (chain mode)."}},"required":["name","slug","category","tvl","change1d","change7d","chains","tokenSymbol"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string"},"totalTvl":{"type":"number","nullable":true}},"required":["mode","totalTvl"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"protocol","in":"query","required":false,"description":"Protocol slug (e.g. lido, aave, uniswap). Omit for the top-protocols list.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"chain","in":"query","required":false,"description":"Chain name (e.g. ethereum, solana, arbitrum) for that chain's TVL.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Number of protocols in the top list (1–100, default 20).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-chains":{"get":{"tags":["crypto"],"summary":"DeFi TVL leaderboard across all chains (via DefiLlama...","description":"DeFi TVL leaderboard across all chains (via DefiLlama, free/keyless): every chain ranked by total value locked, with its native token symbol and chain id. Distinct from crypto.defi (which returns one chain's TVL by name) — this is the full ranked cross-chain comparison.","operationId":"crypto_defi-chains","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = chains by TVL desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"tvlUsd":{"type":"number","nullable":true},"tokenSymbol":{"nullable":true},"chainId":{"nullable":true}},"required":["tvlUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-chains","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-fees":{"get":{"tags":["crypto"],"summary":"Protocol fees/revenue or DEX trading volume leaderboards...","description":"Protocol fees/revenue or DEX trading volume leaderboards (via DefiLlama, free/keyless). kind=fees ranks protocols by fees generated; kind=dexs ranks DEXes by trading volume. Each row has 24h/7d/30d/1y totals + 1-month change, plus catalog totals. Sort by total24h/7d/30d. The protocol-economics layer.","operationId":"crypto_defi-fees","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = protocols ranked; meta = catalog totals.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"category":{"nullable":true},"total24h":{"type":"number","nullable":true},"total7d":{"type":"number","nullable":true},"total30d":{"type":"number","nullable":true},"total1y":{"type":"number","nullable":true},"change1m":{"type":"number","nullable":true}},"required":["total24h","total7d","total30d","total1y","change1m"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total24h":{"type":"number","nullable":true},"total7d":{"type":"number","nullable":true},"total30d":{"type":"number","nullable":true}},"required":["total24h","total7d","total30d"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-fees","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"kind","in":"query","required":false,"description":"Kind.","schema":{"type":"string","enum":["fees","dexs"]}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["total24h","total7d","total30d"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-protocol-history":{"get":{"tags":["crypto"],"summary":"Historical total-value-locked (TVL) time series for a DeFi...","description":"Historical total-value-locked (TVL) time series for a DeFi protocol by slug (e.g. aave, lido, uniswap), via DefiLlama (free/keyless). Returns daily { date, tvlUsd } points (most recent N, default 90) plus the protocol's chains. For charting a protocol's growth or decline over time. Net-new vs crypto.defi (current TVL only).","operationId":"crypto_defi-protocol-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ name, chains, series }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"chains":{"type":"array","items":{"type":"string"}},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"number","nullable":true},"tvlUsd":{"type":"number","nullable":true}},"required":["date","tvlUsd"],"additionalProperties":false}}},"required":["name","chains","series"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-protocol-history","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"slug","in":"query","required":true,"description":"DefiLlama protocol slug, e.g. aave, lido, uniswap.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Most-recent N daily points (default 90).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-yields":{"get":{"tags":["crypto"],"summary":"DeFi yield & lending rates across protocols (via DefiLlama...","description":"DeFi yield & lending rates across protocols (via DefiLlama, free/keyless). Returns pools ranked by APY or TVL with base vs reward APY, TVL, 1d/7d/30d APY trend, stablecoin flag, and IL-risk. Filter by chain, project (aave, compound, lido…), symbol (USDC, ETH…), minApy, minTvlUsd. The yield/lending-rate layer beyond crypto.defi's TVL headline.","operationId":"crypto_defi-yields","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = yield pools.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"project":{"nullable":true},"symbol":{"nullable":true},"chain":{"nullable":true},"tvlUsd":{"type":"number","nullable":true},"apy":{"type":"number","nullable":true},"apyBase":{"type":"number","nullable":true},"apyReward":{"type":"number","nullable":true},"apyPct1D":{"type":"number","nullable":true},"apyPct7D":{"type":"number","nullable":true},"apyPct30D":{"type":"number","nullable":true},"stablecoin":{"type":"boolean","nullable":true},"ilRisk":{"nullable":true},"pool":{"nullable":true}},"required":["tvlUsd","apy","apyBase","apyReward","apyPct1D","apyPct7D","apyPct30D","stablecoin"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-yields","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":false,"description":"Chain.","schema":{"type":"string","maxLength":40}},{"name":"project","in":"query","required":false,"description":"Project.","schema":{"type":"string","maxLength":60}},{"name":"symbol","in":"query","required":false,"description":"Symbol.","schema":{"type":"string","maxLength":40}},{"name":"minApy","in":"query","required":false,"description":"Min apy.","schema":{"type":"number","minimum":0}},{"name":"minTvlUsd","in":"query","required":false,"description":"Min tvl usd.","schema":{"type":"number","minimum":0}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["apy","tvl"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-networks":{"get":{"tags":["crypto"],"summary":"List the 100+ blockchain networks supported by the on-chain...","description":"List the 100+ blockchain networks supported by the on-chain DEX endpoints (via GeckoTerminal, free/keyless). Each entry has the network slug to use with crypto.dex-pools / dex-ohlcv / dex-search / token-info, its display name, and CoinGecko asset-platform id. Call this to discover valid network slugs.","operationId":"crypto_dex-networks","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = supported networks.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"nullable":true},"name":{"nullable":true},"coingeckoAssetPlatformId":{"nullable":true}},"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-networks","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-ohlcv":{"get":{"tags":["crypto"],"summary":"OHLCV candlesticks for a DEX pool (via GeckoTerminal...","description":"OHLCV candlesticks for a DEX pool (via GeckoTerminal, free/keyless). Pass network + pool address + timeframe (day/hour/minute) with optional aggregate (e.g. 4 = 4-hour) and limit. Returns time/open/high/low/close/volumeUsd bars for on-chain technical analysis. Pair with crypto.dex-pools / dex-token-pools to find a pool address.","operationId":"crypto_dex-ohlcv","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = OHLCV bars (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number","nullable":true},"open":{"type":"number","nullable":true},"high":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"close":{"type":"number","nullable":true},"volumeUsd":{"type":"number","nullable":true}},"required":["time","open","high","low","close","volumeUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-ohlcv","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"address","in":"query","required":true,"description":"Pool address (not token address).","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"timeframe","in":"query","required":false,"description":"Timeframe.","schema":{"type":"string","enum":["day","hour","minute"]}},{"name":"aggregate","in":"query","required":false,"description":"Aggregate.","schema":{"type":"integer","minimum":1,"maximum":60}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-pools":{"get":{"tags":["crypto"],"summary":"Trending or newly-created DEX liquidity pools on a network...","description":"Trending or newly-created DEX liquidity pools on a network (via GeckoTerminal, free/keyless). kind=trending (hot pools) or kind=new (freshly launched — early-token discovery). Each pool: pair name, base/quote USD price, FDV, market cap, reserve, 24h volume, 24h price change, and 24h buys/sells. Networks: eth, bsc, polygon_pos, base, arbitrum, solana, and 100+ more.","operationId":"crypto_dex-pools","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = DEX pools.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"baseTokenPriceUsd":{"type":"number","nullable":true},"quoteTokenPriceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"reserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"priceChange24hPct":{"type":"number","nullable":true},"buys24h":{"type":"number","nullable":true},"sells24h":{"type":"number","nullable":true},"poolCreatedAt":{"nullable":true}},"required":["baseTokenPriceUsd","quoteTokenPriceUsd","fdvUsd","marketCapUsd","reserveUsd","volume24hUsd","priceChange24hPct","buys24h","sells24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-pools","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"GeckoTerminal network slug, e.g. eth, bsc, base, solana.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"kind","in":"query","required":false,"description":"Kind.","schema":{"type":"string","enum":["trending","new"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-search":{"get":{"tags":["crypto"],"summary":"Search on-chain DEX liquidity pools by token name, symbol...","description":"Search on-chain DEX liquidity pools by token name, symbol, or address (via GeckoTerminal, free/keyless). Optionally scope to one network. Returns matching pools with pair name, USD price, FDV, market cap, reserve, 24h volume + price change, and buys/sells — the fast way to find the right pool/token before pulling OHLCV or token info.","operationId":"crypto_dex-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching pools.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"baseTokenPriceUsd":{"type":"number","nullable":true},"quoteTokenPriceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"reserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"priceChange24hPct":{"type":"number","nullable":true},"buys24h":{"type":"number","nullable":true},"sells24h":{"type":"number","nullable":true},"poolCreatedAt":{"nullable":true}},"required":["baseTokenPriceUsd","quoteTokenPriceUsd","fdvUsd","marketCapUsd","reserveUsd","volume24hUsd","priceChange24hPct","buys24h","sells24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-search","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":true,"description":"Token name, symbol, or contract address.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"network","in":"query","required":false,"description":"Optional network slug to scope the search.","schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-token-pools":{"get":{"tags":["crypto"],"summary":"All DEX pools trading a given token, by contract address...","description":"All DEX pools trading a given token, by contract address (via GeckoTerminal, free/keyless). Returns each pool's pair, on-chain USD price, FDV/market cap, liquidity reserve, 24h volume + price change, and buys/sells — the on-chain price + liquidity picture for any token across a network's DEXes.","operationId":"crypto_dex-token-pools","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = pools trading the token.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"baseTokenPriceUsd":{"type":"number","nullable":true},"quoteTokenPriceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"reserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"priceChange24hPct":{"type":"number","nullable":true},"buys24h":{"type":"number","nullable":true},"sells24h":{"type":"number","nullable":true},"poolCreatedAt":{"nullable":true}},"required":["baseTokenPriceUsd","quoteTokenPriceUsd","fdvUsd","marketCapUsd","reserveUsd","volume24hUsd","priceChange24hPct","buys24h","sells24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-token-pools","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network slug, e.g. eth, bsc, base, solana.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"address","in":"query","required":true,"description":"Token contract address.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/ens-resolve":{"get":{"tags":["crypto"],"summary":"Resolve ENS (Ethereum Name Service) names and addresses...","description":"Resolve ENS (Ethereum Name Service) names and addresses live on Ethereum mainnet. Pass query as either an ENS name (e.g. \"vitalik.eth\") → returns the Ethereum address it points to, or a 0x address → returns its primary ENS name (reverse record). Either way it also returns the profile text records: avatar, email, url, twitter (com.twitter), github (com.github), and description. A live on-chain lookup agents can't do from their sandbox, and ENS records change after training cutoffs. Wallet UX, address-book resolution, on-chain identity. Returns address:null for an unregistered or unset name.","operationId":"crypto_ens-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [ENS resolution] (query, name, address, profile records); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string"},"name":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"records":{"type":"object","properties":{"avatar":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"twitter":{"type":"string","nullable":true},"github":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["avatar","email","url","twitter","github","description"],"additionalProperties":false}},"required":["query","name","address","records"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.ens-resolve","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":3,"maxLength":255}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/fear-greed":{"get":{"tags":["crypto"],"summary":"The Crypto Fear & Greed Index - a 0-100 market-sentiment...","description":"The Crypto Fear & Greed Index — a 0–100 market-sentiment gauge (0 = Extreme Fear, 100 = Extreme Greed) updated daily. Returns the current value + its classification (Extreme Fear/Fear/Neutral/Greed/Extreme Greed) and timestamp; pass limit (up to 90) for recent history. Useful as a contrarian sentiment signal. Source: alternative.me.","operationId":"crypto_fear-greed","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = readings (newest first); total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number","description":"0–100 (0 = extreme fear, 100 = extreme greed)."},"classification":{"type":"string"},"timestamp":{"type":"string"}},"required":["value","classification","timestamp"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.fear-greed","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":90}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/gas-oracle":{"get":{"tags":["crypto"],"summary":"Live EVM gas oracle. Returns latest block baseFeePerGas +...","description":"Live EVM gas oracle. Returns latest block baseFeePerGas + slow/standard/fast tiers derived from priority-fee percentiles (p25/p50/p75) over the trailing 4 blocks, plus a 21,000-gas transfer cost estimate in the chain native unit. Chains: base, ethereum, polygon, arbitrum, optimism. Real-time post-training data, ~5s freshness.","operationId":"crypto_gas-oracle","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [gas oracle] (latest block baseFee, slow/standard/fast priority tiers, 21k transfer estimate); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.gas-oracle","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"EVM chain to query: base | ethereum | polygon | arbitrum | optimism.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/global":{"get":{"tags":["crypto"],"summary":"Whole-crypto-market overview: total market cap (USD), total...","description":"Whole-crypto-market overview: total market cap (USD), total 24h volume, 24h market-cap % change, Bitcoin + Ethereum dominance, count of active cryptocurrencies and markets. Source: CoinGecko.","operationId":"crypto_global","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [global market overview]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"totalMarketCapUsd":{"type":"number","nullable":true},"totalVolume24hUsd":{"type":"number","nullable":true},"marketCapChange24hPct":{"type":"number","nullable":true},"btcDominancePct":{"type":"number","nullable":true},"ethDominancePct":{"type":"number","nullable":true},"activeCryptocurrencies":{"type":"number","nullable":true},"markets":{"type":"number","nullable":true}},"required":["totalMarketCapUsd","totalVolume24hUsd","marketCapChange24hPct","btcDominancePct","ethDominancePct","activeCryptocurrencies","markets"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.global","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/hyperliquid-funding":{"get":{"tags":["crypto"],"summary":"Live perp funding rates, open interest, and mark/oracle/mid...","description":"Live perp funding rates, open interest, and mark/oracle/mid prices across 200+ Hyperliquid perpetuals (free/keyless). Each row: coin, hourly funding rate, open interest, mark/oracle/mid price, premium, prior-day price, 24h notional volume, max leverage. Filter by coin; sort by oi, volume, or funding. On-chain perp microstructure for funding-arb and OI signals.","operationId":"crypto_hyperliquid-funding","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = perps.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string","nullable":true},"maxLeverage":{"type":"number","nullable":true},"fundingHourly":{"type":"number","nullable":true},"openInterest":{"type":"number","nullable":true},"markPx":{"type":"number","nullable":true},"oraclePx":{"type":"number","nullable":true},"midPx":{"type":"number","nullable":true},"premium":{"type":"number","nullable":true},"prevDayPx":{"type":"number","nullable":true},"dayNotionalVolume":{"type":"number","nullable":true}},"required":["coin","maxLeverage","fundingHourly","openInterest","markPx","oraclePx","midPx","premium","prevDayPx","dayNotionalVolume"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.hyperliquid-funding","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"coin","in":"query","required":false,"description":"Coin.","schema":{"type":"string","maxLength":40}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["oi","volume","funding"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/hyperliquid-predicted-funding":{"get":{"tags":["crypto"],"summary":"Predicted next funding rates per coin across venues...","description":"Predicted next funding rates per coin across venues (Hyperliquid + Binance/Bybit perps), free/keyless. For each coin, a list of venues with predicted funding rate, next funding time, and funding interval — for cross-venue funding-rate arbitrage. Filter by coin.","operationId":"crypto_hyperliquid-predicted-funding","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = coins with per-venue predicted funding.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string","nullable":true},"venues":{"type":"array","items":{"type":"object","properties":{"venue":{"type":"string"},"fundingRate":{"type":"number","nullable":true},"nextFundingTime":{"type":"number","nullable":true},"fundingIntervalHours":{"type":"number","nullable":true}},"required":["venue","fundingRate","nextFundingTime","fundingIntervalHours"],"additionalProperties":false}}},"required":["coin","venues"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.hyperliquid-predicted-funding","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"coin","in":"query","required":false,"description":"Coin.","schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/kimchi-premium":{"get":{"tags":["crypto"],"summary":"The \"kimchi premium\" - how much higher a crypto asset...","description":"The \"kimchi premium\" — how much higher a crypto asset trades on Korean exchanges (Upbit, KRW) than its global USD price, as a percent. Computed as (Upbit KRW price / (global USD price × USD/KRW)) − 1. Pass symbol = ticker(s), comma-separated up to 10 (default BTC); supported majors include BTC, ETH, XRP, SOL, DOGE, ADA, TRX and more. Returns per symbol { krwPrice, usdPrice, usdKrw, globalUsdInKrw, premiumPct }. Per-symbol resilient (one unlisted symbol does not fail the rest); unresolved symbols are reported in meta.errors. Live blend of Upbit (KRW price) + CoinGecko (global USD) + ECB/Frankfurter (USD/KRW FX).","operationId":"crypto_kimchi-premium","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-symbol kimchi-premium rows; total = rows returned; meta.errors lists symbols that could not be resolved.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"krwPrice":{"type":"number","description":"Upbit KRW spot price."},"usdPrice":{"type":"number","description":"Global USD spot price (CoinGecko)."},"usdKrw":{"type":"number","description":"USD/KRW reference FX rate (ECB)."},"globalUsdInKrw":{"type":"number","description":"usdPrice * usdKrw — the global price expressed in KRW."},"premiumPct":{"type":"number","description":"(krwPrice / globalUsdInKrw - 1) * 100. Positive = Korea trades richer."}},"required":["symbol","krwPrice","usdPrice","usdKrw","globalUsdInKrw","premiumPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"usdKrw":{"type":"number"},"errors":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"error":{"type":"string"}},"required":["symbol","error"],"additionalProperties":false}},"asOf":{"type":"string"}},"required":["usdKrw","errors","asOf"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.kimchi-premium","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"symbol","in":"query","required":false,"description":"Comma-separated ticker symbols, up to 10 (default BTC). E.g. \"BTC,ETH,XRP,SOL\".","schema":{"allOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":120}],"default":"BTC"},{"type":"array","items":{"type":"string","pattern":"^[A-Z0-9]{2,12}$"},"minItems":1,"maxItems":10}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/markets":{"get":{"tags":["crypto"],"summary":"Top cryptocurrencies by market cap with live price, market...","description":"Top cryptocurrencies by market cap with live price, market cap, 24h volume, and 24h + 7d % change. Pass limit (1–100, default 20). Source: CoinGecko. For a single token use crypto.token-price; for the whole-market overview use crypto.global.","operationId":"crypto_markets","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = top coins by market cap; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"number","nullable":true},"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"priceUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true},"change7dPct":{"type":"number","nullable":true}},"required":["rank","id","symbol","name","priceUsd","marketCapUsd","volume24hUsd","change24hPct","change7dPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.markets","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/nft":{"get":{"tags":["crypto"],"summary":"Live ERC-721 NFT read (Base, Ethereum, Polygon, Arbitrum...","description":"Live ERC-721 NFT read (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Given a contract + tokenId: returns current owner, collection name/symbol, and tokenURI (IPFS auto-resolved to a gateway URL). Pass metadata=1 to also fetch and normalize the token's JSON metadata (name, description, image, attributes). For NFT provenance, ownership checks, and gallery rendering.","operationId":"crypto_nft","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one NFT read].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"contract":{"type":"string"},"tokenId":{"type":"string"},"owner":{"nullable":true},"collectionName":{"nullable":true},"collectionSymbol":{"nullable":true},"tokenURI":{"type":"string","nullable":true},"metadata":{"type":"object","properties":{"name":{"nullable":true},"description":{"nullable":true},"image":{"type":"string","nullable":true},"attributes":{"type":"array","items":{},"nullable":true}},"required":["image","attributes"],"additionalProperties":false,"nullable":true}},"required":["chain","contract","tokenId","tokenURI","metadata"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.nft","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"NFT contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"tokenId","in":"query","required":true,"description":"Token id (decimal).","schema":{"type":"string","pattern":"^\\d+$","maxLength":80}},{"name":"chain","in":"query","required":false,"description":"Default ethereum.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"name":"metadata","in":"query","required":false,"description":"1 to also fetch token JSON metadata.","schema":{"type":"string","enum":["0","1","true","false"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/nft-security":{"get":{"tags":["crypto"],"summary":"NFT collection risk screening via GoPlus (free, keyless).","description":"NFT collection risk screening via GoPlus (free, keyless). For an ERC-721/1155 contract: verification/trust-list status, open-source + proxy flags, privileged-minting, restricted-approval, transfer-without-approval, metadata-frozen and self-destruct risks, plus owner count and volume stats. Screen a collection before minting, buying, or approving — complements crypto.nft (reads) and crypto.token-safety.","operationId":"crypto_nft-security","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one NFT-security report].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"string"},"address":{"type":"string"},"nftName":{"nullable":true},"nftSymbol":{"nullable":true},"verified":{"type":"boolean","nullable":true},"onTrustList":{"type":"boolean","nullable":true},"isOpenSource":{"type":"boolean","nullable":true},"isProxy":{"type":"boolean","nullable":true},"privilegedMinting":{"type":"boolean","nullable":true},"restrictedApproval":{"type":"boolean","nullable":true},"transferWithoutApproval":{"type":"boolean","nullable":true},"metadataFrozen":{"type":"boolean","nullable":true},"selfDestruct":{"type":"boolean","nullable":true},"ownerNumber":{"type":"number","nullable":true},"totalVolume":{"type":"number","nullable":true},"tradedVolume24h":{"type":"number","nullable":true},"averagePrice24h":{"type":"number","nullable":true},"creatorAddress":{"nullable":true}},"required":["chainId","address","verified","onTrustList","isOpenSource","isProxy","privilegedMinting","restrictedApproval","transferWithoutApproval","metadataFrozen","selfDestruct","ownerNumber","totalVolume","tradedVolume24h","averagePrice24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.nft-security","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"NFT contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"chainId","in":"query","required":false,"description":"EVM chain id (default 1 = Ethereum).","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/stablecoins":{"get":{"tags":["crypto"],"summary":"Stablecoin supply leaderboard (via DefiLlama...","description":"Stablecoin supply leaderboard (via DefiLlama, free/keyless): the largest stablecoins by circulating USD, with peg type (USD/EUR/…), peg mechanism (fiat-backed, crypto-backed, algorithmic), and current price. For tracking stablecoin market share and de-peg risk.","operationId":"crypto_stablecoins","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = stablecoins by circulating USD desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"symbol":{"nullable":true},"pegType":{"nullable":true},"pegMechanism":{"nullable":true},"price":{"type":"number","nullable":true},"circulatingUsd":{"type":"number","nullable":true}},"required":["price","circulatingUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.stablecoins","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-info":{"get":{"tags":["crypto"],"summary":"On-chain token metrics by contract address (via...","description":"On-chain token metrics by contract address (via GeckoTerminal, free/keyless): name, symbol, decimals, on-chain USD price, FDV, market cap, total reserve in USD, 24h volume, total + normalized supply, image, and CoinGecko id. Distinct from crypto.token-price (CoinGecko aggregate spot) — this is DEX-derived on-chain data for any token across 100+ networks.","operationId":"crypto_token-info","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [token info].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"symbol":{"nullable":true},"decimals":{"type":"number","nullable":true},"imageUrl":{"nullable":true},"coingeckoCoinId":{"nullable":true},"priceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"totalReserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"totalSupply":{"type":"string","nullable":true},"normalizedTotalSupply":{"type":"string","nullable":true}},"required":["decimals","priceUsd","fdvUsd","marketCapUsd","totalReserveUsd","volume24hUsd","totalSupply","normalizedTotalSupply"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-info","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network slug, e.g. eth, bsc, base, solana.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"address","in":"query","required":true,"description":"Token contract address.","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-metadata":{"get":{"tags":["crypto"],"summary":"Live on-chain token metadata for an ERC-20 or ERC-721...","description":"Live on-chain token metadata for an ERC-20 or ERC-721 contract (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Returns name, symbol, decimals, detected standard, and total supply (raw + formatted). The authoritative read straight from the contract — complements crypto.token-price and crypto.contract (ABI/source).","operationId":"crypto_token-metadata","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one token-metadata object].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"contract":{"type":"string"},"name":{"nullable":true},"symbol":{"nullable":true},"decimals":{"type":"number","nullable":true},"standard":{"type":"string"},"totalSupply":{"type":"string","nullable":true},"totalSupplyFormatted":{"type":"string","nullable":true}},"required":["chain","contract","decimals","standard","totalSupply","totalSupplyFormatted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-metadata","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Token contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"chain","in":"query","required":false,"description":"Default base.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-price":{"get":{"tags":["crypto"],"summary":"Current spot price and market data for crypto assets.","description":"Current spot price and market data for crypto assets. Pass ids as comma-separated CoinGecko asset ids (e.g. bitcoin, ethereum, solana, usd-coin — lowercase id, not ticker symbol; up to 25 per call) and optionally vs (comma-separated fiat/crypto quote currencies, default usd). Returns per-asset price, market cap, 24h volume, and 24h percent change, plus the data timestamp. Live market data past any training cutoff. Price data by CoinGecko.","operationId":"crypto_token-price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-asset spot price/market cap/24h volume/24h change per quote currency; total = null (no upstream count); meta.asOf is the data timestamp.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"CoinGecko asset id."},"quotes":{"type":"object","additionalProperties":{"type":"object","properties":{"price":{"type":"number","nullable":true},"marketCap":{"type":"number","nullable":true},"volume24h":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true}},"required":["price","marketCap","volume24h","change24hPct"],"additionalProperties":false}}},"required":["id","quotes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"asOf":{"type":"string"}},"required":["asOf"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-price","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ids","in":"query","required":true,"description":"Comma-separated CoinGecko asset ids (lowercase), e.g. \"bitcoin,ethereum\". Max 25.","schema":{"allOf":[{"type":"string","minLength":2,"maxLength":600},{"type":"array","items":{"type":"string","pattern":"^[a-z0-9-]+$"},"minItems":1,"maxItems":25}]}},{"name":"vs","in":"query","required":false,"description":"Vs.","schema":{"allOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":60}],"default":"usd"},{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,10}$"},"minItems":1,"maxItems":5}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-safety":{"get":{"tags":["crypto"],"summary":"Token honeypot & rug-pull risk screen (via GoPlus...","description":"Token honeypot & rug-pull risk screen (via GoPlus, free/keyless). For an ERC-20 on any EVM chain, returns honeypot flag, buy/sell tax, open-source/proxy/mintable status, hidden-owner / take-back-ownership / selfdestruct / external-call risks, blacklist/whitelist/anti-whale flags, holder count, and owner/creator concentration. Essential pre-trade safety check for agents — the security layer competitors charge for.","operationId":"crypto_token-safety","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [token safety report].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"string"},"address":{"type":"string"},"tokenName":{"nullable":true},"tokenSymbol":{"nullable":true},"isHoneypot":{"type":"boolean","nullable":true},"buyTax":{"type":"number","nullable":true},"sellTax":{"type":"number","nullable":true},"isOpenSource":{"type":"boolean","nullable":true},"isProxy":{"type":"boolean","nullable":true},"isMintable":{"type":"boolean","nullable":true},"canTakeBackOwnership":{"type":"boolean","nullable":true},"hiddenOwner":{"type":"boolean","nullable":true},"selfdestruct":{"type":"boolean","nullable":true},"externalCall":{"type":"boolean","nullable":true},"isBlacklisted":{"type":"boolean","nullable":true},"isWhitelisted":{"type":"boolean","nullable":true},"isAntiWhale":{"type":"boolean","nullable":true},"slippageModifiable":{"type":"boolean","nullable":true},"isInDex":{"type":"boolean","nullable":true},"isInCex":{"type":"boolean","nullable":true},"holderCount":{"type":"number","nullable":true},"ownerAddress":{"nullable":true},"creatorAddress":{"nullable":true},"ownerPercent":{"type":"number","nullable":true},"creatorPercent":{"type":"number","nullable":true}},"required":["chainId","address","isHoneypot","buyTax","sellTax","isOpenSource","isProxy","isMintable","canTakeBackOwnership","hiddenOwner","selfdestruct","externalCall","isBlacklisted","isWhitelisted","isAntiWhale","slippageModifiable","isInDex","isInCex","holderCount","ownerPercent","creatorPercent"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-safety","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":true,"description":"EVM chain id, e.g. 1 (Ethereum), 56 (BSC), 137 (Polygon), 8453 (Base).","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-transfers":{"get":{"tags":["crypto"],"summary":"ERC-20 token transfer history for an Ethereum address (via...","description":"ERC-20 token transfer history for an Ethereum address (via Etherscan V2). Each transfer: hash, block, timestamp, from/to, token contract, name, symbol, decimals, and value (raw + decimal-adjusted). Optionally filter to one token contract. Paginate with page + offset. Defaults to Ethereum mainnet; other EVM chains by chainId where upstream coverage allows. Trace what tokens a wallet sent/received.","operationId":"crypto_token-transfers","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = ERC-20 transfers.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"hash":{"nullable":true},"blockNumber":{"type":"number","nullable":true},"timestamp":{"type":"string","nullable":true},"from":{"nullable":true},"to":{"nullable":true},"contractAddress":{"nullable":true},"tokenName":{"nullable":true},"tokenSymbol":{"nullable":true},"tokenDecimal":{"type":"number","nullable":true},"valueRaw":{"type":"string","nullable":true},"value":{"type":"number","nullable":true}},"required":["blockNumber","timestamp","tokenDecimal","valueRaw","value"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-transfers","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":false,"description":"EVM chain id; defaults to 1 (Ethereum). Other chains require upstream multichain coverage.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"contractAddress","in":"query","required":false,"description":"Filter to one ERC-20 contract.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["asc","desc"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/trending":{"get":{"tags":["crypto"],"summary":"The most-searched trending cryptocurrencies on CoinGecko...","description":"The most-searched trending cryptocurrencies on CoinGecko right now (last 24h), each with symbol, name, market-cap rank, and price. A real-time popularity/attention signal. Source: CoinGecko.","operationId":"crypto_trending","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = trending coins (most-searched first); total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"marketCapRank":{"type":"number","nullable":true},"priceUsd":{"type":"number","nullable":true}},"required":["id","symbol","name","marketCapRank","priceUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.trending","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/tx":{"get":{"tags":["crypto"],"summary":"Live EVM transaction status and receipt lookup.","description":"Live EVM transaction status and receipt lookup. Give a transaction hash + chain and get back whether it mined successfully, reverted, or is still pending in the mempool, plus block number, confirmations, timestamp, sender and recipient, value transferred (native unit), gas used, effective gas price, total fee paid, any contract created, and event-log count. Chains: base, ethereum, polygon, arbitrum, optimism. Real-time post-training chain state — use it to confirm a payment settled, detect a reverted transaction, or wait for confirmations before acting. Unknown hash returns 404. Sibling of /api/crypto/gas-oracle (fees) and /api/crypto/address-validate (format).","operationId":"crypto_tx","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the transaction] with status (success | reverted | pending), block, confirmations, from/to, value (native), gasUsed, effectiveGasPriceGwei, feeNative, contractAddress, logCount; total = 1. 404 if the hash is unknown on that chain.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.tx","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"EVM chain to query: base | ethereum | polygon | arbitrum | optimism.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"name":"hash","in":"query","required":true,"description":"Transaction hash: 0x followed by 64 hex characters.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/vrf":{"get":{"tags":["crypto"],"summary":"Verifiable random function - deterministic, publicly...","description":"Verifiable random function — deterministic, publicly verifiable randomness bound to your seed and signed by the 2s key. proof = deterministic EIP-191 signature over the seed (same seed always yields the same proof, so the outcome cannot be re-rolled or cherry-picked); random = keccak256(proof), a uniform 32-byte value. Returns the seed, signed message, proof, signer address, random (hex + uint + float in [0,1)). Verify offline: recover the signer from (message, proof) and confirm keccak256(proof) == random. For provably-fair draws, lotteries, sortition, and tie-breaks between agents.","operationId":"crypto_vrf","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one VRF output with verifiable proof].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"seed":{"type":"string"},"signer":{"type":"string"},"alg":{"type":"string"},"version":{"type":"string"},"message":{"type":"string"},"proof":{"type":"string"},"random":{"type":"string"},"randomUint":{"type":"string"},"randomFloat":{"type":"number"}},"required":["seed","signer","alg","version","message","proof","random","randomUint","randomFloat"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.vrf","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"seed","in":"query","required":true,"description":"Any seed string — a request id, block hash, commitment, etc.","schema":{"type":"string","minLength":1,"maxLength":256}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/crates-search":{"get":{"tags":["dev"],"summary":"Search crates.io for Rust packages (keyless).","description":"Search crates.io for Rust packages (keyless). Each result: name, latest stable version, description, total + recent downloads, and repository/homepage/documentation links. For agents discovering or vetting Rust dependencies.","operationId":"dev_crates-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching Rust crates.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"downloads":{"type":"number","nullable":true},"recentDownloads":{"type":"number","nullable":true},"repository":{"type":"string","nullable":true},"homepage":{"type":"string","nullable":true},"documentation":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["name","version","description","downloads","recentDownloads","repository","homepage","documentation","updatedAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.crates-search","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Crate search text, e.g. \"tokio async\".","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":30}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/csv-to-json":{"post":{"tags":["dev"],"summary":"Convert CSV/TSV text to a JSON array.","description":"Convert CSV/TSV text to a JSON array. POST { csv, delimiter?, header? }. Auto-detects comma vs tab, handles quoted fields and escaped quotes, and coerces numbers/booleans/empty→null. With header=true (default) each row becomes an object keyed by the header row; header=false returns arrays.","operationId":"dev_csv-to-json","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = parsed rows; meta.delimiter = detected/used delimiter.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"delimiter":{"type":"string"}},"required":["delimiter"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.csv-to-json","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1,"maxLength":200000,"description":"CSV."},"delimiter":{"type":"string","maxLength":1,"description":"Delimiter."},"header":{"type":"boolean","description":"Header."}},"required":["csv"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/diff-json":{"post":{"tags":["dev"],"summary":"Structured deep diff of two JSON values.","description":"Structured deep diff of two JSON values. POST { a, b }. Returns a list of changes, each with a dot-path and type (added / removed / changed) plus from/to values, and a total change count. For change-detection, config drift, and review tooling.","operationId":"dev_diff-json","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [diff].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"changeCount":{"type":"number"},"changes":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"type":{"type":"string"},"from":{},"to":{}},"required":["path","type"],"additionalProperties":false}}},"required":["changeCount","changes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.diff-json","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"description":"A."},"b":{"description":"B."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/flatten-json":{"post":{"tags":["dev"],"summary":"Flatten a nested JSON object/array into dot-notation keys.","description":"Flatten a nested JSON object/array into dot-notation keys. POST { data, delimiter? }. E.g. {a:{b:[1,2]}} → {\"a.b.0\":1,\"a.b.1\":2}. Useful for diffing, CSV export, search indexing, or feeding flat key/value config to tools.","operationId":"dev_flatten-json","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [flattened object].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.flatten-json","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"description":"Data."},"delimiter":{"type":"string","maxLength":3,"description":"Delimiter."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/gitlab-search":{"get":{"tags":["dev"],"summary":"Search public GitLab projects (keyless), ranked by stars.","description":"Search public GitLab projects (keyless), ranked by stars. Each result: full name, path, description, star and fork counts, web URL, last-activity timestamp, and topics. Complements code.repo-lookup (GitHub) for cross-host repository discovery.","operationId":"dev_gitlab-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching GitLab projects.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"path":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"stars":{"type":"number","nullable":true},"forks":{"type":"number","nullable":true},"webUrl":{"type":"string","nullable":true},"lastActivityAt":{"type":"string","nullable":true},"topics":{"type":"array","items":{}}},"required":["name","path","description","stars","forks","webUrl","lastActivityAt","topics"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.gitlab-search","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Project search text, e.g. \"kubernetes operator\".","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":30}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/json-to-csv":{"post":{"tags":["dev"],"summary":"Convert a JSON array of objects to CSV.","description":"Convert a JSON array of objects to CSV. POST { data, delimiter? }. Column headers are the union of keys across all rows; values are CSV-escaped (quotes, commas, newlines), nested objects are JSON-stringified, null→empty. Returns the CSV string + column list.","operationId":"dev_json-to-csv","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ csv, columns, rows }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"csv":{"type":"string"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"number"}},"required":["csv","columns","rows"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.json-to-csv","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{},"maxItems":10000,"description":"Data."},"delimiter":{"type":"string","maxLength":1,"description":"Delimiter."}},"required":["data"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/json-to-typescript":{"post":{"tags":["dev"],"summary":"Infer a TypeScript interface from a sample JSON value.","description":"Infer a TypeScript interface from a sample JSON value. POST { sample, rootName? }. Handles nested objects, arrays (merged element type), and primitives; merges keys across array elements. Returns a ready-to-paste interface string.","operationId":"dev_json-to-typescript","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ typescript }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"typescript":{"type":"string"}},"required":["typescript"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.json-to-typescript","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sample":{"description":"Sample."},"rootName":{"type":"string","pattern":"^[A-Za-z_$][\\w$]*$","maxLength":60,"description":"Root name."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/json-to-zod":{"post":{"tags":["dev"],"summary":"Infer a Zod schema from a sample JSON value.","description":"Infer a Zod schema from a sample JSON value. POST { sample, name? }. Handles nested objects, arrays, and primitives, merging keys across array elements. Returns a ready-to-paste `const name = z.object({...})` string.","operationId":"dev_json-to-zod","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ zod }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"zod":{"type":"string"}},"required":["zod"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.json-to-zod","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sample":{"description":"Sample."},"name":{"type":"string","pattern":"^[A-Za-z_$][\\w$]*$","maxLength":60,"description":"Name to search for."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/jwt-decode":{"post":{"tags":["dev"],"summary":"Decode a JWT without verifying its signature.","description":"Decode a JWT without verifying its signature. POST { token }. Returns the decoded header and payload, plus issuedAt/expiresAt/notBefore as ISO timestamps, and expired / notYetValid flags. Signature is NOT checked — decode/inspection only. For agents reading token claims (scopes, sub, exp) before acting.","operationId":"dev_jwt-decode","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [decoded JWT].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.jwt-decode","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":8192,"description":"Token."}},"required":["token"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/npm-search":{"get":{"tags":["dev"],"summary":"Search the npm registry for JavaScript/TypeScript packages...","description":"Search the npm registry for JavaScript/TypeScript packages (keyless). Each result: name, latest version, description, keywords, publisher, last-publish date, and npm/homepage/repository links. For agents discovering or vetting dependencies.","operationId":"dev_npm-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching npm packages.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"keywords":{"type":"array","items":{}},"publisher":{"type":"string","nullable":true},"date":{"type":"string","nullable":true},"npm":{"type":"string","nullable":true},"homepage":{"type":"string","nullable":true},"repository":{"type":"string","nullable":true}},"required":["name","version","description","keywords","publisher","date","npm","homepage","repository"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.npm-search","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Package search text, e.g. \"react query\".","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":30}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/preflight":{"post":{"tags":["dev"],"summary":"Check whether a shell command is runnable before you (or an...","description":"Check whether a shell command is runnable before you (or an agent) run it — a pre-execution gate. POST { command } with a command that targets the network (curl, wget, httpie, or anything carrying a URL). Parses out the HTTP method, target URL, and headers, then returns a structured verdict: verdict ('runnable' or 'invalid'), a runnable boolean, and a checks breakdown (hasTarget, urlValid, schemeOk, hostPresent, methodValid, privateTarget). By default the check is STATIC and deterministic — no network call — answering 'is there a well-formed http(s) target and a valid method?' (a command with no URL is invalid). Pass probe=true to also run a guarded HEAD request against the target and report dnsResolves, reachable, tlsValid, and httpStatus — answering 'would this actually connect right now?'. Private/loopback/reserved targets are refused (SSRF-safe). Built for gating agent-generated commands and CI pipelines.","operationId":"dev_preflight","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [preflight verdict with per-check evidence]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"command":{"type":"string"},"tool":{"type":"string","nullable":true},"method":{"type":"string"},"url":{"type":"string","nullable":true},"targets":{"type":"array","items":{"type":"string"}},"verdict":{"type":"string","description":"'runnable' or 'invalid'"},"runnable":{"type":"boolean"},"mode":{"type":"string","description":"'static' or 'live'"},"reason":{"type":"string","nullable":true},"checks":{"type":"object","properties":{"hasTarget":{"type":"boolean"},"urlValid":{"type":"boolean"},"schemeOk":{"type":"boolean"},"hostPresent":{"type":"boolean"},"methodValid":{"type":"boolean"},"privateTarget":{"type":"boolean"},"dnsResolves":{"type":"boolean","nullable":true},"reachable":{"type":"boolean","nullable":true},"tlsValid":{"type":"boolean","nullable":true},"httpStatus":{"type":"number","nullable":true}},"required":["hasTarget","urlValid","schemeOk","hostPresent","methodValid","privateTarget","dnsResolves","reachable","tlsValid","httpStatus"],"additionalProperties":false},"note":{"type":"string"}},"required":["command","tool","method","url","targets","verdict","runnable","mode","reason","checks","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.preflight","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string","minLength":1,"maxLength":8192,"description":"Command."},"probe":{"type":"boolean","description":"Probe."}},"required":["command"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/regex-test":{"post":{"tags":["dev"],"summary":"Test a JavaScript regular expression against input text.","description":"Test a JavaScript regular expression against input text. POST { pattern, flags?, input }. Returns each match with its index, numbered capture groups, and named groups (up to 1000 matches with the g flag). Pure compute, no upstream.","operationId":"dev_regex-test","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matches; meta has pattern/flags/matched/matchCount.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"match":{"type":"string"},"index":{"type":"number"},"groups":{"type":"array","items":{"type":"string"}},"namedGroups":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"required":["match","index","groups","namedGroups"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"pattern":{"type":"string"},"flags":{"type":"string"},"matched":{"type":"boolean"},"matchCount":{"type":"number"}},"required":["pattern","flags","matched","matchCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.regex-test","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pattern":{"type":"string","minLength":1,"maxLength":1000,"description":"Pattern."},"flags":{"type":"string","maxLength":8,"description":"Flags."},"input":{"type":"string","maxLength":50000,"description":"Input."}},"required":["pattern","input"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/rfc":{"get":{"tags":["dev"],"summary":"Look up an IETF RFC by number.","description":"Look up an IETF RFC by number. Pass number as RFC2616, 2616, or the integer 2616. Returns the RFC title, authors, publication date, status (e.g. INTERNET STANDARD, PROPOSED STANDARD, DRAFT STANDARD, INFORMATIONAL, EXPERIMENTAL, HISTORIC, BEST CURRENT PRACTICE), stream (IETF/IAB/IRTF/Independent/Legacy), DOI, canonical rfc-editor.org URL, and the full standards relationship chain: which RFCs this one obsoletes / is obsoleted by, and which it updates / is updated by. Authoritative data from the IETF/RFC Editor index. Use this to resolve whether a spec is current or superseded before relying on it.","operationId":"dev_rfc","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"number":{"type":"number"}},"required":["number"],"additionalProperties":false},"returned":{"type":"number"},"rfc":{"type":"object","properties":{"number":{"type":"number"},"title":{"type":"string","nullable":true},"authors":{"type":"array","items":{"type":"string"}},"date":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"stream":{"type":"string","nullable":true},"obsoletes":{"type":"array","items":{"type":"number"}},"obsoletedBy":{"type":"array","items":{"type":"number"}},"updates":{"type":"array","items":{"type":"number"}},"updatedBy":{"type":"array","items":{"type":"number"}},"doi":{"type":"string","nullable":true},"url":{"type":"string"}},"required":["number","title","authors","date","status","stream","obsoletes","obsoletedBy","updates","updatedBy","doi","url"],"additionalProperties":false,"nullable":true},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","returned","rfc","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.rfc","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"number","in":"query","required":true,"description":"RFC number, e.g. RFC2616 or 2616.","schema":{"type":"string","minLength":1,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/stackoverflow-search":{"get":{"tags":["dev"],"summary":"Search Stack Overflow questions (keyless).","description":"Search Stack Overflow questions (keyless). Each result: title, link, score, answer count, answered flag, view count, tags, creation date, and question id. Sort by relevance, votes, activity, or creation. For coding agents that need authoritative Q&A on errors, APIs, and language features.","operationId":"dev_stackoverflow-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching questions.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","nullable":true},"link":{"type":"string","nullable":true},"score":{"type":"number","nullable":true},"answerCount":{"type":"number","nullable":true},"isAnswered":{"type":"boolean"},"viewCount":{"type":"number","nullable":true},"tags":{"type":"array","items":{}},"creationDate":{"type":"string","nullable":true},"questionId":{"type":"number","nullable":true}},"required":["title","link","score","answerCount","isAnswered","viewCount","tags","creationDate","questionId"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.stackoverflow-search","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Search query, e.g. \"async await deadlock c#\".","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"sort","in":"query","required":false,"description":"Default relevance.","schema":{"type":"string","enum":["relevance","votes","activity","creation"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":30}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dev/uuid":{"get":{"tags":["dev"],"summary":"Generate UUIDs. version v4 (random) or v7 (time-ordered...","description":"Generate UUIDs. version v4 (random) or v7 (time-ordered, sortable); count 1-100. Cryptographically random. Pure compute, no upstream.","operationId":"dev_uuid","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = generated UUID strings.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"string"}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dev.uuid","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"version","in":"query","required":false,"description":"Default v4.","schema":{"type":"string","enum":["v4","v7"]}},{"name":"count","in":"query","required":false,"description":"Count.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/dns/lookup":{"get":{"tags":["dns"],"summary":"Resolve a hostname over public DNS and return parsed records.","description":"Resolve a hostname over public DNS and return parsed records. Query: host (required FQDN), types (comma-separated: A,AAAA,MX,TXT,NS,CAA,SRV,CNAME,PTR,SOA — default A,AAAA,MX,TXT,NS), resolver (cloudflare|google|quad9|opendns, optional). Returns one normalized JSON shape per record type with per-type error pass-through. Reserved/local TLDs (.local, .internal, .invalid, .test, localhost) are rejected. 4s per-query timeout.","operationId":"dns_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [DNS result] (query, resolver, durationMs, per-type answers object); total = 1 (single resolution, type-keyed answers are not a homogeneous list).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"dns.lookup","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"host","in":"query","required":true,"description":"Hostname to look up.","schema":{"type":"string","minLength":1,"maxLength":253}},{"name":"types","in":"query","required":false,"description":"Types.","schema":{"type":"string","pattern":"^(A|AAAA|MX|TXT|NS|CAA|SRV|CNAME|PTR|SOA)(,(A|AAAA|MX|TXT|NS|CAA|SRV|CNAME|PTR|SOA)){0,9}$"}},{"name":"resolver","in":"query","required":false,"description":"Resolver.","schema":{"type":"string","enum":["cloudflare","google","quad9","opendns"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/domain/ct-logs":{"get":{"tags":["domain"],"summary":"Certificate Transparency recon for a domain - discover its...","description":"Certificate Transparency recon for a domain — discover its subdomains and issued certificates from public CT logs (passive attack-surface mapping). Pass domain. Returns the deduplicated set of subdomains seen across all certs (subdomains + subdomainCount), and the certificates (issuer, validity window, SAN dns names), most recent first. Sourced from SSLMate certSpotter (primary) with a crt.sh fallback — keyless. Live CT-log data over a huge append-only dataset an LLM cannot enumerate. For external attack-surface discovery, shadow-IT/subdomain inventory, and certificate monitoring. Note: CT shows names that ever appeared in a cert, not necessarily live hosts.","operationId":"domain_ct-logs","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [CT recon result with subdomains + certs]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"subdomainCount":{"type":"integer"},"subdomains":{"type":"array","items":{"type":"string"}},"certCount":{"type":"integer"},"certs":{"type":"array","items":{"type":"object","properties":{"issuer":{"type":"string","nullable":true},"notBefore":{"type":"string","nullable":true},"notAfter":{"type":"string","nullable":true},"dnsNames":{"type":"array","items":{"type":"string"}}},"required":["issuer","notBefore","notAfter","dnsNames"],"additionalProperties":false}},"truncated":{"type":"boolean"},"provider":{"type":"string"}},"required":["domain","subdomainCount","subdomains","certCount","certs","truncated","provider"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"domain.ct-logs","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name to look up.","schema":{"type":"string","minLength":3,"maxLength":253}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/domain/email-security":{"get":{"tags":["domain"],"summary":"Grade a domain's email-authentication and DNS-security...","description":"Grade a domain's email-authentication and DNS-security posture from live DNS in one call: SPF, DMARC (policy + alignment), DKIM (for the supplied or common selectors), MTA-STS, TLS-RPT, DNSSEC, CAA, and BIMI. Pass domain (and optional dkimSelector). Returns an overall letter grade, a summary (spf/dmarcPolicy/dkim/mtaSts/dnssec/caa/bimi + spoofingProtected), and a per-mechanism block with the raw record, parsed tags, and specific issues (e.g. 'DMARC p=none — monitor only', 'SPF ~all soft-fail', 'no MTA-STS'). Sourced from live public DNS via DNS-over-HTTPS — an LLM cannot know a domain's current records. For deliverability/anti-spoofing audits, vendor security review, and phishing-resistance checks. DKIM is selector-based (selectors aren't enumerable), so 'not found' only means none of the checked selectors resolved.","operationId":"domain_email-security","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [posture report with grade + per-mechanism blocks]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"grade":{"type":"string"},"summary":{"type":"object","properties":{"spf":{"type":"boolean","nullable":true},"dmarcPolicy":{"type":"string","nullable":true},"dkim":{"type":"boolean","nullable":true},"mtaSts":{"type":"boolean","nullable":true},"dnssec":{"type":"boolean","nullable":true},"caa":{"type":"boolean","nullable":true},"bimi":{"type":"boolean","nullable":true},"spoofingProtected":{"type":"boolean"}},"required":["spf","dmarcPolicy","dkim","mtaSts","dnssec","caa","bimi","spoofingProtected"],"additionalProperties":false},"spf":{"type":"object","additionalProperties":{}},"dmarc":{"type":"object","additionalProperties":{}},"dkim":{"type":"object","additionalProperties":{}},"mtaSts":{"type":"object","additionalProperties":{}},"tlsRpt":{"type":"object","additionalProperties":{}},"dnssec":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true}},"required":["enabled"],"additionalProperties":false},"caa":{"type":"object","additionalProperties":{}},"bimi":{"type":"object","additionalProperties":{}},"note":{"type":"string"}},"required":["domain","grade","summary","spf","dmarc","dkim","mtaSts","tlsRpt","dnssec","caa","bimi","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"domain.email-security","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name to look up.","schema":{"type":"string","minLength":3,"maxLength":253}},{"name":"dkimSelector","in":"query","required":false,"description":"Dkim selector.","schema":{"type":"string","minLength":1,"maxLength":63}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/domain/intel":{"get":{"tags":["domain"],"summary":"Domain intelligence in one call - composes DNS, WHOIS/RDAP...","description":"Domain intelligence in one call — composes DNS, WHOIS/RDAP registration, and the live TLS certificate for a domain. Pass domain (e.g. example.com). Returns a summary (does it resolve, has MX, registrar, domain expiry, whether HTTPS is currently valid, days until cert expiry) plus three independent sections: dns (A/AAAA/MX/NS/TXT records), whois (registrar, registered/expires/updated dates, status codes, nameservers, DNSSEC), and tls (certificate issuer, subject, validity window, SANs, fingerprint). Each section reports found/error independently, so a domain with no HTTPS still returns DNS + WHOIS. For domain due diligence, security recon, expiry monitoring, and vendor onboarding. Individual sources: /api/dns/lookup, /api/domain/whois, /api/net/tls-cert.","operationId":"domain_intel","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [domain dossier with dns/whois/tls sections]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"],"additionalProperties":false},"summary":{"type":"object","properties":{"resolves":{"type":"boolean","nullable":true},"hasMx":{"type":"boolean","nullable":true},"registrar":{"type":"string","nullable":true},"expiresAt":{"type":"string","nullable":true},"httpsValid":{"type":"boolean","nullable":true},"certExpiresInDays":{"type":"number","nullable":true}},"required":["resolves","hasMx","registrar","expiresAt","httpsValid","certExpiresInDays"],"additionalProperties":false},"dns":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"whois":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"tls":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string"}},"required":["query","summary","dns","whois","tls","sources","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"domain.intel","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name to look up.","schema":{"type":"string","minLength":3,"maxLength":253}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/domain/whois":{"get":{"tags":["domain"],"summary":"Modern WHOIS via RDAP. Query: domain (e.g. example.com)...","description":"Modern WHOIS via RDAP. Query: domain (e.g. example.com). Returns { domain, ldhName, handle, registrar:{ name, ianaId, url, abuseEmail, abusePhone }, registeredAt, expiresAt, updatedAt, statuses (camelCase ICANN EPP codes), nameservers[], dnssecSigned, rdapUrl }. GDPR: registrant personal data is generally redacted upstream and not returned. Some TLDs without RDAP are not supported and return 404 TLD_NOT_SUPPORTED.","operationId":"domain_whois","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [domain record] (registrar, registration/expiry/update dates, EPP statuses, nameservers, DNSSEC, rdapUrl); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"domain.whois","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain name to look up.","schema":{"type":"string","minLength":3,"maxLength":253}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/earth/events":{"get":{"tags":["earth"],"summary":"Global natural events tracker via NASA EONET v3 (Earth...","description":"Global natural events tracker via NASA EONET v3 (Earth Observatory Natural Event Tracker). Returns active and historical events curated by NASA EOSDIS: wildfires, severe storms, volcanoes, floods, droughts, landslides, sea/lake ice, dust/haze, manmade incidents, water-color anomalies. Each event includes geo-located observation points with timestamps, source attribution (USGS, NWS, IRWIN, GDACS, etc.), and category. Filter by status (open/closed/all), days-back window, category, or bounding box.","operationId":"earth_events","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NASA EONET natural events (id, title, categories, sources, geometry); total = null (EONET reports no global total); meta.title is the feed label, meta.fetched is the count returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"link":{"type":"string"},"closed":{"type":"string","nullable":true},"categories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"],"additionalProperties":false}},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"}},"required":["id","url"],"additionalProperties":false}},"geometry":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"type":{"type":"string"},"coordinates":{},"magnitudeValue":{"type":"number","nullable":true},"magnitudeUnit":{"type":"string","nullable":true}},"required":["date","type"],"additionalProperties":false}}},"required":["id","title","description","link","closed","categories","sources","geometry"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"title":{"type":"string"},"fetched":{"type":"integer"}},"required":["title","fetched"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"earth.events","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["open","closed","all"],"default":"open"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"days","in":"query","required":false,"description":"Look-back window, in days.","schema":{"type":"integer","minimum":1,"maximum":365}},{"name":"category","in":"query","required":false,"description":"Filter results by category.","schema":{"type":"string","enum":["drought","dustHaze","earthquakes","floods","landslides","manmade","seaLakeIce","severeStorms","snow","tempExtremes","volcanoes","waterColor","wildfires"]}},{"name":"bbox","in":"query","required":false,"description":"Bbox.","schema":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/earth/now":{"get":{"tags":["earth"],"summary":"Situational awareness for a coordinate: recent earthquakes...","description":"Situational awareness for a coordinate: recent earthquakes (USGS) and active wildfires (NIFC) within a configurable radius. Returns each with distance-from-query in km, sorted nearest-first. Multi-source synthesis from free US Government feeds. Real-time, post-training data.","operationId":"earth_now","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [snapshot] (one composite situational-awareness object: query echo, summary counts, earthquakes[], wildfires[]); total = 1; meta.errors holds per-source failures, meta.sources lists each contributing feed.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"message":{"type":"string"}},"required":["source","message"],"additionalProperties":false}},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"provider":{"type":"string"},"license":{"type":"string"},"url":{"type":"string"}},"required":["name","provider","license","url"],"additionalProperties":false}}},"required":["errors","sources"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"earth.now","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius_km","in":"query","required":false,"description":"Search radius in kilometers.","schema":{"type":"number","minimum":1,"maximum":1000,"default":500}},{"name":"hours","in":"query","required":false,"description":"Look-back window, in hours.","schema":{"type":"number","minimum":1,"maximum":168,"default":24}},{"name":"min_magnitude","in":"query","required":false,"description":"Minimum magnitude to include.","schema":{"type":"number","minimum":0,"maximum":10,"default":2}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/commodity":{"get":{"tags":["econ"],"summary":"Latest benchmark commodity price with the prior value + %...","description":"Latest benchmark commodity price with the prior value + % change. Pass commodity for one, or omit for all. Commodities: wti, brent, natural-gas, gasoline, diesel, heating-oil, propane, copper, aluminum, corn, wheat, sugar — i.e. crude oil (WTI + Brent), natural gas, gasoline, diesel, heating oil, propane, gold, copper, aluminum, corn, wheat, sugar. Each result names the FRED series ID + unit ($/barrel, $/gallon, $/troy oz, $/metric ton...). Daily benchmarks report a daily date; global-price series are monthly. Source: EIA / LBMA / IMF via FRED (St. Louis Fed).","operationId":"econ_commodity","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = commodity prices; total = commodities returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"commodity":{"type":"string"},"seriesId":{"type":"string"},"label":{"type":"string"},"unit":{"type":"string"},"price":{"type":"number","nullable":true},"asOf":{"type":"string","nullable":true},"previous":{"type":"number","nullable":true},"changePct":{"type":"number","nullable":true,"description":"% change vs the prior observation."}},"required":["commodity","seriesId","label","unit","price","asOf","previous","changePct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.commodity","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"commodity","in":"query","required":false,"description":"Commodity.","schema":{"type":"string","enum":["wti","brent","natural-gas","gasoline","diesel","heating-oil","propane","copper","aluminum","corn","wheat","sugar"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/cot":{"get":{"tags":["econ"],"summary":"CFTC Commitments of Traders (COT) - weekly futures...","description":"CFTC Commitments of Traders (COT) — weekly futures positioning for a market (free/keyless). Match a market by name (e.g. 'E-MINI S&P', 'GOLD', 'CRUDE OIL', 'BITCOIN'). Each weekly report: open interest, large speculators (non-commercial) long/short/spread, commercials (hedgers) long/short, small (non-reportable) traders, and week-over-week changes. For positioning/sentiment analysis.","operationId":"econ_cot","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = weekly COT reports (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"market":{"nullable":true},"reportDate":{"type":"string","nullable":true},"openInterest":{"type":"number","nullable":true},"nonCommLong":{"type":"number","nullable":true},"nonCommShort":{"type":"number","nullable":true},"nonCommSpread":{"type":"number","nullable":true},"commLong":{"type":"number","nullable":true},"commShort":{"type":"number","nullable":true},"nonReptLong":{"type":"number","nullable":true},"nonReptShort":{"type":"number","nullable":true},"changeOpenInterest":{"type":"number","nullable":true},"changeNonCommLong":{"type":"number","nullable":true},"changeNonCommShort":{"type":"number","nullable":true},"tradersTotal":{"type":"number","nullable":true}},"required":["reportDate","openInterest","nonCommLong","nonCommShort","nonCommSpread","commLong","commShort","nonReptLong","nonReptShort","changeOpenInterest","changeNonCommLong","changeNonCommShort","tradersTotal"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.cot","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"market","in":"query","required":true,"description":"Market name contains, e.g. GOLD, E-MINI S&P, CRUDE OIL.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/fred":{"get":{"tags":["econ"],"summary":"Any series in the Federal Reserve's FRED database (800k+ US...","description":"Any series in the Federal Reserve's FRED database (800k+ US & international economic time series). HOW TO USE: if you know the series id, pass seriesId to get the series metadata (title, units, frequency, seasonal adjustment, observation range, last updated) + its most-recent observations (date + value, newest first; optionally bound the range with start/end YYYY-MM-DD and cap with limit). If you DON'T know the id, pass query to full-text search the catalog (returns ids + titles + units + frequency, most-popular first) — then call again with the seriesId you found. Popular ids: UNRATE (unemployment rate), CPIAUCSL (CPI), PCEPI (PCE price index), GDP / GDPC1 (nominal / real GDP), PAYEMS (nonfarm payrolls), FEDFUNDS (fed funds rate), DGS10 / DGS2 (10yr / 2yr Treasury), T10Y2Y (10y-2y spread), MORTGAGE30US (30yr mortgage), SP500, VIXCLS (VIX), DEXUSEU (USD/EUR), DCOILWTICO (WTI oil), HOUST (housing starts), UMCSENT (consumer sentiment), M2SL (M2 money supply). Each series' units and frequency come back in the metadata so you know how to read the values. Free, public-domain for most series (FRED attribution). Distinct from econ.indicator (a small curated headline set) — this is the FULL catalog. Companion endpoints: econ.fred-releases (when reports are published — the data calendar) and econ.fred-vintage (point-in-time / revised values for honest backtesting).","operationId":"econ_fred","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: seriesId → items = [one series + observations]; query → items = matching series.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"units":{"type":"string"},"unitsShort":{"type":"string"},"frequency":{"type":"string"},"frequencyShort":{"type":"string"},"seasonalAdjustment":{"type":"string"},"lastUpdated":{"type":"string","nullable":true},"observationStart":{"type":"string","nullable":true},"observationEnd":{"type":"string","nullable":true},"popularity":{"type":"number","nullable":true},"notes":{"type":"string","nullable":true},"observations":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"value":{"type":"number"}},"required":["date","value"],"additionalProperties":false}}},"required":["id","title","units","frequency","seasonalAdjustment","lastUpdated","observationStart","observationEnd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.fred","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"seriesId","in":"query","required":false,"description":"Series ID.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"start","in":"query","required":false,"description":"Start.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"end","in":"query","required":false,"description":"End.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/fred-categories":{"get":{"tags":["econ"],"summary":"Browse the Federal Reserve FRED category tree to DISCOVER...","description":"Browse the Federal Reserve FRED category tree to DISCOVER economic series. Pass a categoryId to get that category (name + parent), its child categories, and the most-popular series filed under it (id, title, units, frequency) — then pull the data with econ.fred. Omit categoryId (or pass 0) for the eight top-level categories: Money/Banking/Finance, Population/Employment/Labor, National Accounts, Production & Business Activity, Prices, International Data, U.S. Regional Data, Academic Data. Walk down via each child's id. Free, public-domain (FRED). The structured map of what FRED actually contains — far more reliable than guessing series ids. Companion to econ.fred (fetch/search) and econ.fred-releases (calendar).","operationId":"econ_fred-categories","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{category, children, series}]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"category":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"parentId":{"type":"number","nullable":true}},"required":["id","name","parentId"],"additionalProperties":false,"nullable":true},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"parentId":{"type":"number","nullable":true}},"required":["id","name","parentId"],"additionalProperties":false}},"series":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"units":{"type":"string","nullable":true},"frequency":{"type":"string","nullable":true},"seasonalAdjustment":{"type":"string","nullable":true},"popularity":{"type":"number","nullable":true},"observationStart":{"type":"string","nullable":true},"observationEnd":{"type":"string","nullable":true}},"required":["id","title","units","frequency","seasonalAdjustment","popularity","observationStart","observationEnd"],"additionalProperties":false}}},"required":["category","children","series"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.fred-categories","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"categoryId","in":"query","required":false,"description":"Category ID.","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"seriesLimit","in":"query","required":false,"description":"Series limit.","schema":{"type":"integer","minimum":0,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/fred-regional":{"get":{"tags":["econ"],"summary":"Federal Reserve regional economic data: one snapshot of a...","description":"Federal Reserve regional economic data: one snapshot of a FRED regional series across ALL its geographies (every U.S. state, county, or metro area) for a single period. Pass a regional series id (e.g. WIPCPI = per-capita personal income by state, or a state/county unemployment series) and get each region's name, FIPS region code, value, and per-region FRED series id, plus the group's units, frequency, and available date range. Add a date (YYYY-MM-DD) for a point-in-time cross-section; omit it for the latest. Authoritative St. Louis Fed (GeoFRED) data agents can't recite — per-state income, county unemployment, regional GDP — keyed by exact region codes. Free, public-domain. Companion to econ.fred (national series), econ.fred-categories (discover series ids), and census.demographics (ACS survey).","operationId":"econ_fred-regional","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{seriesId, title, regionType, units, regions:[...]}]; total = region count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"seriesId":{"type":"string"},"title":{"type":"string"},"seriesGroup":{"type":"string"},"regionType":{"type":"string"},"units":{"type":"string"},"frequency":{"type":"string"},"seasonality":{"type":"string"},"asOf":{"type":"string"},"availableDates":{"type":"object","properties":{"min":{"type":"string","nullable":true},"max":{"type":"string","nullable":true}},"required":["min","max"],"additionalProperties":false},"regions":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string"},"code":{"type":"string"},"value":{"type":"number","nullable":true},"seriesId":{"type":"string"}},"required":["region","code","value","seriesId"],"additionalProperties":false}}},"required":["seriesId","title","seriesGroup","regionType","units","frequency","seasonality","asOf","availableDates","regions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.fred-regional","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"seriesId","in":"query","required":true,"description":"A FRED regional series id (e.g. WIPCPI). Resolves to its regional series group.","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"date","in":"query","required":false,"description":"Optional YYYY-MM-DD period for a point-in-time cross-section (default: latest available).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/fred-releases":{"get":{"tags":["econ"],"summary":"The US economic-data release CALENDAR - when official...","description":"The US economic-data release CALENDAR — when official economic reports are published, from the Federal Reserve's FRED. Returns upcoming release dates (date, release name, FRED release id), starting from `from` (default today), ascending. Filter by name to find a specific report's schedule (e.g. name=\"Consumer Price Index\" → the next CPI dates; \"Employment Situation\" → jobs report; \"Gross Domestic Product\"; \"FOMC\"), or by releaseId. Free, public-domain (FRED). Future release dates an LLM cannot possibly know — essential for trading, scheduling, and macro-monitoring agents that need to act around data drops. Pair with econ.fred to pull the actual numbers once a release is out.","operationId":"econ_fred-releases","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = upcoming releases (date asc, filtered, sliced to limit); total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"releaseName":{"type":"string","nullable":true},"releaseId":{"type":"number"}},"required":["date","releaseName","releaseId"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.fred-releases","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"from","in":"query","required":false,"description":"Start of the range.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"releaseId","in":"query","required":false,"description":"Release ID.","schema":{"type":"integer","minimum":1,"maximum":100000}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/fred-vintage":{"get":{"tags":["econ"],"summary":"Point-in-time (vintage) economic data from FRED's ALFRED...","description":"Point-in-time (vintage) economic data from FRED's ALFRED archive — what an economic figure was AS FIRST REPORTED / as known on a past date, before later revisions. Give a seriesId (e.g. GDP, GDPC1, PAYEMS, INDPRO) and an asOf date to get the observations exactly as they stood on that date; omit asOf to get the current (latest-revised) values. Also returns the series' vintage (revision) dates — every date the series was revised. Free, public-domain (FRED). Critical for honest backtesting and macro research: it eliminates look-ahead bias (e.g. GDP for 2020Q1 was first reported far lower than today's revised figure). No LLM and no real-time API gives this — it's the archived state of the data through time. Pair with econ.fred (current series) and econ.fred-releases (release calendar).","operationId":"econ_fred-vintage","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one series at the requested vintage]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"seriesId":{"type":"string"},"title":{"type":"string"},"units":{"type":"string"},"asOf":{"type":"string","nullable":true},"vintageDates":{"type":"array","items":{"type":"string"}},"observations":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"value":{"type":"number"}},"required":["date","value"],"additionalProperties":false}}},"required":["seriesId","title","units","asOf","vintageDates","observations"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.fred-vintage","x-2s-version":null,"x-2s-price":{"usd":0.00168},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001680"},"protocols":[{"x402":{}}]},"parameters":[{"name":"seriesId","in":"query","required":true,"description":"Series ID.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"asOf","in":"query","required":false,"description":"As of.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"start","in":"query","required":false,"description":"Start.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"end","in":"query","required":false,"description":"End.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/indicator":{"get":{"tags":["econ"],"summary":"Latest reading of a curated US macroeconomic indicator...","description":"Latest reading of a curated US macroeconomic indicator, with the prior + year-ago values and YoY % change. Pass indicator for one, or omit for all. Indicators: unemployment-rate, fed-funds-rate, nonfarm-payrolls, jobless-claims, labor-force-participation, real-gdp, gdp-growth, 10y-treasury, 2y-treasury, 3m-treasury, 30y-mortgage, consumer-sentiment, housing-starts, retail-sales, industrial-production, m2, personal-saving-rate — i.e. unemployment rate, fed funds rate, nonfarm payrolls, jobless claims, labor-force participation, real GDP + GDP growth, 2y/3m/10y Treasury yields, 30y mortgage rate, consumer sentiment, housing starts, retail sales, industrial production, M2, personal saving rate. Each result names the FRED series ID + units. Source: BLS/BEA/Fed/Treasury via FRED (St. Louis Fed). For inflation specifically use inflation.rates; for any raw series use bls.series.","operationId":"econ_indicator","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = indicator readings; total = indicators returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"indicator":{"type":"string"},"seriesId":{"type":"string"},"label":{"type":"string"},"units":{"type":"string"},"value":{"type":"number","nullable":true},"asOf":{"type":"string","nullable":true},"previous":{"type":"number","nullable":true},"yearAgo":{"type":"number","nullable":true},"changeYoYPct":{"type":"number","nullable":true,"description":"% change vs year ago (most meaningful for level series; for rate series compare value vs yearAgo directly)."}},"required":["indicator","seriesId","label","units","value","asOf","previous","yearAgo","changeYoYPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.indicator","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"indicator","in":"query","required":false,"description":"Indicator.","schema":{"type":"string","enum":["unemployment-rate","fed-funds-rate","nonfarm-payrolls","jobless-claims","labor-force-participation","real-gdp","gdp-growth","10y-treasury","2y-treasury","3m-treasury","30y-mortgage","consumer-sentiment","housing-starts","retail-sales","industrial-production","m2","personal-saving-rate"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/recession":{"get":{"tags":["econ"],"summary":"Composite US recession-signal dashboard: the NY Fed model's...","description":"Composite US recession-signal dashboard: the NY Fed model's recession probability (12 months ahead, %), the Sahm-rule real-time indicator (≥0.50 signals a recession has begun), and the 10-Year minus 2-Year Treasury spread (negative = inverted, a classic precursor). Returns each gauge with its latest value, date, a triggered/inverted flag, and a plain-language note, plus a count of signals currently flashing. A read of the standard gauges — not a forecast. Source: NY Fed / BLS / US Treasury via FRED.","operationId":"econ_recession","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the recession-signal dashboard]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recessionProbability":{"type":"object","properties":{"value":{"type":"number","nullable":true},"asOf":{"type":"string","nullable":true},"note":{"type":"string"}},"required":["value","asOf","note"],"additionalProperties":false},"sahmRule":{"type":"object","properties":{"value":{"type":"number","nullable":true},"asOf":{"type":"string","nullable":true},"triggered":{"type":"boolean"},"note":{"type":"string"}},"required":["value","asOf","triggered","note"],"additionalProperties":false},"yieldCurve":{"type":"object","properties":{"spread10y2yPct":{"type":"number","nullable":true},"asOf":{"type":"string","nullable":true},"inverted":{"type":"boolean"},"note":{"type":"string"}},"required":["spread10y2yPct","asOf","inverted","note"],"additionalProperties":false},"signalsTriggered":{"type":"integer"}},"required":["recessionProbability","sahmRule","yieldCurve","signalsTriggered"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.recession","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/econ/yield-curve":{"get":{"tags":["econ"],"summary":"Current US Treasury yield curve - the market yield at every...","description":"Current US Treasury yield curve — the market yield at every constant-maturity tenor from 1 month to 30 years (1M, 3M, 6M, 1Y, 2Y, 3Y, 5Y, 7Y, 10Y, 20Y, 30Y), each as a percent as of its latest date. Also returns the 2s10s spread (10Y − 2Y), the 3m10y spread (10Y − 3M), and an inverted flag (true when 2s10s is negative — a classic recession signal). Daily data. Source: US Treasury constant-maturity rates via FRED (St. Louis Fed).","operationId":"econ_yield-curve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = yield points by maturity; meta = spreads + inversion flag.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"maturity":{"type":"string"},"months":{"type":"number"},"seriesId":{"type":"string"},"yield":{"type":"number","nullable":true,"description":"Constant-maturity yield, percent."},"asOf":{"type":"string","nullable":true}},"required":["maturity","months","seriesId","yield","asOf"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"spread2s10s":{"type":"number","nullable":true,"description":"10Y − 2Y, percentage points."},"spread3m10y":{"type":"number","nullable":true,"description":"10Y − 3M, percentage points."},"inverted":{"type":"boolean","description":"True when 2s10s is negative (recession signal)."},"asOf":{"type":"string","nullable":true}},"required":["spread2s10s","spread3m10y","inverted","asOf"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"econ.yield-curve","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edi/ack":{"post":{"tags":["edi"],"summary":"Generate the ANSI ASC X12 997 Functional Acknowledgment for...","description":"Generate the ANSI ASC X12 997 Functional Acknowledgment for a received EDI interchange. POST { edi } with the raw inbound interchange text (the 850/810/856/etc. you received); returns the ready-to-send 997 in meta.ack — sender/receiver mirrored back, delimiters echoed, one ST(997) per inbound functional group with correct AK1 (functional id + group control number), AK2/AK5 per transaction set, and AK9 with accurate included/received/accepted counts. Set status to control the response: A=Accepted (default), E=Accepted with errors, P=Partially accepted, R=Rejected, M/W/X=authentication/security rejection. Deterministic, no external calls. This is the reply leg of EDI: every transaction set you receive is supposed to be acknowledged, and assembling a valid 997 (especially the AK9 counts) is exactly the fiddly envelope bookkeeping agents shouldn't hand-roll.","operationId":"edi_ack","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: meta.ack = the generated 997 text; items = per functional group acknowledged (status + AK9 counts + per-transaction-set response).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"acknowledgedFunctionalGroup":{"type":"string"},"acknowledgedGroupControlNumber":{"type":"string","nullable":true},"status":{"type":"string"},"transactionSetsIncluded":{"type":"integer"},"transactionSetsReceived":{"type":"integer"},"transactionSetsAccepted":{"type":"integer"},"transactionSets":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"controlNumber":{"type":"string","nullable":true},"response":{"type":"string"}},"required":["type","controlNumber","response"],"additionalProperties":false}}},"required":["acknowledgedFunctionalGroup","acknowledgedGroupControlNumber","status","transactionSetsIncluded","transactionSetsReceived","transactionSetsAccepted","transactionSets"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"ack":{"type":"string","description":"The ready-to-send 997 interchange text."},"controlNumber":{"type":"string"},"acknowledges":{"type":"object","properties":{"senderId":{"type":"string","nullable":true},"receiverId":{"type":"string","nullable":true},"interchangeControlNumber":{"type":"string","nullable":true},"functionalGroupCount":{"type":"integer"},"transactionSetCount":{"type":"integer"}},"required":["senderId","receiverId","interchangeControlNumber","functionalGroupCount","transactionSetCount"],"additionalProperties":false},"delimiters":{"type":"object","properties":{"element":{"type":"string"},"component":{"type":"string"},"segment":{"type":"string"}},"required":["element","component","segment"],"additionalProperties":false}},"required":["ack","controlNumber","acknowledges","delimiters"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edi.ack","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"edi":{"type":"string","minLength":106,"maxLength":500000,"description":"Edi."},"status":{"type":"string","enum":["A","E","P","R","M","W","X"],"description":"Filter results by status."},"controlNumber":{"type":"string","maxLength":15,"description":"Control number."}},"required":["edi"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edi/edifact":{"post":{"tags":["edi"],"summary":"Parse a raw UN/EDIFACT document (the B2B EDI format used...","description":"Parse a raw UN/EDIFACT document (the B2B EDI format used across Europe, Asia, logistics and customs — the international counterpart to ANSI X12) into clean, structured JSON. POST { edi } with the raw interchange text. Reads the optional UNA service-string advice to auto-detect delimiters (or applies the UN defaults: component ':', element '+', segment \"'\", release '?'), handles release-character escaping, then returns the interchange envelope (UNB: syntax id, sender/recipient with qualifiers, date/time, control reference, test indicator), and each message with its type decoded (e.g. ORDERS = Purchase Order, INVOIC = Invoice, DESADV = Despatch Advice/ASN, ORDRSP = PO Response, CONTRL = Acknowledgment) plus version/release/agency from the UNH, every segment named (BGM, DTM, NAD, LIN, QTY, MOA, …), and a semantic summary — for an order that's the order number, document/delivery dates, parties (buyer/seller/ship-to with role decoded), and line items (product id + quantity); for an invoice the invoice number, currency, parties and total; for a despatch advice the despatch number, date and package/line counts. Deterministic, no external calls. Turns opaque EDIFACT into something an agent can use without hand-rolling a parser.","operationId":"edi_edifact","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = messages (each decoded + summarized); meta = interchange envelope (UNB) + detected delimiters + counts.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"typeName":{"type":"string"},"reference":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"release":{"type":"string","nullable":true},"agency":{"type":"string","nullable":true},"segmentCount":{"type":"integer"},"summary":{"type":"object","additionalProperties":{},"description":"Type-specific semantic summary (order/invoice number, parties, line items, totals, etc.)."},"segments":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string"},"name":{"type":"string"},"elements":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}},"required":["tag","name","elements"],"additionalProperties":false}}},"required":["type","typeName","reference","version","release","agency","segmentCount","summary","segments"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"interchange":{"type":"object","additionalProperties":{}},"delimiters":{"type":"object","properties":{"component":{"type":"string"},"element":{"type":"string"},"decimal":{"type":"string"},"release":{"type":"string"},"segment":{"type":"string"},"unaPresent":{"type":"boolean"}},"required":["component","element","decimal","release","segment","unaPresent"],"additionalProperties":false},"messageCount":{"type":"integer"},"segmentCount":{"type":"integer"}},"required":["interchange","delimiters","messageCount","segmentCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edi.edifact","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"edi":{"type":"string","minLength":10,"maxLength":500000,"description":"Edi."}},"required":["edi"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edi/edifact-generate":{"post":{"tags":["edi"],"summary":"Generate an outbound UN/EDIFACT document from JSON - the...","description":"Generate an outbound UN/EDIFACT document from JSON — the international counterpart to edi.generate (X12). POST type ('ORDERS' = purchase order or 'INVOIC' = invoice) + senderId, recipientId (with optional qualifiers), documentNumber, optional date (CCYYMMDD), parties (NAD role+name, e.g. BY buyer / SU supplier / IV invoicee), items (quantity, productId, price), and for INVOIC an optional total. Returns the full EDIFACT interchange in meta.edi — a correct UNA/UNB/UNH…UNT/UNZ envelope with BGM, DTM, NAD, LIN/QTY/PRI, MOA/CNT — with proper delimiters and release-character escaping. Deterministic, no external calls. Round-trips through edi.edifact.","operationId":"edi_edifact-generate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items=[{controlRef,segmentCount}]; meta.edi = the generated EDIFACT.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"controlRef":{"type":"string"},"segmentCount":{"type":"integer"}},"required":["controlRef","segmentCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"edi":{"type":"string","description":"The full UN/EDIFACT interchange."}},"required":["edi"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edi.edifact-generate","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["ORDERS","INVOIC"],"description":"Filter results by type."},"senderId":{"type":"string","minLength":1,"maxLength":35,"description":"Sender ID."},"recipientId":{"type":"string","minLength":1,"maxLength":35,"description":"Recipient ID."},"senderQualifier":{"type":"string","minLength":1,"maxLength":4,"description":"Sender qualifier."},"recipientQualifier":{"type":"string","minLength":1,"maxLength":4,"description":"Recipient qualifier."},"documentNumber":{"type":"string","minLength":1,"maxLength":35,"description":"Document number."},"date":{"type":"string","minLength":6,"maxLength":8,"description":"Date in YYYY-MM-DD format."},"parties":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1,"maxLength":3,"description":"Role."},"name":{"type":"string","minLength":1,"maxLength":70,"description":"Name to search for."}},"required":["role","name"],"additionalProperties":false},"maxItems":20,"description":"Parties."},"items":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Quantity."},"productId":{"type":"string","maxLength":35,"description":"Product ID."},"price":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Price."},"idType":{"type":"string","maxLength":3,"description":"ID type."}},"required":["quantity"],"additionalProperties":false},"minItems":1,"maxItems":1000,"description":"Items."},"total":{"type":"number","description":"Total."},"controlRef":{"type":"string","maxLength":14,"description":"Control ref."}},"required":["type","senderId","recipientId","documentNumber","items"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edi/generate":{"post":{"tags":["edi"],"summary":"Generate a ready-to-send ANSI ASC X12 EDI document from...","description":"Generate a ready-to-send ANSI ASC X12 EDI document from structured JSON. POST type ('850' Purchase Order, '810' Invoice, or '856' Ship Notice/ASN) plus senderId, receiverId, documentNumber (PO#/invoice#/shipment id), optional date, parties (N1 loops — role like ST/BT/VN + name), and items (quantity, uom, price, productId). For an 810 you can pass poNumber and total; for an 856 pass poNumber (the PO shipped). Returns the full X12 interchange in meta.edi — correct ISA/GS/ST…SE/GE/IEA envelope, party loops, PO1/IT1 line items (or the 856 HL Shipment→Order→Item hierarchy with LIN/SN1), and CTT/TDS totals (implied 2-decimal). Deterministic, no external calls. The outbound complement to edi.parse and edi.ack: assemble valid EDI envelopes instead of hand-rolling segment terminators and control numbers.","operationId":"edi_generate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: meta.edi = the generated X12 document; items[0] = a summary.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"documentNumber":{"type":"string"},"lineItems":{"type":"integer"}},"required":["type","documentNumber","lineItems"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"edi":{"type":"string","description":"The generated X12 interchange."},"segmentCount":{"type":"integer"},"controlNumber":{"type":"string"}},"required":["edi","segmentCount","controlNumber"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edi.generate","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["850","810","856"],"description":"Filter results by type."},"senderId":{"type":"string","minLength":1,"maxLength":15,"description":"Sender ID."},"receiverId":{"type":"string","minLength":1,"maxLength":15,"description":"Receiver ID."},"senderQualifier":{"type":"string","maxLength":2,"description":"Sender qualifier."},"receiverQualifier":{"type":"string","maxLength":2,"description":"Receiver qualifier."},"documentNumber":{"type":"string","minLength":1,"maxLength":60,"description":"Document number."},"poNumber":{"type":"string","maxLength":60,"description":"Po number."},"date":{"type":"string","maxLength":10,"description":"Date in YYYY-MM-DD format."},"parties":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1,"maxLength":3,"description":"Entity-id code (ST=ship-to, BT=bill-to, VN=vendor, SF=ship-from, …)."},"name":{"type":"string","minLength":1,"maxLength":60,"description":"Name to search for."},"idQualifier":{"type":"string","maxLength":2,"description":"ID qualifier."},"id":{"type":"string","maxLength":80,"description":"Unique identifier of the record to fetch."}},"required":["role","name"],"additionalProperties":false},"maxItems":20,"description":"Parties."},"items":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Quantity."},"uom":{"type":"string","maxLength":2,"description":"Unit of measure (EA, CA, …; default EA)."},"price":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Price."},"productId":{"type":"string","maxLength":48,"description":"Product ID."},"idQualifier":{"type":"string","maxLength":2,"description":"Product id qualifier (VP, UP, BP, …; default VP)."}},"required":["quantity"],"additionalProperties":false},"minItems":1,"maxItems":1000,"description":"Items."},"total":{"type":"number","description":"810 invoice total in USD."},"controlNumber":{"type":"string","maxLength":15,"description":"Control number."},"usage":{"type":"string","enum":["P","T"],"description":"Usage."}},"required":["type","senderId","receiverId","documentNumber","items"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edi/parse":{"post":{"tags":["edi"],"summary":"Parse a raw ANSI ASC X12 EDI document (the format used for...","description":"Parse a raw ANSI ASC X12 EDI document (the format used for B2B purchase orders, invoices, ship notices, etc.) into clean, structured JSON. POST { edi } with the raw interchange text. Auto-detects the delimiters from the ISA envelope, then returns the interchange metadata (sender/receiver/date/control number/test-or-production), each functional group, and each transaction set with its type decoded (e.g. 850 = Purchase Order, 810 = Invoice, 856 = Ship Notice/ASN, 855 = PO Acknowledgment, 997 = Functional Acknowledgment), every segment named (BEG, N1, PO1, …), and a semantic summary — for a PO that's the PO number, dates, parties (ship-to/vendor with address), and line items (qty/uom/price/product id); for an invoice the invoice + PO numbers and total; for an ASN the shipment id and carrier; for a 997 the acknowledged group + status. Deterministic, no external calls. Turns opaque EDI into something an agent can actually use without hand-rolling an X12 parser.","operationId":"edi_parse","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = transaction sets (each decoded + summarized); meta = interchange envelope + detected delimiters + counts.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"functionalCode":{"type":"string"},"functionalName":{"type":"string"},"type":{"type":"string"},"typeName":{"type":"string"},"controlNumber":{"type":"string","nullable":true},"segmentCount":{"type":"integer"},"summary":{"type":"object","additionalProperties":{},"description":"Type-specific semantic summary (PO number, parties, line items, totals, etc.)."},"segments":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string"},"name":{"type":"string"},"elements":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}},"required":["tag","name","elements"],"additionalProperties":false}}},"required":["functionalCode","functionalName","type","typeName","controlNumber","segmentCount","summary","segments"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"interchange":{"type":"object","additionalProperties":{}},"delimiters":{"type":"object","properties":{"element":{"type":"string"},"component":{"type":"string"},"segment":{"type":"string"},"repetition":{"type":"string","nullable":true}},"required":["element","component","segment","repetition"],"additionalProperties":false},"functionalGroupCount":{"type":"integer"},"transactionSetCount":{"type":"integer"},"segmentCount":{"type":"integer"}},"required":["interchange","delimiters","functionalGroupCount","transactionSetCount","segmentCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edi.parse","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"edi":{"type":"string","minLength":106,"maxLength":500000,"description":"Edi."}},"required":["edi"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edu/college-scorecard":{"get":{"tags":["edu"],"summary":"Search US colleges + universities via the Department of...","description":"Search US colleges + universities via the Department of Education College Scorecard API. Filter by free-text name (q), OPE/IPEDS school id, state, city, zip, ownership (1=Public | 2=Private nonprofit | 3=Private for-profit), predominant degree level (0=Not classified | 1=Certificate | 2=Associate | 3=Bachelor | 4=Graduate), enrollment range. Returns a curated field set per school: identity (name, alias, URL, location), classification (Carnegie, locale, religious affiliation, minority-serving designation), latest admissions (admit rate, SAT/ACT midpoints), cost (in-state + out-of-state tuition, total cost of attendance), aid (median debt, federal-loan rate, Pell rate), completion rate, 10-year median earnings, repayment rate, lat/lon. Every accredited US institution. Use perPage + page for pagination; page is 0-indexed.","operationId":"edu_college-scorecard","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = College Scorecard school rows (dotted field names like 'school.name', 'latest.student.size'); total = upstream match count; page = 0-indexed page block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edu.college-scorecard","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"schoolId","in":"query","required":false,"description":"School ID.","schema":{"type":"integer","minimum":1}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"city","in":"query","required":false,"description":"City name to filter by.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"zip","in":"query","required":false,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"ownership","in":"query","required":false,"description":"Ownership.","schema":{"type":"integer"}},{"name":"degreePredominant","in":"query","required":false,"description":"Degree predominant.","schema":{"type":"integer"}},{"name":"minEnrollment","in":"query","required":false,"description":"Min enrollment.","schema":{"type":"integer","minimum":0}},{"name":"maxEnrollment","in":"query","required":false,"description":"Max enrollment.","schema":{"type":"integer","minimum":1}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","maxLength":2000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/edu/school-lookup":{"get":{"tags":["edu"],"summary":"Look up any US public K-12 school (~102k, NCES Common Core...","description":"Look up any US public K-12 school (~102k, NCES Common Core of Data). Search by name (partial), district (LEA name, partial), state (2-letter), city, zip, or exact ncessch (12-digit NCES id). Each school: NCES id, name, district + LEA id, address, phone, lat/lon, school level (1=primary 2=middle 3=high 4=other) and type (1=regular 2=special-ed 3=vocational 4=alternative), charter/magnet/virtual flags, enrollment, teacher FTE, grade span, CCD year. Results ordered by enrollment. Higher-ed sibling: /api/edu/college-scorecard. Public-domain federal data.","operationId":"edu_school-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = US public K-12 schools (NCES CCD rows, enrollment-ordered); total = null (LIKE search returns a capped page, no full match count).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ncessch":{"type":"string"},"name":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"leaid":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"street":{"type":"string","nullable":true},"zip":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true},"schoolLevel":{"type":"number","nullable":true},"schoolType":{"type":"number","nullable":true},"charter":{"type":"boolean","nullable":true},"magnet":{"type":"boolean","nullable":true},"virtual":{"type":"boolean","nullable":true},"enrollment":{"type":"number","nullable":true},"teachersFte":{"type":"number","nullable":true},"lowestGrade":{"type":"number","nullable":true},"highestGrade":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}},"required":["ncessch","name","district","leaid","state","city","street","zip","phone","latitude","longitude","schoolLevel","schoolType","charter","magnet","virtual","enrollment","teachersFte","lowestGrade","highestGrade","year"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"edu.school-lookup","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"district","in":"query","required":false,"description":"District.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"city","in":"query","required":false,"description":"City name to filter by.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"zip","in":"query","required":false,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"ncessch","in":"query","required":false,"description":"Ncessch.","schema":{"type":"string","pattern":"^\\d{12}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/email/validate":{"get":{"tags":["email"],"summary":"Validate an email address and return structured signals...","description":"Validate an email address and return structured signals: RFC syntax validity (isSyntaxValid + reason if not), the normalized address with split local/domain, and boolean flags for isDisposable (throwaway/temp-mail domain), isRoleAccount (info@, support@, admin@, …), and isFreeProvider (gmail/outlook/yahoo/icloud/…). With checkMx (default true) it also reports hasMxRecords — whether the domain publishes MX records, looked up live via DNS-over-HTTPS — plus the MX hosts. IMPORTANT: this is NOT a deliverability or mailbox-existence guarantee (catch-all domains, greylisting, and privacy relays make that impossible to assert from a single lookup); hasMxRecords reflects DNS MX presence only. Useful for signup-flow hygiene, lead scrubbing, and flagging disposable/role addresses before sending.","operationId":"email_validate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [email validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"normalized":{"type":"string","nullable":true},"local":{"type":"string","nullable":true},"domain":{"type":"string","nullable":true},"isSyntaxValid":{"type":"boolean"},"isDisposable":{"type":"boolean"},"isRoleAccount":{"type":"boolean"},"isFreeProvider":{"type":"boolean"},"hasMxRecords":{"type":"boolean","nullable":true,"description":"MX-record presence (not deliverability); null if unchecked/failed."},"mxHosts":{"type":"array","items":{"type":"string"}},"reason":{"type":"string","nullable":true},"note":{"type":"string"}},"required":["email","normalized","local","domain","isSyntaxValid","isDisposable","isRoleAccount","isFreeProvider","hasMxRecords","mxHosts","reason","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"email.validate","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"email","in":"query","required":true,"description":"Email.","schema":{"type":"string","minLength":1,"maxLength":320}},{"name":"checkMx","in":"query","required":false,"description":"Check mx.","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/carbon-intensity-uk":{"get":{"tags":["energy"],"summary":"Great Britain electricity grid carbon intensity (current...","description":"Great Britain electricity grid carbon intensity (current half-hour) from National Grid ESO. Returns the forecast and actual carbon intensity in grams of CO2 per kWh, the qualitative index (very low / low / moderate / high / very high), and the live generation mix by fuel (gas, wind, nuclear, solar, imports, etc.). Free, CC BY / Open Government Licence. Live grid-decarbonisation signal an LLM cannot recall — for energy, sustainability, and demand-shifting agents. Complements our US energy.* set.","operationId":"energy_carbon-intensity-uk","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one current intensity + mix snapshot]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"period":{"type":"object","properties":{"from":{"type":"string","nullable":true},"to":{"type":"string","nullable":true}},"required":["from","to"],"additionalProperties":false},"intensity":{"type":"object","properties":{"forecastGCO2PerKWh":{"type":"number","nullable":true},"actualGCO2PerKWh":{"type":"number","nullable":true},"index":{"type":"string","nullable":true}},"required":["forecastGCO2PerKWh","actualGCO2PerKWh","index"],"additionalProperties":false},"generationMix":{"type":"array","items":{"type":"object","properties":{"fuel":{"type":"string"},"percent":{"type":"number"}},"required":["fuel","percent"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["period","intensity","generationMix","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.carbon-intensity-uk","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/electricity-rates":{"get":{"tags":["energy"],"summary":"Retail electricity price and sales for a US state by...","description":"Retail electricity price and sales for a US state by customer sector (residential, commercial, industrial, transportation, all), monthly, newest first, from EIA. Returns average price (cents/kWh), sales (MWh), revenue ($M), and customer count per month. Public-domain, live-wrap. More granular than energy.prices (which is the national all-sector benchmark only).","operationId":"energy_electricity-rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = monthly retail-rate rows (newest first); total = month count; meta carries state + sector.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string","nullable":true},"priceCentsPerKWh":{"type":"number","nullable":true},"salesMWh":{"type":"number","nullable":true},"revenueMillionUSD":{"type":"number","nullable":true},"customers":{"type":"number","nullable":true}},"required":["period","priceCentsPerKWh","salesMWh","revenueMillionUSD","customers"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"state":{"type":"string"},"sector":{"type":"string"}},"required":["state","sector"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.electricity-rates","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"sector","in":"query","required":false,"description":"Sector.","schema":{"type":"string","enum":["residential","commercial","industrial","transportation","all"]}},{"name":"months","in":"query","required":false,"description":"Months.","schema":{"type":"integer","minimum":1,"maximum":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/fuel-stations":{"get":{"tags":["energy"],"summary":"Locate alternative-fuel stations across the US via NREL...","description":"Locate alternative-fuel stations across the US via NREL Alternative Fuels Data Center. Search by lat/lon + radius (miles), state, or zip. Filter by fuelType (BD=Biodiesel | CNG=Compressed Natural Gas | ELEC=Electric vehicle charging | E85=Ethanol | HY=Hydrogen | LNG=Liquefied Natural Gas | LPG=Propane | RD=Renewable Diesel), status (E=Available | P=Planned | T=Temporarily Unavailable), access (public/private), and EV network. For EV chargers, returns connector types (J1772, CHAdeMO, Tesla, etc.), Level 1/2/DC-fast counts, pricing, and access hours. Indispensable for trip-planning agents, fleet logistics, EV-adoption analysis.","operationId":"energy_fuel-stations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched alternative-fuel stations; total = upstream total result count; meta.stationLocatorUrl = AFDC map link.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"stationLocatorUrl":{"type":"string","nullable":true}},"required":["stationLocatorUrl"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.fuel-stations","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":false,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":false,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius","in":"query","required":false,"description":"Search radius around the given point.","schema":{"type":"number","minimum":0.1,"maximum":500}},{"name":"fuelType","in":"query","required":false,"description":"Fuel type.","schema":{"type":"string"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"zip","in":"query","required":false,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["all","E","P","T"]}},{"name":"accessCode","in":"query","required":false,"description":"Access code.","schema":{"type":"string","enum":["all","public","private"]}},{"name":"network","in":"query","required":false,"description":"Network.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/generation-mix":{"get":{"tags":["energy"],"summary":"Electricity generation mix by fuel type for a US state...","description":"Electricity generation mix by fuel type for a US state (2-letter) or \"US\", from EIA — the most recent monthly net generation (thousand MWh) broken out by fuel (natural gas, coal, nuclear, solar, wind, hydro, etc.) with each fuel's percent share and the all-fuels total. Public-domain, live-wrap. Use for grid carbon-intensity, decarbonization, and energy-policy reasoning. (For benchmark energy prices use energy.prices; for retail electricity rates by state/sector use energy.electricity-rates.)","operationId":"energy_generation-mix","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one generation mix for the location/latest month]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"location":{"type":"string"},"period":{"type":"string","nullable":true},"units":{"type":"string"},"totalThousandMWh":{"type":"number","nullable":true},"fuels":{"type":"array","items":{"type":"object","properties":{"fuelTypeId":{"type":"string"},"fuelType":{"type":"string","nullable":true},"generationThousandMWh":{"type":"number","nullable":true},"sharePct":{"type":"number","nullable":true}},"required":["fuelTypeId","fuelType","generationThousandMWh","sharePct"],"additionalProperties":false}}},"required":["location","period","units","totalThousandMWh","fuels"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.generation-mix","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"location","in":"query","required":true,"description":"Location.","schema":{"type":"string","minLength":2,"maxLength":3}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/prices":{"get":{"tags":["energy"],"summary":"US energy benchmark prices from the EIA (Energy Information...","description":"US energy benchmark prices from the EIA (Energy Information Administration) open data API. Omit series for a one-call snapshot of the latest value of every benchmark; pass series for its recent time series (newest first). Benchmarks: wti_crude / brent_crude ($/barrel), henry_hub_gas ($/MMBtu), gasoline_regular / diesel ($/gallon), electricity_retail (cents/kWh). Each observation has date, value, units, and frequency. Public-domain US government data.","operationId":"energy_prices","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = energy-price observations (snapshot = latest per benchmark; series = recent observations newest-first); meta.mode + meta.query describe the request.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"series":{"type":"string"},"label":{"type":"string"},"date":{"type":"string","nullable":true},"value":{"type":"number","nullable":true},"units":{"type":"string"},"frequency":{"type":"string"}},"required":["series","label","date","value","units","frequency"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["snapshot","series"]},"query":{"type":"object","properties":{"series":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["series","limit"],"additionalProperties":false}},"required":["mode","query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.prices","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"series","in":"query","required":false,"description":"Optional benchmark id. Omit for a snapshot of all benchmarks. One of: wti_crude, brent_crude, henry_hub_gas, gasoline_regular, diesel, electricity_retail.","schema":{"type":"string","enum":["wti_crude","brent_crude","henry_hub_gas","gasoline_regular","diesel","electricity_retail"]}},{"name":"limit","in":"query","required":false,"description":"Observations to return in single-series mode (1-100). Default 12. Ignored in snapshot mode.","schema":{"type":"integer","minimum":1,"maximum":100,"default":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/solar-forecast":{"get":{"tags":["energy"],"summary":"Solar irradiance + PV-yield forecast for any coordinate...","description":"Solar irradiance + PV-yield forecast for any coordinate (free/keyless, global). Returns a daily 1-16 day forecast: GHI (kWh/m²), peak sun hours, sunshine hours, and estimated yield per kWp of panels (at a 0.75 performance ratio). For rooftop-solar planning, agrivoltaics, and EV-charge scheduling. Complements energy.solar-resource (NREL long-run averages, US).","operationId":"energy_solar-forecast","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ location + daily solar forecast }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"string","nullable":true},"performanceRatio":{"type":"number"},"days":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"ghiKwhPerM2":{"type":"number","nullable":true},"peakSunHours":{"type":"number","nullable":true},"sunshineHours":{"type":"number","nullable":true},"estYieldKwhPerKwp":{"type":"number","nullable":true}},"required":["date","ghiKwhPerM2","peakSunHours","sunshineHours","estYieldKwhPerKwp"],"additionalProperties":false}}},"required":["latitude","longitude","timezone","performanceRatio","days"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.solar-forecast","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"latitude","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"longitude","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"days","in":"query","required":false,"description":"Look-back window, in days.","schema":{"type":"integer","minimum":1,"maximum":16}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/solar-resource":{"get":{"tags":["energy"],"summary":"Get average solar resource estimates for any...","description":"Get average solar resource estimates for any latitude/longitude via NREL. Returns annual + monthly averages for: Direct Normal Irradiance (DNI, kWh/m²/day — solar concentrators), Global Horizontal Irradiance (GHI, kWh/m²/day — flat-plate panels), and Tilted-At-Latitude irradiance (optimal fixed-panel orientation). Sourced from NREL National Solar Radiation Database (NSRDB). Useful for rooftop solar feasibility, off-grid design, and renewable-energy modeling.","operationId":"energy_solar-resource","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one solar-resource reading for the point] (annual + monthly DNI/GHI/tilted irradiance); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"outputs":{"type":"object","properties":{"directNormalIrradianceKWhM2Day":{"type":"object","properties":{"annual":{"type":"number","nullable":true},"monthly":{"type":"object","additionalProperties":{"type":"number"}}},"required":["annual","monthly"],"additionalProperties":false},"globalHorizontalIrradianceKWhM2Day":{"type":"object","properties":{"annual":{"type":"number","nullable":true},"monthly":{"type":"object","additionalProperties":{"type":"number"}}},"required":["annual","monthly"],"additionalProperties":false},"tiltedAtLatitudeKWhM2Day":{"type":"object","properties":{"annual":{"type":"number","nullable":true},"monthly":{"type":"object","additionalProperties":{"type":"number"}}},"required":["annual","monthly"],"additionalProperties":false}},"required":["directNormalIrradianceKWhM2Day","globalHorizontalIrradianceKWhM2Day","tiltedAtLatitudeKWhM2Day"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["lat","lon","outputs","sources","warnings"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.solar-resource","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/energy/utility-rates":{"get":{"tags":["energy"],"summary":"Which electric utility serves a US latitude/longitude, and...","description":"Which electric utility serves a US latitude/longitude, and a summary of its published rate plans, from the OpenEI Utility Rate Database (URDB, CC0). Each plan returns the utility, rate name, customer sector, EIA utility id, fixed monthly charge, the first-tier energy rate ($/kWh), and a link to the full tariff. Use for solar/EV/storage economics, bill estimation, and \"who is my utility\" lookups. (For average state retail prices use energy.electricity-rates.)","operationId":"energy_utility-rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [serving utilities + rate-plan summaries for the point]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"utilities":{"type":"array","items":{"type":"string"}},"plans":{"type":"array","items":{"type":"object","properties":{"rateName":{"type":"string","nullable":true},"utility":{"type":"string","nullable":true},"sector":{"type":"string","nullable":true},"eiaId":{"type":"string","nullable":true},"fixedChargeAmount":{"type":"number","nullable":true},"fixedChargeUnits":{"type":"string","nullable":true},"energyRateUSDPerKWh":{"type":"number","nullable":true},"effectiveDate":{"type":"string","nullable":true},"uri":{"type":"string","nullable":true}},"required":["rateName","utility","sector","eiaId","fixedChargeAmount","fixedChargeUnits","energyRateUSDPerKWh","effectiveDate","uri"],"additionalProperties":false}}},"required":["lat","lon","utilities","plans"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"energy.utility-rates","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/factcheck/search":{"get":{"tags":["factcheck"],"summary":"Search the global corpus of published fact-checks...","description":"Search the global corpus of published fact-checks (ClaimReview) by free-text claim. Returns matching claims with the claimant, claim date, and each fact-check review's verdict (textualRating, e.g. \"False\", \"Misleading\", \"True\"), the publisher (PolitiFact, Snopes, FactCheck.org, Reuters Fact Check, AFP, …), the review URL, and review date. Covers every topic — politics, health, science, viral and misinformation claims. Optional language, recency (maxAgeDays), and publisher-site filters. Aggregated by Google from publishers' schema.org ClaimReview data. Use it to check whether a claim has been independently fact-checked and how it was rated, rather than asserting from training data.","operationId":"factcheck_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching claims, each with its fact-check reviews + verdicts.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","nullable":true,"description":"The claim being fact-checked."},"claimant":{"type":"string","nullable":true,"description":"Who made the claim."},"claimDate":{"type":"string","nullable":true,"description":"When the claim was made (ISO 8601)."},"reviews":{"type":"array","items":{"type":"object","properties":{"publisher":{"type":"string","nullable":true,"description":"Fact-checking publisher name."},"publisherSite":{"type":"string","nullable":true,"description":"Publisher site domain."},"url":{"type":"string","nullable":true,"description":"URL of the fact-check article."},"title":{"type":"string","nullable":true,"description":"Title of the fact-check."},"textualRating":{"type":"string","nullable":true,"description":"Verdict, e.g. False / Misleading / True."},"reviewDate":{"type":"string","nullable":true,"description":"When the review was published (ISO 8601)."},"languageCode":{"type":"string","nullable":true,"description":"Language of the review."}},"required":["publisher","publisherSite","url","title","textualRating","reviewDate","languageCode"],"additionalProperties":false},"description":"Fact-check reviews of this claim."}},"required":["text","claimant","claimDate","reviews"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string"},"count":{"type":"integer"}},"required":["query","count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"factcheck.search","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":true,"description":"Free-text claim to search the fact-check corpus for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"language","in":"query","required":false,"description":"BCP-47 language code (e.g. en, es) to restrict results.","schema":{"type":"string","minLength":2,"maxLength":8}},{"name":"maxAgeDays","in":"query","required":false,"description":"Only return reviews published within this many days.","schema":{"type":"integer","minimum":1,"maximum":3650}},{"name":"publisher","in":"query","required":false,"description":"Restrict to a publisher site (e.g. factcheck.org, politifact.com).","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Max claims to return (1–50, default 10).","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/feedback/send":{"post":{"tags":["feedback"],"summary":"Send a message straight to the 2s team.","description":"Send a message straight to the 2s team. POST { message } (required) plus optional subject, name, and from (your email — set as the reply-to + shown as the sender so the team can get back to you). Delivers your message by email to the 2s maintainers — use it for feedback, bug reports, endpoint requests, or to get in touch. Flat $0.10 per send; the payment keeps the channel spam-free. The recipient is fixed (the 2s team), so this is a one-way contact channel, not a general mailer. Returns { sent, id }. Trial calls are not accepted — this endpoint always requires payment.","operationId":"feedback_send","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ sent, id, recipient }]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"sent":{"type":"boolean"},"id":{"type":"string","description":"Provider message id."},"recipient":{"type":"string","description":"Where it was delivered."}},"required":["sent","id","recipient"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{},"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"feedback.send","x-2s-version":null,"x-2s-price":{"usd":0.1},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":1,"maxLength":5000,"description":"Message body to send to the 2s team."},"subject":{"type":"string","maxLength":200,"description":"Optional subject line."},"name":{"type":"string","maxLength":120,"description":"Optional name to attribute the message to."},"from":{"type":"string","format":"email","maxLength":254,"description":"Your email — set as reply-to + shown as the sender."}},"required":["message"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/amortize":{"get":{"tags":["finance"],"summary":"Compute a loan or mortgage amortization schedule.","description":"Compute a loan or mortgage amortization schedule. Pass principal, annualRatePct (e.g. 6.5), and the term as termMonths or termYears; optional extraMonthly adds extra principal each month (shortening the term). Returns the fixed monthly payment, total interest, total paid, the actual payoff month count, and the full month-by-month schedule (each row: payment, principal, interest, remaining balance). Handles the 0% case and trims the final payment exactly. Deterministic — the ground-truth answer for a loan/mortgage/auto-finance question instead of an LLM approximating compound interest. No external calls.","operationId":"finance_amortize","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [amortization result with full schedule]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"principal":{"type":"number"},"annualRatePct":{"type":"number"},"termMonths":{"type":"integer"},"monthlyRate":{"type":"number"},"monthlyPayment":{"type":"number"},"extraMonthly":{"type":"number"},"payoffMonths":{"type":"integer"},"totalInterest":{"type":"number"},"totalPaid":{"type":"number"},"schedule":{"type":"array","items":{"type":"object","properties":{"month":{"type":"integer"},"payment":{"type":"number"},"principal":{"type":"number"},"interest":{"type":"number"},"balance":{"type":"number"}},"required":["month","payment","principal","interest","balance"],"additionalProperties":false}}},"required":["principal","annualRatePct","termMonths","monthlyRate","monthlyPayment","extraMonthly","payoffMonths","totalInterest","totalPaid","schedule"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.amortize","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"principal","in":"query","required":true,"description":"Principal.","schema":{"type":"number"}},{"name":"annualRatePct","in":"query","required":true,"description":"Annual rate pct.","schema":{"type":"number"}},{"name":"termMonths","in":"query","required":false,"description":"Term months.","schema":{"type":"integer","minimum":1,"maximum":1200}},{"name":"termYears","in":"query","required":false,"description":"Term years.","schema":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":100}},{"name":"extraMonthly","in":"query","required":false,"description":"Extra monthly.","schema":{"type":"number","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/bank-id-resolve":{"get":{"tags":["finance"],"summary":"Resolve a bank / financial institution across identifier...","description":"Resolve a bank / financial institution across identifier systems. Give exactly one of bic (SWIFT/BIC), lei, or fdic_cert and get the others back: LEI, every ISO 9362 BIC the institution registers, the FDIC institution record (when matched), jurisdiction, and a canonical name. The BIC<->LEI bridge is authoritative and live from GLEIF (the LEI record carries the institution BIC list, CC0); anchoring on an FDIC certificate returns the FDIC BankFind record and best-effort name-matches it to a GLEIF LEI (flagged via bridge). There is no free FDIC-cert<->BIC table, so the FDIC<->GLEIF link is name-match only -- per-source status + bridge make any partial resolve explicit. Sources: GLEIF (CC0) + FDIC BankFind (US public domain).","operationId":"finance_bank-id-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one resolved institution with LEI, BICs, FDIC record + per-source status]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"resolvedFrom":{"type":"string","enum":["bic","lei","fdic_cert"]},"name":{"type":"string","nullable":true},"lei":{"type":"string","nullable":true},"leiName":{"type":"string","nullable":true},"jurisdiction":{"type":"string","nullable":true},"bics":{"type":"array","items":{"type":"string"},"description":"All ISO 9362 BICs GLEIF associates with the LEI."},"fdic":{"type":"object","properties":{"cert":{"type":"string"},"name":{"type":"string"},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"active":{"type":"boolean"}},"required":["cert","name","city","state","active"],"additionalProperties":false,"nullable":true},"bridge":{"type":"string","enum":["bic-to-lei","direct-lei","fdic-name-match","partial","none"]},"sources":{"type":"object","properties":{"gleif":{"type":"string"},"fdic":{"type":"string"}},"required":["gleif","fdic"],"additionalProperties":false}},"required":["resolvedFrom","name","lei","leiName","jurisdiction","bics","fdic","bridge","sources"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.bank-id-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bic","in":"query","required":false,"description":"ISO 9362 SWIFT/BIC, 8 or 11 chars, e.g. BOFAUS3N.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{8}([A-Za-z0-9]{3})?$"}},{"name":"lei","in":"query","required":false,"description":"20-char LEI.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$"}},{"name":"fdic_cert","in":"query","required":false,"description":"FDIC certificate number, e.g. 3511.","schema":{"type":"string","pattern":"^\\d{1,7}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/bin":{"get":{"tags":["finance"],"summary":"Identify a payment card from its BIN/IIN (Bank...","description":"Identify a payment card from its BIN/IIN (Bank Identification Number — the leading 6-8 digits). Pass the BIN or the first digits of a card number and get the card brand (Visa, Mastercard, …), card type (debit/credit), category, issuing bank, and country (ISO alpha-2 + name). Longest-prefix match against an open community dataset (CC-BY). The BIN identifies the issuer/brand/country only — never the cardholder or account number. For payment routing, fraud checks, and checkout UX.","operationId":"finance_bin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one BIN result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"input":{"type":"string"},"matchedBin":{"type":"string","nullable":true}},"required":["input","matchedBin"],"additionalProperties":false},"found":{"type":"boolean"},"bin":{"type":"string","nullable":true},"brand":{"type":"string","nullable":true},"cardType":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"issuer":{"type":"string","nullable":true},"countryAlpha2":{"type":"string","nullable":true},"countryName":{"type":"string","nullable":true},"bankUrl":{"type":"string","nullable":true},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","found","bin","brand","cardType","category","issuer","countryAlpha2","countryName","bankUrl","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.bin","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bin","in":"query","required":true,"description":"BIN/IIN or leading card digits.","schema":{"type":"string","minLength":6,"maxLength":19}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/central-bank-rates":{"get":{"tags":["finance"],"summary":"Headline central-bank policy/benchmark rates side-by-side...","description":"Headline central-bank policy/benchmark rates side-by-side in one call, normalized: US (Fed effective funds rate), Euro area (ECB deposit facility rate), Japan (BoJ call-money benchmark), United Kingdom (SONIA, which tracks the BoE Bank Rate). Each result names the bank, country, the rate, the as-of date, the FRED series id, and a label stating exactly which instrument it is (banks don't all publish the same policy instrument). Pass bank to filter (one of: fed, ecb, boj, boe), or omit for all. Source: FRED (St. Louis Fed).","operationId":"finance_central-bank-rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = central-bank rates (bank, country, code, rate, date, seriesId, label); total = banks returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"bank":{"type":"string"},"country":{"type":"string"},"code":{"type":"string"},"rate":{"type":"number","nullable":true},"date":{"type":"string","nullable":true},"seriesId":{"type":"string"},"label":{"type":"string"}},"required":["bank","country","code","rate","date","seriesId","label"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.central-bank-rates","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bank","in":"query","required":false,"description":"Bank code to filter. One of: fed, ecb, boj, boe. Omit for all.","schema":{"type":"string","enum":["fed","ecb","boj","boe"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/cik-ticker":{"get":{"tags":["finance"],"summary":"Resolve SEC CIK <-> ticker in both directions.","description":"Resolve SEC CIK <-> ticker in both directions. Pass a ticker to get its CIK; pass a CIK to get every ticker the issuer has (each share class, e.g. GOOG + GOOGL), each with its listing exchange (Nasdaq, NYSE, etc.) and the canonical company name. The CIK is the key to everything in EDGAR -- filings, XBRL facts, Form 4 insider trades, 13F holdings -- so this is the join that turns a ticker an agent has into the identifier EDGAR actually indexes by (and back). Data: SEC company_tickers_exchange.json (US public domain), cached and refreshed daily. Distinct from finance.security-resolve, which also crosses into FIGI/LEI/ISIN; this one is the focused, exchange-aware CIK<->ticker map.","operationId":"finance_cik-ticker","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one issuer with cik, name, and all tickers+exchanges]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"resolvedFrom":{"type":"string","enum":["cik","ticker"]},"cik":{"type":"string","description":"10-digit zero-padded SEC CIK."},"name":{"type":"string","description":"Canonical issuer name (SEC)."},"tickers":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"exchange":{"type":"string","nullable":true}},"required":["ticker","exchange"],"additionalProperties":false}}},"required":["resolvedFrom","cik","name","tickers"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.cik-ticker","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"cik","in":"query","required":false,"description":"SEC CIK, leading zeros optional, e.g. 320193 or 0000320193.","schema":{"type":"string","minLength":1,"maxLength":13}},{"name":"ticker","in":"query","required":false,"description":"US stock ticker, e.g. AAPL or GOOGL.","schema":{"type":"string","minLength":1,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/company-facts":{"get":{"tags":["finance"],"summary":"Curated XBRL financial metrics for a US public company by...","description":"Curated XBRL financial metrics for a US public company by stock ticker. Pulls SEC EDGAR's companyfacts JSON (per-CIK XBRL filings) and extracts a top-line set of ~15 financial metrics with their most recent annual + quarterly values. Each metric returns: end date, start date (or null for balance-sheet snapshots), value, fiscal year/period, originating form (10-K/10-Q), and filed date. Available metric keys (pass any comma-separated subset via the metrics param, or omit to get all): revenue, grossProfit, operatingIncome, netIncome, eps, epsDiluted, rdExpense, totalAssets, totalLiabilities, stockholdersEquity, cash, longTermDebt, operatingCashFlow, capex, sharesOutstanding. Backed by SEC.gov; underlying data is public-domain US government records.","operationId":"finance_company-facts","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = curated XBRL metric series (~15 top-line financial facts, each with recent annual + quarterly history); meta = company identity + query echo. For fundamentals + filings + insider trades merged by ticker in one call, see /api/finance/company-profile.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"concept":{"type":"string"},"label":{"type":"string"},"namespace":{"type":"string"},"unit":{"type":"string"},"annual":{"type":"array","items":{"type":"object","properties":{"end":{"type":"string"},"start":{"type":"string","nullable":true},"val":{"type":"number"},"fiscalYear":{"type":"integer"},"fiscalPeriod":{"type":"string"},"form":{"type":"string"},"filed":{"type":"string"}},"required":["end","start","val","fiscalYear","fiscalPeriod","form","filed"],"additionalProperties":false}},"quarterly":{"type":"array","items":{"type":"object","properties":{"end":{"type":"string"},"start":{"type":"string","nullable":true},"val":{"type":"number"},"fiscalYear":{"type":"integer"},"fiscalPeriod":{"type":"string"},"form":{"type":"string"},"filed":{"type":"string"}},"required":["end","start","val","fiscalYear","fiscalPeriod","form","filed"],"additionalProperties":false}}},"required":["key","concept","label","namespace","unit","annual","quarterly"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"ticker":{"type":"string"},"metrics":{"type":"string","nullable":true},"annualLimit":{"type":"number"},"quarterlyLimit":{"type":"number"}},"required":["ticker","metrics","annualLimit","quarterlyLimit"],"additionalProperties":false},"cik":{"type":"string"},"ticker":{"type":"string"},"entityName":{"type":"string"}},"required":["query","cik","ticker","entityName"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.company-facts","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US stock ticker (case-insensitive). Examples: AAPL, GOOGL, BRK.B.","schema":{"type":"string","minLength":1,"maxLength":10,"pattern":"^[A-Za-z][A-Za-z0-9.-]{0,9}$"}},{"name":"metrics","in":"query","required":false,"description":"Comma-separated subset of metric keys to return. Available: revenue, grossProfit, operatingIncome, netIncome, eps, epsDiluted, rdExpense, totalAssets, totalLiabilities, stockholdersEquity, cash, longTermDebt, operatingCashFlow, capex, sharesOutstanding. Omit to get all ~15.","schema":{"type":"string","minLength":1,"maxLength":500,"pattern":"^[a-zA-Z]+(,[a-zA-Z]+)*$"}},{"name":"annualLimit","in":"query","required":false,"description":"Max annual (FY) values per metric, most recent first. Default 4, max 20.","schema":{"type":"integer","minimum":1,"maximum":20,"default":4}},{"name":"quarterlyLimit","in":"query","required":false,"description":"Max quarterly (Q1-Q4) values per metric, most recent first. Default 4, max 20. Pass 0 to skip quarterly entirely.","schema":{"type":"integer","minimum":0,"maximum":20,"default":4}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/company-profile":{"get":{"tags":["finance"],"summary":"Company 360 - a US public company's SEC picture in one call...","description":"Company 360 — a US public company's SEC picture in one call by ticker. Merges three SEC sources: recent filings (10-K/10-Q/8-K and all form types, with links), curated XBRL fundamentals (revenue, net income, EPS, assets, etc. — annual + quarterly series), and recent insider transactions (Form 4 buys/sells by officers & directors). Each section reports found/error independently. Equity research, due diligence, monitoring. Pass ticker (required); optional formType filters the filings section, limit caps each list. Individual sources: /api/finance/sec-filings, /api/finance/company-facts, /api/finance/insider-trades.","operationId":"finance_company-profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ticker":{"type":"string"},"filings":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number","nullable":true},"filings":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","filings"],"additionalProperties":false},"fundamentals":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"entityName":{"type":"string","nullable":true},"metrics":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","entityName","metrics"],"additionalProperties":false},"insiderTrades":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"cik":{"type":"string","nullable":true},"count":{"type":"number","nullable":true},"filings":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","cik","count","filings"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["ticker","filings","fundamentals","insiderTrades","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.company-profile","x-2s-version":null,"x-2s-price":{"usd":0.00576},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005760"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"Ticker.","schema":{"type":"string","minLength":1,"maxLength":8}},{"name":"formType","in":"query","required":false,"description":"Form type.","schema":{"type":"string","maxLength":20}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/figi":{"get":{"tags":["finance"],"summary":"Map a security identifier to its FIGI (Financial Instrument...","description":"Map a security identifier to its FIGI (Financial Instrument Global Identifier) and metadata via OpenFIGI. Give an idType (ISIN, CUSIP, SEDOL, TICKER, FIGI, COMMON, WKN, CINS — or a raw OpenFIGI ID_* type) and idValue, optionally narrowed by exchCode (e.g. US, LN) or currency. Returns each matching listing with its FIGI, composite FIGI (per-country grouping), share-class FIGI (cross-country grouping), name, ticker, exchange code, security type, market sector, and description. Free, open symbology (Bloomberg OpenFIGI; FIGI is an open OMG/ANNA standard). The canonical \"what is this security and what are its identifiers across exchanges\" lookup — for trading, reference-data, and portfolio agents.","operationId":"finance_figi","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching listings (sliced to limit); total = full match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"figi":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"exchCode":{"type":"string","nullable":true},"compositeFIGI":{"type":"string","nullable":true},"shareClassFIGI":{"type":"string","nullable":true},"securityType":{"type":"string","nullable":true},"securityType2":{"type":"string","nullable":true},"marketSector":{"type":"string","nullable":true},"securityDescription":{"type":"string","nullable":true}},"required":["figi","name","ticker","exchCode","compositeFIGI","shareClassFIGI","securityType","securityType2","marketSector","securityDescription"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.figi","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"idType","in":"query","required":true,"description":"ID type.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"idValue","in":"query","required":true,"description":"ID value.","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"exchCode","in":"query","required":false,"description":"Exch code.","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"currency","in":"query","required":false,"description":"Currency.","schema":{"type":"string","minLength":3,"maxLength":3}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/figi-search":{"get":{"tags":["finance"],"summary":"Free-text search for securities across global exchanges via...","description":"Free-text search for securities across global exchanges via OpenFIGI. Give a query (company name, ticker, description) and optionally narrow by exchCode (e.g. US), securityType, or marketSector (Equity, Corp, Govt, Mtge, Muni, Pfd, Comdty, Index, Curncy). Returns relevance-ranked matches with FIGI, composite/share-class FIGI, name, ticker, exchange, security type, market sector, and description, plus a `next` cursor for paging (pass it back as start). Free, open symbology (Bloomberg OpenFIGI). Distinct from finance.figi (exact identifier → FIGI): this is discovery by name/keyword.","operationId":"finance_figi-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching securities; total = returned count; meta.next = pagination cursor.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"figi":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"exchCode":{"type":"string","nullable":true},"compositeFIGI":{"type":"string","nullable":true},"shareClassFIGI":{"type":"string","nullable":true},"securityType":{"type":"string","nullable":true},"securityType2":{"type":"string","nullable":true},"marketSector":{"type":"string","nullable":true},"securityDescription":{"type":"string","nullable":true}},"required":["figi","name","ticker","exchCode","compositeFIGI","shareClassFIGI","securityType","securityType2","marketSector","securityDescription"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.figi-search","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"exchCode","in":"query","required":false,"description":"Exch code.","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"securityType","in":"query","required":false,"description":"Security type.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"marketSector","in":"query","required":false,"description":"Market sector.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"start","in":"query","required":false,"description":"Start.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/form-144":{"get":{"tags":["finance"],"summary":"SEC Form 144 filings - notices of PROPOSED insider stock...","description":"SEC Form 144 filings — notices of PROPOSED insider stock sales (intent to sell restricted/control shares), newest first, via EDGAR full-text search. Market-wide by default, or filter by ticker/company/keyword (q). Each: filer + issuer names, filing date, accession, CIKs, and a filing URL. The heads-up before a Form 4 confirms the sale. Complements finance.insider-trades.","operationId":"finance_form-144","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = Form 144 filings; meta.total = upstream match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"names":{"type":"array","items":{}},"fileDate":{"nullable":true},"form":{},"accession":{"type":"string","nullable":true},"ciks":{"type":"array","items":{"type":"string"}},"url":{"type":"string","nullable":true}},"required":["names","accession","ciks","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total":{"type":"number"}},"required":["total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.form-144","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Optional ticker/company/keyword filter, e.g. NVDA or \"Shopify\".","schema":{"type":"string","maxLength":120}},{"name":"startDate","in":"query","required":false,"description":"Start of the date range (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"endDate","in":"query","required":false,"description":"End of the date range (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/ifsc-india":{"get":{"tags":["finance"],"summary":"Indian bank branch lookup by IFSC code (the 11-character...","description":"Indian bank branch lookup by IFSC code (the 11-character Indian Financial System Code identifying a bank branch). Returns the bank name and code, branch, centre, district, state, city, full address, contact number, MICR code, and which payment rails the branch supports (IMPS, RTGS, NEFT, UPI). Free, open data (Razorpay / RBI directory). Deterministic bank-branch reference for payments, remittance, and KYC validation in India.","operationId":"finance_ifsc-india","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one branch] (or [] if not found); total = 1 or 0.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ifsc":{"type":"string","nullable":true},"bank":{"type":"string","nullable":true},"bankCode":{"type":"string","nullable":true},"branch":{"type":"string","nullable":true},"centre":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"contact":{"type":"string","nullable":true},"micr":{"type":"string","nullable":true},"imps":{"type":"boolean","nullable":true},"rtgs":{"type":"boolean","nullable":true},"neft":{"type":"boolean","nullable":true},"upi":{"type":"boolean","nullable":true}},"required":["ifsc","bank","bankCode","branch","centre","district","state","city","address","contact","micr","imps","rtgs","neft","upi"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.ifsc-india","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ifsc","in":"query","required":true,"description":"11-character IFSC code.","schema":{"type":"string","minLength":11,"maxLength":11}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/insider-trades":{"get":{"tags":["finance"],"summary":"Recent SEC Form 4 insider transactions for a US public...","description":"Recent SEC Form 4 insider transactions for a US public company by ticker. Returns parsed transactions: insider name + relationship (director, officer/title, 10%+ owner), transaction date, SEC code (P=purchase, S=sale, A=grant, D=disposition, M=exercise, F=tax-withholding, G=gift), security title, shares, price/share, total USD value, post-transaction balance, direct vs indirect ownership. Each filing pulled separately and parsed from raw XML — bounded by limit (1-10, default 5). Backed by SEC.gov; underlying Form 4 filings are public records. For insider trades + filings + fundamentals merged by ticker in one call, see /api/finance/company-profile.","operationId":"finance_insider-trades","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = parsed Form 4 filings (owner relationship + per-transaction details); meta = issuer identity + query echo. total is null (items is the fetched window, not the issuer's full Form 4 history).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"accessionNumber":{"type":"string"},"filingDate":{"type":"string"},"periodOfReport":{"type":"string","nullable":true},"formXmlUrl":{"type":"string","format":"uri"},"documentUrl":{"type":"string","format":"uri"},"reportingOwner":{"type":"object","properties":{"cik":{"type":"string","nullable":true},"name":{"type":"string"},"isDirector":{"type":"boolean"},"isOfficer":{"type":"boolean"},"officerTitle":{"type":"string","nullable":true},"isTenPercentOwner":{"type":"boolean"},"isOther":{"type":"boolean"}},"required":["cik","name","isDirector","isOfficer","officerTitle","isTenPercentOwner","isOther"],"additionalProperties":false},"transactions":{"type":"array","items":{"type":"object","properties":{"securityTitle":{"type":"string"},"transactionDate":{"type":"string","nullable":true},"code":{"type":"string","nullable":true},"acquiredOrDisposed":{"type":"string","enum":["A","D"],"nullable":true},"shares":{"type":"number","nullable":true},"pricePerShare":{"type":"number","nullable":true},"totalValueUsd":{"type":"number","nullable":true},"sharesOwnedFollowing":{"type":"number","nullable":true},"ownership":{"type":"string","enum":["D","I"],"nullable":true},"isDerivative":{"type":"boolean"}},"required":["securityTitle","transactionDate","code","acquiredOrDisposed","shares","pricePerShare","totalValueUsd","sharesOwnedFollowing","ownership","isDerivative"],"additionalProperties":false}}},"required":["accessionNumber","filingDate","periodOfReport","formXmlUrl","documentUrl","reportingOwner","transactions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"ticker":{"type":"string"},"limit":{"type":"number"}},"required":["ticker","limit"],"additionalProperties":false},"cik":{"type":"string"},"ticker":{"type":"string"},"issuerName":{"type":"string"}},"required":["query","cik","ticker","issuerName"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.insider-trades","x-2s-version":null,"x-2s-price":{"usd":0.0072},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US stock ticker (case-insensitive). Examples: AAPL, GOOGL, TSLA.","schema":{"type":"string","minLength":1,"maxLength":10,"pattern":"^[A-Za-z][A-Za-z0-9.-]{0,9}$"}},{"name":"limit","in":"query","required":false,"description":"Max Form 4 filings to fetch + parse (1-10). Each is an extra upstream call so we bound this tight. Default 5.","schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/mortgage-pulse":{"get":{"tags":["finance"],"summary":"Packaged US mortgage & housing-rate snapshot in one call...","description":"Packaged US mortgage & housing-rate snapshot in one call: latest 30-year and 15-year fixed mortgage rates, the 10-year Treasury yield (which mortgage rates track), the effective federal funds rate, the median sales price of houses sold, and housing starts. Each metric carries its value, the date it is as-of, a unit, and a plain-English label. Metrics: mortgage30yr, mortgage15yr, treasury10yr, fedFunds, medianSalePrice, housingStarts. No parameters. Source: FRED (St. Louis Fed) — series MORTGAGE30US, MORTGAGE15US, DGS10, FEDFUNDS, MSPUS, HOUST.","operationId":"finance_mortgage-pulse","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one snapshot object with asOf (most recent observation date) and metrics[] (each: metric, seriesId, label, unit, value, date)]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"asOf":{"type":"string","nullable":true},"metrics":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"string"},"seriesId":{"type":"string"},"label":{"type":"string"},"unit":{"type":"string"},"value":{"type":"number","nullable":true},"date":{"type":"string","nullable":true}},"required":["metric","seriesId","label","unit","value","date"],"additionalProperties":false}}},"required":["asOf","metrics"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.mortgage-pulse","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/sec-filings":{"get":{"tags":["finance"],"summary":"Recent SEC EDGAR filings for a US publicly-traded company...","description":"Recent SEC EDGAR filings for a US publicly-traded company by stock ticker. Resolves ticker → CIK via SEC's company_tickers.json, then fetches the company's submissions index from data.sec.gov. Returns company metadata (name, CIK, SIC industry classification, exchanges, fiscal year-end, state of incorporation) plus filings with form type, filing date, report date, accession number, primary-document URL, and filing-index URL. Filter to one form type (10-K, 10-Q, 8-K, 4, 13F-HR, SC 13G, S-1, etc.) via formType param. Default 20 results, max 100. Backed by SEC.gov; underlying filings are public-domain US government records. For filings + fundamentals + insider trades merged by ticker in one call, see /api/finance/company-profile.","operationId":"finance_sec-filings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = recent SEC filings with direct document URLs; meta.company = issuer metadata. total is null (EDGAR's \"recent\" window is not the company's full filing history).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"accessionNumber":{"type":"string"},"form":{"type":"string"},"filingDate":{"type":"string"},"reportDate":{"type":"string","nullable":true},"acceptanceDateTime":{"type":"string","nullable":true},"primaryDocument":{"type":"string"},"documentUrl":{"type":"string","format":"uri"},"filingIndexUrl":{"type":"string","format":"uri"},"isXBRL":{"type":"boolean"},"size":{"type":"integer"}},"required":["accessionNumber","form","filingDate","reportDate","acceptanceDateTime","primaryDocument","documentUrl","filingIndexUrl","isXBRL","size"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"ticker":{"type":"string"},"formType":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["ticker","formType","limit"],"additionalProperties":false},"company":{"type":"object","properties":{"cik":{"type":"string"},"ticker":{"type":"string"},"name":{"type":"string"},"sicDescription":{"type":"string","nullable":true},"exchanges":{"type":"array","items":{"type":"string"}},"fiscalYearEnd":{"type":"string","nullable":true},"stateOfIncorporation":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"website":{"type":"string","nullable":true}},"required":["cik","ticker","name","sicDescription","exchanges","fiscalYearEnd","stateOfIncorporation","category","website"],"additionalProperties":false}},"required":["query","company"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.sec-filings","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"Stock ticker symbol (case-insensitive). Examples: AAPL, GOOGL, BRK.B, JNJ.","schema":{"type":"string","minLength":1,"maxLength":10,"pattern":"^[A-Za-z][A-Za-z0-9.-]{0,9}$"}},{"name":"formType","in":"query","required":false,"description":"Optional filter to a single SEC form type, e.g., \"10-K\", \"10-Q\", \"8-K\", \"13F-HR\", \"4\", \"S-1\", \"SC 13G\".","schema":{"type":"string","minLength":1,"maxLength":20,"pattern":"^[A-Za-z0-9./-]+$"}},{"name":"limit","in":"query","required":false,"description":"Max filings to return (1-100). Default 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/security-resolve":{"get":{"tags":["finance"],"summary":"Universal security-identifier resolver.","description":"Universal security-identifier resolver. Give exactly one of ticker, isin, or lei and get the others back — ticker, SEC CIK, FIGI (incl. composite + share-class), LEI, and ISINs — plus the canonical issuer name. The one call that joins a security across the systems agents actually use: CIK for filings, FIGI for trading, LEI for the legal entity, ISIN for settlement. Composes SEC EDGAR, OpenFIGI, and GLEIF (CC0). Per-source status is returned, so a partial match is explicit rather than silently wrong. Note: CUSIP/SEDOL are accepted by sibling /finance/figi as inputs but never emitted here (licensed); ISINs come from GLEIF CC0 data.","operationId":"finance_security-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one resolved security with cross-system identifiers + per-source status]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"resolvedFrom":{"type":"string","enum":["ticker","isin","lei"]},"ticker":{"type":"string","nullable":true},"cik":{"type":"string","nullable":true,"description":"10-digit zero-padded SEC CIK."},"name":{"type":"string","nullable":true,"description":"Canonical issuer name."},"figi":{"type":"object","properties":{"figi":{"type":"string","nullable":true},"compositeFIGI":{"type":"string","nullable":true},"shareClassFIGI":{"type":"string","nullable":true},"exchCode":{"type":"string","nullable":true}},"required":["figi","compositeFIGI","shareClassFIGI","exchCode"],"additionalProperties":false,"nullable":true},"lei":{"type":"string","nullable":true},"leiName":{"type":"string","nullable":true},"leiResolvedBy":{"type":"string","enum":["isin","name-match","direct"],"nullable":true,"description":"How the LEI was resolved; name-match is best-effort, verify leiName."},"isins":{"type":"array","items":{"type":"string"}},"sources":{"type":"object","properties":{"sec":{"type":"string"},"figi":{"type":"string"},"gleif":{"type":"string"}},"required":["sec","figi","gleif"],"additionalProperties":false}},"required":["resolvedFrom","ticker","cik","name","figi","lei","leiName","leiResolvedBy","isins","sources"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.security-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":false,"description":"US stock ticker, e.g. AAPL.","schema":{"type":"string","minLength":1,"maxLength":12}},{"name":"isin","in":"query","required":false,"description":"ISIN, e.g. US0378331005.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{12}$"}},{"name":"lei","in":"query","required":false,"description":"20-char LEI.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/thirteen-f":{"get":{"tags":["finance"],"summary":"Parsed institutional holdings from a 13F-HR filing.","description":"Parsed institutional holdings from a 13F-HR filing. By investment-manager CIK (e.g. 1067983 = Berkshire Hathaway). Returns each holding's nameOfIssuer, cusip, market value (whole USD per the modern Form 13F convention), shares/principal amount + type, putCall flag for options, and voting authority (sole/shared/none). Sorted by value descending. Pass formType for amendments (13F-HR/A) or non-filings (13F-NT). Backed by SEC.gov; underlying 13F filings are public records.","operationId":"finance_thirteen-f","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = top N institutional holdings sorted by value descending; total = positions in the filing before the cap; meta = manager identity, source filing, filing-wide total value, query echo.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"nameOfIssuer":{"type":"string"},"titleOfClass":{"type":"string","nullable":true},"cusip":{"type":"string"},"valueUsd":{"type":"number"},"sharesOrPrinAmt":{"type":"number","nullable":true},"sharesOrPrinAmtType":{"type":"string","enum":["SH","PRN"],"nullable":true},"investmentDiscretion":{"type":"string","nullable":true},"putCall":{"type":"string","enum":["PUT","CALL"],"nullable":true},"votingAuthority":{"type":"object","properties":{"sole":{"type":"number","nullable":true},"shared":{"type":"number","nullable":true},"none":{"type":"number","nullable":true}},"required":["sole","shared","none"],"additionalProperties":false}},"required":["nameOfIssuer","titleOfClass","cusip","valueUsd","sharesOrPrinAmt","sharesOrPrinAmtType","investmentDiscretion","putCall","votingAuthority"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"managerCik":{"type":"string"},"formType":{"type":"string"},"limit":{"type":"number"}},"required":["managerCik","formType","limit"],"additionalProperties":false},"cik":{"type":"string"},"managerName":{"type":"string"},"filing":{"type":"object","properties":{"accessionNumber":{"type":"string"},"form":{"type":"string"},"filingDate":{"type":"string"},"periodOfReport":{"type":"string","nullable":true},"infoTableUrl":{"type":"string","format":"uri"},"documentUrl":{"type":"string","format":"uri"}},"required":["accessionNumber","form","filingDate","periodOfReport","infoTableUrl","documentUrl"],"additionalProperties":false},"totalValueUsd":{"type":"number"}},"required":["query","cik","managerName","filing","totalValueUsd"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.thirteen-f","x-2s-version":null,"x-2s-price":{"usd":0.0072},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"managerCik","in":"query","required":true,"description":"Investment manager's CIK (numeric). Berkshire Hathaway=1067983, Renaissance=1037389, Bridgewater=1350694, Vanguard=102909, BlackRock=1364742.","schema":{"type":"string","minLength":1,"maxLength":10,"pattern":"^\\d+$"}},{"name":"formType","in":"query","required":false,"description":"13F filing variant. Default 13F-HR (original report). Use 13F-HR/A for amendments, 13F-NT for notice of non-filings.","schema":{"type":"string","minLength":3,"maxLength":20,"pattern":"^13F-[A-Z/]{2,10}$","default":"13F-HR"}},{"name":"limit","in":"query","required":false,"description":"Max holdings to return, sorted by value descending. (1-200). Default 25.","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/finance/xbrl-frames":{"get":{"tags":["finance"],"summary":"SEC EDGAR XBRL Frames - one financial concept reported by...","description":"SEC EDGAR XBRL Frames — one financial concept reported by every public filer for a single period, for cross-company screening and comparison. Give an XBRL tag (e.g. Revenues, NetIncomeLoss, Assets), a unit (default USD), and a period (CY2023 for annual, CY2023Q1 for a quarter, CY2023Q4I for instant balance-sheet items), and get back every filer's value — company name, CIK, location, period start/end, and the reported value — sorted high to low (or asc). Returns the total filer count and the top N. Free, public-domain (SEC). Distinct from finance.company-facts (one company, many metrics): this is one metric across all companies. For ranking, peer comparison, and market-wide analysis.","operationId":"finance_xbrl-frames","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = companies (sorted by value, sliced to limit); total = total filers; meta carries tag/label/unit/period.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"cik":{"type":"number"},"entityName":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"start":{"type":"string","nullable":true},"end":{"type":"string","nullable":true},"value":{"type":"number"},"accession":{"type":"string","nullable":true}},"required":["cik","entityName","location","start","end","value","accession"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"finance.xbrl-frames","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tag","in":"query","required":true,"description":"Tag.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"period","in":"query","required":true,"description":"Period.","schema":{"type":"string","pattern":"^CY\\d{4}(Q[1-4]I?)?$"}},{"name":"unit","in":"query","required":false,"description":"Unit.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"taxonomy","in":"query","required":false,"description":"Taxonomy.","schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["desc","asc"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/flight/airport-board":{"get":{"tags":["flight"],"summary":"Live airport activity board.","description":"Live airport activity board. For an airport (ICAO like KSFO or IATA like SFO), returns recent/upcoming departures or arrivals — flight ident, registration, aircraft type, origin/destination airports, status, scheduled/estimated/actual gate times, gate and terminal. Choose the board with type. Real-time operational data for an airport; complements flight.status (single flight) and flight.route-schedule.","operationId":"flight_airport-board","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = board entries.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ident":{"type":"string","nullable":true},"identIata":{"type":"string","nullable":true},"registration":{"type":"string","nullable":true},"aircraftType":{"type":"string","nullable":true},"origin":{"type":"object","properties":{"icao":{"type":"string","nullable":true},"iata":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true}},"required":["icao","iata","name","city","timezone"],"additionalProperties":false,"nullable":true},"destination":{"type":"object","properties":{"icao":{"type":"string","nullable":true},"iata":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true}},"required":["icao","iata","name","city","timezone"],"additionalProperties":false,"nullable":true},"status":{"type":"string","nullable":true},"scheduledOut":{"type":"string","nullable":true},"estimatedOut":{"type":"string","nullable":true},"actualOut":{"type":"string","nullable":true},"scheduledIn":{"type":"string","nullable":true},"estimatedIn":{"type":"string","nullable":true},"actualIn":{"type":"string","nullable":true},"gateOrigin":{"type":"string","nullable":true},"gateDestination":{"type":"string","nullable":true},"terminalOrigin":{"type":"string","nullable":true},"terminalDestination":{"type":"string","nullable":true}},"required":["ident","identIata","registration","aircraftType","origin","destination","status","scheduledOut","estimatedOut","actualOut","scheduledIn","estimatedIn","actualIn","gateOrigin","gateDestination","terminalOrigin","terminalDestination"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"airport":{"type":"string"},"type":{"type":"string"}},"required":["airport","type"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"flight.airport-board","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"airport","in":"query","required":true,"description":"Airport code, ICAO (KSFO) or IATA (SFO).","schema":{"type":"string","minLength":3,"maxLength":4,"pattern":"^[A-Za-z0-9]+$"}},{"name":"type","in":"query","required":false,"description":"Default departures.","schema":{"type":"string","enum":["departures","arrivals","scheduled_departures","scheduled_arrivals"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":30,"default":15}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/flight/route-schedule":{"get":{"tags":["flight"],"summary":"Scheduled flights between two airports over a date window.","description":"Scheduled flights between two airports over a date window. Pass origin and destination (ICAO or IATA) plus startDate/endDate; returns scheduled flights with ident, operator, aircraft type, origin/destination, and scheduled departure/arrival times. Answers 'what flights run SFO→JFK this week'. Complements flight.status and flight.airport-board.","operationId":"flight_route-schedule","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = scheduled flights for the route.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ident":{"type":"string","nullable":true},"identIata":{"type":"string","nullable":true},"operator":{"type":"string","nullable":true},"aircraftType":{"type":"string","nullable":true},"origin":{"type":"string","nullable":true},"originIata":{"type":"string","nullable":true},"destination":{"type":"string","nullable":true},"destinationIata":{"type":"string","nullable":true},"scheduledOut":{"type":"string","nullable":true},"scheduledIn":{"type":"string","nullable":true}},"required":["ident","identIata","operator","aircraftType","origin","originIata","destination","destinationIata","scheduledOut","scheduledIn"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"origin":{"type":"string"},"destination":{"type":"string"}},"required":["origin","destination"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"flight.route-schedule","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"origin","in":"query","required":true,"description":"Origin airport, ICAO or IATA.","schema":{"type":"string","minLength":3,"maxLength":4,"pattern":"^[A-Za-z0-9]+$"}},{"name":"destination","in":"query","required":true,"description":"Destination airport, ICAO or IATA.","schema":{"type":"string","minLength":3,"maxLength":4,"pattern":"^[A-Za-z0-9]+$"}},{"name":"startDate","in":"query","required":true,"description":"Window start (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"endDate","in":"query","required":true,"description":"Window end (YYYY-MM-DD), <= 7 days after start.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":30,"default":15}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/flight/status":{"get":{"tags":["flight"],"summary":"Live flight status and tracking.","description":"Live flight status and tracking. Pass ident as an airline flight designator (ICAO \"UAL1\" or IATA \"UA1\") or an aircraft tail number; returns recent and upcoming instances of that flight with origin/destination airports (ICAO/IATA/name/city/timezone), status, cancellation/diversion flags, scheduled vs estimated vs actual gate and runway times (out/off/on/in), departure and arrival delays, en-route progress percent, aircraft type and registration, and route distance. limit controls how many instances return (default 5, newest first by scheduled departure). Real-time operational data — answer \"where is this flight, is it delayed, when does it land\" with live values. For aircraft registry data see /api/aircraft/lookup; for airport metadata see /api/airport/lookup.","operationId":"flight_status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = recent + upcoming instances of a flight with live times, delays, progress, aircraft; total = instances returned; meta.ident echoes the queried designator.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ident":{"type":"string"},"identIata":{"type":"string","nullable":true},"operator":{"type":"string","nullable":true},"flightNumber":{"type":"string","nullable":true},"registration":{"type":"string","nullable":true},"aircraftType":{"type":"string","nullable":true},"origin":{"type":"object","properties":{"icao":{"type":"string","nullable":true},"iata":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true}},"required":["icao","iata","name","city","timezone"],"additionalProperties":false,"nullable":true},"destination":{"type":"object","properties":{"icao":{"type":"string","nullable":true},"iata":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true}},"required":["icao","iata","name","city","timezone"],"additionalProperties":false,"nullable":true},"status":{"type":"string","nullable":true},"cancelled":{"type":"boolean"},"diverted":{"type":"boolean"},"scheduledOut":{"type":"string","nullable":true},"estimatedOut":{"type":"string","nullable":true},"actualOut":{"type":"string","nullable":true},"actualOff":{"type":"string","nullable":true,"description":"Actual takeoff time."},"actualOn":{"type":"string","nullable":true,"description":"Actual landing time."},"scheduledIn":{"type":"string","nullable":true},"estimatedIn":{"type":"string","nullable":true},"actualIn":{"type":"string","nullable":true},"progressPercent":{"type":"number","nullable":true},"departureDelaySec":{"type":"number","nullable":true},"arrivalDelaySec":{"type":"number","nullable":true,"description":"Negative = early."},"routeDistanceKm":{"type":"number","nullable":true}},"required":["ident","identIata","operator","flightNumber","registration","aircraftType","origin","destination","status","cancelled","diverted","scheduledOut","estimatedOut","actualOut","actualOff","actualOn","scheduledIn","estimatedIn","actualIn","progressPercent","departureDelaySec","arrivalDelaySec","routeDistanceKm"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"ident":{"type":"string","description":"Normalized (uppercased) ident that was queried."}},"required":["ident"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"flight.status","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ident","in":"query","required":true,"description":"Flight designator (ICAO UAL1 or IATA UA1) or aircraft tail number.","schema":{"type":"string","minLength":2,"maxLength":12,"pattern":"^[A-Za-z0-9-]+$"}},{"name":"identType","in":"query","required":false,"description":"Ident type.","schema":{"type":"string","enum":["designator","registration","fa_flight_id"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":15,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/food/barcode-lookup":{"get":{"tags":["food"],"summary":"Resolve a food product barcode (UPC, EAN-13, EAN-8, etc.)...","description":"Resolve a food product barcode (UPC, EAN-13, EAN-8, etc.) to structured product metadata via Open Food Facts — the CC0 community-maintained database of >3M food products. Returns product name, brand, ingredient list, allergens, nutriments (per-100g + per-serving), Nutri-Score grade (a-e), NOVA processing classification (1-4), Eco-Score, categories, manufacturing origin, packaging, and product image URLs.","operationId":"food_barcode-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [product] when the barcode resolves (total 1), else [] (total 0); meta.found flags whether Open Food Facts had the product.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"barcode":{"type":"string"},"name":{"type":"string","nullable":true},"brands":{"type":"string","nullable":true},"categories":{"type":"array","items":{"type":"string"}},"quantity":{"type":"string","nullable":true},"servingSize":{"type":"string","nullable":true},"ingredientsText":{"type":"string","nullable":true},"allergens":{"type":"array","items":{"type":"string"}},"imageUrl":{"type":"string","nullable":true},"nutriscoreGrade":{"type":"string","nullable":true},"novaGroup":{"type":"integer","nullable":true},"ecoscoreGrade":{"type":"string","nullable":true},"nutrientLevels":{"type":"object","additionalProperties":{"type":"string"}},"nutriments":{"type":"object","additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}]}},"countries":{"type":"array","items":{"type":"string"}},"labels":{"type":"array","items":{"type":"string"}},"manufacturingPlaces":{"type":"string","nullable":true},"origins":{"type":"string","nullable":true},"packaging":{"type":"array","items":{"type":"string"}}},"required":["barcode","name","brands","categories","quantity","servingSize","ingredientsText","allergens","imageUrl","nutriscoreGrade","novaGroup","ecoscoreGrade","nutrientLevels","nutriments","countries","labels","manufacturingPlaces","origins","packaging"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"found":{"type":"boolean"}},"required":["found"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"food.barcode-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"barcode","in":"query","required":true,"description":"Barcode.","schema":{"type":"string","pattern":"^[0-9]{6,14}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/food/hygiene-uk":{"get":{"tags":["food"],"summary":"UK Food Standards Agency food hygiene ratings (FHRS) for an...","description":"UK Food Standards Agency food hygiene ratings (FHRS) for an establishment. Search by business name and/or postcode and get matching establishments with their hygiene rating (0-5 in England/Wales/NI; Pass / Improvement Required in Scotland), rating date, the three component scores (hygiene, structural, confidence in management — lower is better), business type, local authority, full address + postcode, and geocode. Free, Open Government Licence (commercial use permitted). Authoritative inspection data an LLM cannot recall — for food, hospitality, and consumer-safety agents.","operationId":"food_hygiene-uk","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching establishments; total = full match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"fhrsId":{"type":"number","nullable":true},"name":{"type":"string","nullable":true},"businessType":{"type":"string","nullable":true},"ratingValue":{"type":"string","nullable":true},"ratingDate":{"type":"string","nullable":true},"scores":{"type":"object","properties":{"hygiene":{"type":"number","nullable":true},"structural":{"type":"number","nullable":true},"management":{"type":"number","nullable":true}},"required":["hygiene","structural","management"],"additionalProperties":false},"localAuthority":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"postcode":{"type":"string","nullable":true},"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true}},"required":["fhrsId","name","businessType","ratingValue","ratingDate","scores","localAuthority","address","postcode","latitude","longitude"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"food.hygiene-uk","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"postcode","in":"query","required":false,"description":"Postcode.","schema":{"type":"string","minLength":2,"maxLength":12}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/fx/rates":{"get":{"tags":["fx"],"summary":"Daily reference exchange rates from the European Central...","description":"Daily reference exchange rates from the European Central Bank (via Frankfurter). 30+ major currencies. Pass base = 3-letter ISO 4217 currency (default USD), optional symbols = comma-separated target codes (default = all available), optional date = YYYY-MM-DD for historical rates (history back to 1999, business days only; omit for latest), optional amount to convert (default 1). Returns base, date, amount, and a map of currency code → rate.","operationId":"fx_rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ currency, rate }] for each target currency (rate already scaled by amount); total = number of target currencies; meta carries base, date, amount.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"rate":{"type":"number"}},"required":["currency","rate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"base":{"type":"string"},"date":{"type":"string"},"amount":{"type":"number"}},"required":["base","date","amount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"fx.rates","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"base","in":"query","required":false,"description":"Base.","schema":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"USD"}},{"name":"symbols","in":"query","required":false,"description":"Symbols.","schema":{"type":"string","minLength":3,"maxLength":200}},{"name":"date","in":"query","required":false,"description":"Date in YYYY-MM-DD format.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"amount","in":"query","required":false,"description":"Amount.","schema":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1000000000,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/fx/timeseries":{"get":{"tags":["fx"],"summary":"Historical daily exchange-rate series from the European...","description":"Historical daily exchange-rate series from the European Central Bank (via Frankfurter), with computed summary statistics. Pass base = 3-letter ISO 4217 currency (default USD), start = YYYY-MM-DD, optional end = YYYY-MM-DD (default = latest available), optional symbols = comma-separated target codes (default all), optional amount to scale rates (default 1). Range is capped at 366 days. Returns, per target currency, first/last/min/max/mean rate plus absolute and percentage change over the window, alongside the full daily series. ECB publishes on business days only; weekends and holidays are omitted.","operationId":"fx_timeseries","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-currency summary stats (first/last/min/max/mean/change/pctChange/count); total = number of target currencies; meta carries base, resolved start/end, amount, observation count, and the full daily series keyed by date.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"first":{"type":"number"},"last":{"type":"number"},"min":{"type":"number"},"max":{"type":"number"},"mean":{"type":"number"},"change":{"type":"number"},"pctChange":{"type":"number"},"count":{"type":"number"}},"required":["currency","first","last","min","max","mean","change","pctChange","count"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"base":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"amount":{"type":"number"},"observations":{"type":"number"},"series":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"number"}}}},"required":["base","start","end","amount","observations","series"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"fx.timeseries","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"base","in":"query","required":false,"description":"Base currency (3-letter ISO 4217). Default USD.","schema":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"USD"}},{"name":"symbols","in":"query","required":false,"description":"Comma-separated target currency codes. Default: all available.","schema":{"type":"string","minLength":3,"maxLength":200}},{"name":"start","in":"query","required":true,"description":"Inclusive start date YYYY-MM-DD.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"end","in":"query","required":false,"description":"Inclusive end date YYYY-MM-DD. Default: latest available.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"amount","in":"query","required":false,"description":"Amount of base currency to scale rates by. Default 1.","schema":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1000000000,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/elevation":{"get":{"tags":["geo"],"summary":"Ground elevation above sea level for a coordinate, anywhere...","description":"Ground elevation above sea level for a coordinate, anywhere on Earth. Pass lat + lon. Returns elevation in meters and feet (from the Copernicus/SRTM digital elevation model, ~90m resolution). Source: Open-Meteo elevation API (keyless, CC BY 4.0).","operationId":"geo_elevation","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [elevation for the point]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"elevationMeters":{"type":"number","nullable":true},"elevationFeet":{"type":"number","nullable":true}},"required":["lat","lon","elevationMeters","elevationFeet"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.elevation","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/flood-zone":{"get":{"tags":["geo"],"summary":"Determine the FEMA flood zone for a coordinate.","description":"Determine the FEMA flood zone for a coordinate. Pass lat and lon. Returns the FEMA flood zone code (e.g. AE, VE, X), its subtype, whether the point is in a Special Flood Hazard Area (isSFHA — the 1% annual-chance floodplain where flood insurance is mandatory for federally backed mortgages), a plain-language risk level (high / moderate / minimal / undetermined / unmapped) and description, the static base flood elevation and depth when published, and the source FIRM panel id. Data: FEMA National Flood Hazard Layer (NFHL), free and public-domain. When no flood polygon intersects the point, returns mapped=false (usually Zone X / minimal risk or unmapped — not a guarantee of zero risk). Use for property risk screening, insurance/mortgage context, and siting decisions; geocode an address with /api/geocode/address first to get the coordinate.","operationId":"geo_flood-zone","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"additionalProperties":false},"mapped":{"type":"boolean"},"floodZone":{"type":"string","nullable":true},"zoneSubtype":{"type":"string","nullable":true},"isSFHA":{"type":"boolean","nullable":true},"riskLevel":{"type":"string","enum":["high","moderate","minimal","undetermined","unmapped"]},"zoneDescription":{"type":"string"},"staticBFE":{"type":"number","nullable":true},"depth":{"type":"number","nullable":true},"firmPanelId":{"type":"string","nullable":true},"sourceCitation":{"type":"string","nullable":true},"note":{"type":"string","nullable":true},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["query","mapped","floodZone","zoneSubtype","isSFHA","riskLevel","zoneDescription","staticBFE","depth","firmPanelId","sourceCitation","note","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.flood-zone","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/ip":{"get":{"tags":["geo"],"summary":"Geolocate a single IPv4 or IPv6 address.","description":"Geolocate a single IPv4 or IPv6 address. Returns country (name + ISO code), region (name + code), city, ZIP, lat/lon, timezone, ISP, organization, and AS number + name. For bulk lookups (up to 100 IPs in one call) use /api/ipinfo/bulk instead. Lat/lon precision is city-level, not GPS.","operationId":"geo_ip","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [geolocation] (ip, country, region, city, postalCode, coords, timezone, network); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.ip","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ip","in":"query","required":true,"description":"IP.","schema":{"type":"string","pattern":"^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|[0-9a-fA-F:]+)$","minLength":2,"maxLength":45}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/location-dossier":{"get":{"tags":["geo"],"summary":"Static risk & context dossier for a US location.","description":"Static risk & context dossier for a US location. Pass lat+lon or a US address (geocoded for you). Composes five authoritative, keyless federal sources into one answer an agent cannot derive from training: Census place context (county, state, census tract, congressional district), FEMA flood zone + Special-Flood-Hazard-Area status, USGS ASCE 7-16 seismic design parameters (Ss, S1, SDS, SD1, seismic design category, PGA), the nearest NOAA/GHCN climate station, and — when a zip is supplied — US Census ACS 5-year demographics. Each layer is isolated: one source failing does not fail the rest. This is the slow-moving structural-risk picture (siting, insurance, due diligence), distinct from real-time weather/earthquake conditions.","operationId":"geo_location-dossier","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"zip":{"type":"string","nullable":true},"address":{"type":"string","nullable":true}},"required":["lat","lon","zip","address"],"additionalProperties":false},"summary":{"type":"object","properties":{"county":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"floodRisk":{"type":"string","nullable":true},"isSFHA":{"type":"boolean","nullable":true},"seismicDesignCategory":{"type":"string","nullable":true},"nearestStationKm":{"type":"number","nullable":true},"riskIndexRating":{"type":"string","nullable":true}},"required":["county","state","floodRisk","isSFHA","seismicDesignCategory","nearestStationKm","riskIndexRating"],"additionalProperties":false},"place":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{}},"required":["found","error"],"additionalProperties":false},"flood":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{}},"required":["found","error"],"additionalProperties":false},"seismic":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{}},"required":["found","error"],"additionalProperties":false},"climate":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{}},"required":["found","error"],"additionalProperties":false},"demographics":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{}},"required":["found","error"],"additionalProperties":false},"riskIndex":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{}},"required":["found","error"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string"}},"required":["query","summary","place","flood","seismic","climate","demographics","riskIndex","sources","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.location-dossier","x-2s-version":null,"x-2s-price":{"usd":0.0072},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":false,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":false,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"address","in":"query","required":false,"description":"Street address or full address string.","schema":{"type":"string","minLength":3,"maxLength":200}},{"name":"zip","in":"query","required":false,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"riskCategory","in":"query","required":false,"description":"ASCE risk category (default II).","schema":{"type":"string","enum":["I","II","III","IV"]}},{"name":"siteClass","in":"query","required":false,"description":"ASCE soil site class (default D).","schema":{"type":"string","enum":["A","B","C","D","E"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/nearby":{"get":{"tags":["geo"],"summary":"Everything around a coordinate in one call: nearby airports...","description":"Everything around a coordinate in one call: nearby airports (IATA/ICAO, type, distance), public K-12 schools (name, district, enrollment, distance), NOAA climate stations (for chaining into /api/climate/station-history), and earthquakes from the past week (magnitude, depth, time). Pass lat/lon plus optional radiusKm (default 25, max 200) and per-category limit (default 5). Each category returns an independent found/error block, so one slow source never empties the rest. Site assessment, relocation research, travel planning, and risk screening. Each category is also a standalone endpoint (/api/airport/near, /api/edu/school-lookup, /api/climate/station-near, /api/quakes/recent).","operationId":"geo_nearby","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Per-category nearby blocks (airports, schools, climate stations, recent quakes) around a coordinate.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"radiusKm":{"type":"number"},"airports":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","items"],"additionalProperties":false},"schools":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","items"],"additionalProperties":false},"climateStations":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","items"],"additionalProperties":false},"quakes":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","items"],"additionalProperties":false,"description":"Earthquakes within radiusKm (min 50km search radius) from the past 7 days, magnitude ≥ 2."},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["lat","lon","radiusKm","airports","schools","climateStations","quakes","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.nearby","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radiusKm","in":"query","required":false,"description":"Radius km.","schema":{"type":"number","minimum":1,"maximum":200,"default":25}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/postal":{"get":{"tags":["geo"],"summary":"Resolve a postal/ZIP code to its place name(s)...","description":"Resolve a postal/ZIP code to its place name(s), administrative divisions, and coordinates. Pass `postalCode` and a 2-letter `country` (default US). Returns each matching locality: place, admin1 (state/province name + code), admin2 (county/district), and lat/lon. International — covers major markets (US, GB, CA, DE, FR, AU, NL, ES, IT, CH, SE, MX). Use it to normalize and enrich addresses, derive the state/county for a ZIP, or geolocate a postal code in an ETL pipeline.","operationId":"geo_postal","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching localities for the postal code; total = items.length. 404-equivalent is an empty items array.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string"},"postalCode":{"type":"string"},"place":{"type":"string","nullable":true},"admin1":{"type":"object","properties":{"name":{"type":"string","nullable":true},"code":{"type":"string","nullable":true}},"required":["name","code"],"additionalProperties":false,"description":"State/province."},"admin2":{"type":"object","properties":{"name":{"type":"string","nullable":true},"code":{"type":"string","nullable":true}},"required":["name","code"],"additionalProperties":false,"description":"County/district."},"coords":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"additionalProperties":false,"nullable":true}},"required":["country","postalCode","place","admin1","admin2","coords"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.postal","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"postalCode","in":"query","required":true,"description":"Postal code.","schema":{"type":"string","minLength":2,"maxLength":16}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geo/zip-resolve":{"get":{"tags":["geo"],"summary":"Resolve a US ZIP code to the census tract(s), county, CBSA...","description":"Resolve a US ZIP code to the census tract(s), county, CBSA (metro), and congressional district it covers — each with HUD-USPS allocation ratios (by residential, business, other, and total address counts). A ZIP is a mail-delivery route set, not a polygon, so it spans multiple geographies; the ratios tell you how much of the ZIP falls in each — the canonical join when you have a ZIP but a dataset is keyed by county/tract/district. Source: HUD-USPS ZIP Crosswalk (public domain).","operationId":"geo_zip-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one ZIP with its tract/county/CBSA/CD lists, each carrying allocation ratios]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"zip":{"type":"string"},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"tract":{"type":"array","items":{"type":"object","properties":{"geoid":{"type":"string"},"resRatio":{"type":"number","description":"Share of the ZIP’s residential addresses in this geography."},"busRatio":{"type":"number","description":"Share of business addresses."},"othRatio":{"type":"number","description":"Share of other addresses."},"totRatio":{"type":"number","description":"Share of total addresses."}},"required":["geoid","resRatio","busRatio","othRatio","totRatio"],"additionalProperties":false}},"county":{"type":"array","items":{"type":"object","properties":{"geoid":{"type":"string"},"resRatio":{"type":"number","description":"Share of the ZIP’s residential addresses in this geography."},"busRatio":{"type":"number","description":"Share of business addresses."},"othRatio":{"type":"number","description":"Share of other addresses."},"totRatio":{"type":"number","description":"Share of total addresses."}},"required":["geoid","resRatio","busRatio","othRatio","totRatio"],"additionalProperties":false}},"cbsa":{"type":"array","items":{"type":"object","properties":{"geoid":{"type":"string"},"resRatio":{"type":"number","description":"Share of the ZIP’s residential addresses in this geography."},"busRatio":{"type":"number","description":"Share of business addresses."},"othRatio":{"type":"number","description":"Share of other addresses."},"totRatio":{"type":"number","description":"Share of total addresses."}},"required":["geoid","resRatio","busRatio","othRatio","totRatio"],"additionalProperties":false}},"congressionalDistrict":{"type":"array","items":{"type":"object","properties":{"geoid":{"type":"string"},"resRatio":{"type":"number","description":"Share of the ZIP’s residential addresses in this geography."},"busRatio":{"type":"number","description":"Share of business addresses."},"othRatio":{"type":"number","description":"Share of other addresses."},"totRatio":{"type":"number","description":"Share of total addresses."}},"required":["geoid","resRatio","busRatio","othRatio","totRatio"],"additionalProperties":false}}},"required":["zip","city","state","tract","county","cbsa","congressionalDistrict"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geo.zip-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"zip","in":"query","required":true,"description":"5-digit US ZIP code, e.g. 90210.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geocode/address":{"get":{"tags":["geocode"],"summary":"Forward geocoding - free-text address or place name...","description":"Forward geocoding — free-text address or place name → latitude/longitude plus structured address components (houseNumber, road, suburb, city, county, state, postcode, country, countryCode). Query: q (2-500 chars), limit (1-10, default 5), country (optional 2-letter ISO 3166-1 bias). Underlying data is OpenStreetMap (ODbL). Sister: /api/geocode/reverse.","operationId":"geocode_address","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = geocode matches (formattedAddress, latitude, longitude, boundingBox, class, type, importance, structured address); total = null (no upstream total); meta.query echoes the request, meta.cacheHit flags a cache serve.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"kind":{"type":"string"},"input":{"type":"string"}},"required":["kind","input"],"additionalProperties":false},"cacheHit":{"type":"boolean"}},"required":["query","cacheHit"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geocode.address","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":500}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^[a-z]{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/geocode/reverse":{"get":{"tags":["geocode"],"summary":"Reverse geocoding - latitude/longitude nearest formatted...","description":"Reverse geocoding — latitude/longitude → nearest formatted address plus structured components (houseNumber, road, suburb, city, county, state, postcode, country, countryCode). Query: lat (-90..90), lon (-180..180). Underlying data is OpenStreetMap (ODbL). Sister: /api/geocode/address.","operationId":"geocode_reverse","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [address] (nearest formatted address + structured components; empty if none); total = items.length; meta.query echoes the request, meta.cacheHit flags a cache serve.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"kind":{"type":"string"},"input":{"type":"string"}},"required":["kind","input"],"additionalProperties":false},"cacheHit":{"type":"boolean"}},"required":["query","cacheHit"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"geocode.reverse","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/branches":{"get":{"tags":["github"],"summary":"Branches of a repository: name, head commit sha, and...","description":"Branches of a repository: name, head commit sha, and protection flag. Read-only; no caller key needed.","operationId":"github_branches","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = branches.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"sha":{"nullable":true},"protected":{"nullable":true}},"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.branches","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/commits":{"get":{"tags":["github"],"summary":"Commit history for a repository: sha, message, author name...","description":"Commit history for a repository: sha, message, author name + GitHub login, date, and URL. Optionally filter by branch/tag (sha), file path, or author. Paginate. Read-only; no caller key needed.","operationId":"github_commits","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = commits (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.commits","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"sha","in":"query","required":false,"description":"Branch, tag, or commit sha to start from.","schema":{"type":"string","maxLength":120}},{"name":"path","in":"query","required":false,"description":"Path.","schema":{"type":"string","maxLength":400}},{"name":"author","in":"query","required":false,"description":"Author.","schema":{"type":"string","maxLength":100}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/contributors":{"get":{"tags":["github"],"summary":"Top contributors to a repository, ranked by commit count...","description":"Top contributors to a repository, ranked by commit count: login, contributions, account type, and profile URL. Read-only; no caller key needed.","operationId":"github_contributors","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = contributors.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"login":{"nullable":true},"contributions":{"nullable":true},"type":{"nullable":true},"url":{"nullable":true}},"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.contributors","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/issues":{"get":{"tags":["github"],"summary":"List issues for a repository (pull requests excluded)...","description":"List issues for a repository (pull requests excluded): number, title, state, author, labels, comment count, and created/updated times. Filter by state (open/closed/all) and labels; paginate. Read-only; no caller key needed.","operationId":"github_issues","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = issues.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.issues","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","enum":["open","closed","all"]}},{"name":"labels","in":"query","required":false,"description":"Labels.","schema":{"type":"string","maxLength":200}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/languages":{"get":{"tags":["github"],"summary":"Programming-language breakdown of a repository: each...","description":"Programming-language breakdown of a repository: each language with its byte count and percentage of the codebase, sorted by size. Read-only; no caller key needed.","operationId":"github_languages","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = languages by size desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"bytes":{"type":"number"},"percent":{"type":"number"}},"required":["language","bytes","percent"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.languages","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/pulls":{"get":{"tags":["github"],"summary":"List pull requests for a repository: number, title, state...","description":"List pull requests for a repository: number, title, state, author, draft flag, merged status + time, head/base branch, and created time. Filter by state (open/closed/all); paginate. Read-only; no caller key needed.","operationId":"github_pulls","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = pull requests.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.pulls","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","enum":["open","closed","all"]}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/readme":{"get":{"tags":["github"],"summary":"Fetch a repository's README, decoded to UTF-8 text (name...","description":"Fetch a repository's README, decoded to UTF-8 text (name, path, size, content, URL). Optionally pin to a branch/tag/sha via ref. Useful for summarizing or indexing a project. Read-only; no caller key needed.","operationId":"github_readme","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [decoded README].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.readme","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"ref","in":"query","required":false,"description":"Ref.","schema":{"type":"string","maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/releases":{"get":{"tags":["github"],"summary":"List a repository's releases: tag, name, draft/prerelease...","description":"List a repository's releases: tag, name, draft/prerelease flags, author, published time, and release notes body. Paginate. Track a project's version history. Read-only; no caller key needed.","operationId":"github_releases","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = releases (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.releases","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/repo":{"get":{"tags":["github"],"summary":"GitHub repository metadata: full name, owner, description...","description":"GitHub repository metadata: full name, owner, description, stars, forks, watchers, open issues, primary language, topics, SPDX license, default branch, homepage, archived flag, and created/updated/pushed timestamps. Read-only; no GitHub key needed by the caller.","operationId":"github_repo","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [repo metadata].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.repo","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/repos":{"get":{"tags":["github"],"summary":"List a user or organization's repositories (each with...","description":"List a user or organization's repositories (each with stars, forks, language, topics, license, timestamps). Sort by updated/created/pushed/full_name; filter type owner/member; paginate. Read-only; no caller key needed.","operationId":"github_repos","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = repos.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.repos","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["updated","created","pushed","full_name"]}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","enum":["owner","member","all"]}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/search-code":{"get":{"tags":["github"],"summary":"Search code across GitHub with the code-search syntax (e.g.","description":"Search code across GitHub with the code-search syntax (e.g. 'defineEndpoint repo:AlleyFord/2s' or 'addEventListener language:js'). Returns total match count + file name, path, repository, and URL for each hit. Read-only; no caller key needed.","operationId":"github_search-code","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = code hits; meta.totalCount = upstream total.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"totalCount":{"type":"number"}},"required":["totalCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.search-code","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":400}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/search-repos":{"get":{"tags":["github"],"summary":"Search GitHub repositories with the full query syntax (e.g.","description":"Search GitHub repositories with the full query syntax (e.g. 'x402 language:typescript stars:>100'). Sort by stars/forks/updated. Returns total match count + repos with stars, language, topics, license, timestamps. Read-only; no caller key needed.","operationId":"github_search-repos","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = repos; meta.totalCount = upstream total.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"totalCount":{"type":"number"}},"required":["totalCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.search-repos","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":400}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["stars","forks","help-wanted-issues","updated"]}},{"name":"order","in":"query","required":false,"description":"Sort direction: asc or desc.","schema":{"type":"string","enum":["asc","desc"]}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/tags":{"get":{"tags":["github"],"summary":"Git tags of a repository (name + commit sha), most recent...","description":"Git tags of a repository (name + commit sha), most recent first. Pair with github.releases for published releases. Read-only; no caller key needed.","operationId":"github_tags","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = tags.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"sha":{"nullable":true}},"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.tags","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"owner","in":"query","required":true,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"repo","in":"query","required":true,"description":"Repo.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/github/user":{"get":{"tags":["github"],"summary":"GitHub user or organization profile: login, name, company...","description":"GitHub user or organization profile: login, name, company, blog, location, bio, type (User/Organization), followers, following, public repo + gist counts, and account creation date. Read-only; no caller key needed.","operationId":"github_user","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [user/org profile].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"github.user","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"username","in":"query","required":true,"description":"Username.","schema":{"type":"string","minLength":1,"maxLength":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/bea-gdp":{"get":{"tags":["gov"],"summary":"Quarterly real GDP by US state from the Bureau of Economic...","description":"Quarterly real GDP by US state from the Bureau of Economic Analysis (BEA) Regional accounts — all-industry total, in millions of chained (inflation-adjusted) dollars. Requires state (2-letter); optionally a specific year (defaults to the last 5 years). Returns the state name plus GDP observations (period like 2025Q2, real GDP in millions USD, unit), newest quarter first. Free, public-domain (BEA). Authoritative state economic-output data an LLM cannot recall — for economic research, regional analysis, and market sizing.","operationId":"gov_bea-gdp","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one state GDP result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string"},"geoFips":{"type":"string"},"year":{"type":"string"},"limit":{"type":"number"}},"required":["state","geoFips","year","limit"],"additionalProperties":false},"geoName":{"type":"string","nullable":true},"returned":{"type":"number"},"observations":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string","nullable":true},"realGdpMillionsUSD":{"type":"number","nullable":true},"unit":{"type":"string","nullable":true}},"required":["period","realGdpMillionsUSD","unit"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","geoName","returned","observations","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.bea-gdp","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"2-letter US state/territory code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":1960,"maximum":2100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/bill-summaries":{"get":{"tags":["gov"],"summary":"Stream the latest US Congressional bill summaries via...","description":"Stream the latest US Congressional bill summaries via Congress.gov. Each row is a CRS-authored summary attached to a specific version of a bill (Introduced, Reported to House, Engrossed in Senate, Public Law, etc.). Filter by congress + bill type. Returns the underlying bill metadata + summary text + version code + action date. Use this for change-detection on bills you care about, or to power agent-side \"what did Congress just pass\" feeds.","operationId":"gov_bill-summaries","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CRS bill summaries (bill metadata + summary text + version code + action date); total = upstream match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"actionDate":{"type":"string","nullable":true},"actionDesc":{"type":"string","nullable":true},"bill":{"type":"object","additionalProperties":{},"nullable":true},"currentChamber":{"type":"string","nullable":true},"currentChamberCode":{"type":"string","nullable":true},"lastSummaryUpdateDate":{"type":"string","nullable":true},"text":{"type":"string","nullable":true},"updateDate":{"type":"string","nullable":true},"versionCode":{"type":"string","nullable":true}},"required":["actionDate","actionDesc","bill","currentChamber","currentChamberCode","lastSummaryUpdateDate","text","updateDate","versionCode"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.bill-summaries","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","enum":["hr","s","hjres","sjres","hconres","sconres","hres","sres"]}},{"name":"fromDate","in":"query","required":false,"description":"From date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"toDate","in":"query","required":false,"description":"To date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["updateDate+desc","updateDate+asc"],"default":"updateDate+desc"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/carrier-safety":{"get":{"tags":["gov"],"summary":"FMCSA motor-carrier (trucking/bus company) safety profile.","description":"FMCSA motor-carrier (trucking/bus company) safety profile. Pass dot (USDOT number) for the full record: legal/DBA name, state, interstate/intrastate operation, operating-authority status (allowedToOperate), FMCSA safety rating, fleet size (drivers + power units), crash history (total/fatal/injury/tow-away), roadside-inspection history with driver + vehicle out-of-service rates, and the CSA BASIC measures (Unsafe Driving, Hours-of-Service, Driver Fitness, Controlled Substances, Vehicle Maintenance, Hazmat, Crash Indicator) with violation counts. Or pass name to search → matching carriers with their DOT numbers. Free, public-domain US DOT data (keyed). For commercial-auto/freight underwriting, broker/shipper vetting, and vendor due diligence — the authorization + safety record an agent can't get from training.","operationId":"gov_carrier-safety","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"mode":{"type":"string","enum":["carrier","search"]},"query":{"type":"object","properties":{"dot":{"type":"number","nullable":true},"name":{"type":"string","nullable":true}},"required":["dot","name"],"additionalProperties":false},"found":{"type":"boolean"},"carrier":{"type":"object","properties":{"dotNumber":{"type":"number","nullable":true},"legalName":{"type":"string","nullable":true},"dbaName":{"type":"string","nullable":true},"physicalState":{"type":"string","nullable":true},"operation":{"type":"string","nullable":true},"allowedToOperate":{"type":"boolean","nullable":true},"statusCode":{"type":"string","nullable":true},"safetyRating":{"type":"string","nullable":true},"safetyRatingDate":{"type":"string","nullable":true},"totalDrivers":{"type":"number","nullable":true},"totalPowerUnits":{"type":"number","nullable":true}},"required":["dotNumber","legalName","dbaName","physicalState","operation","allowedToOperate","statusCode","safetyRating","safetyRatingDate","totalDrivers","totalPowerUnits"],"additionalProperties":false,"nullable":true},"crashes":{"type":"object","properties":{"total":{"type":"number","nullable":true},"fatal":{"type":"number","nullable":true},"injury":{"type":"number","nullable":true},"towaway":{"type":"number","nullable":true}},"required":["total","fatal","injury","towaway"],"additionalProperties":false,"nullable":true},"inspections":{"type":"object","properties":{"driverTotal":{"type":"number","nullable":true},"driverOutOfService":{"type":"number","nullable":true},"driverOosRate":{"type":"number","nullable":true},"vehicleTotal":{"type":"number","nullable":true},"vehicleOutOfService":{"type":"number","nullable":true},"vehicleOosRate":{"type":"number","nullable":true}},"required":["driverTotal","driverOutOfService","driverOosRate","vehicleTotal","vehicleOutOfService","vehicleOosRate"],"additionalProperties":false,"nullable":true},"basics":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","nullable":true},"measureValue":{"type":"number","nullable":true},"percentile":{"type":"string","nullable":true},"violationThreshold":{"type":"number","nullable":true},"exceededInterventionThreshold":{"type":"boolean","nullable":true},"totalViolations":{"type":"number","nullable":true},"totalInspectionsWithViolation":{"type":"number","nullable":true},"runDate":{"type":"string","nullable":true}},"required":["category","measureValue","percentile","violationThreshold","exceededInterventionThreshold","totalViolations","totalInspectionsWithViolation","runDate"],"additionalProperties":false}},"matches":{"type":"array","items":{"type":"object","properties":{"dotNumber":{"type":"number","nullable":true},"legalName":{"type":"string","nullable":true},"dbaName":{"type":"string","nullable":true},"physicalState":{"type":"string","nullable":true}},"required":["dotNumber","legalName","dbaName","physicalState"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["mode","query","found","carrier","crashes","inspections","basics","matches","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.carrier-safety","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"dot","in":"query","required":false,"description":"Dot.","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-amendment":{"get":{"tags":["gov"],"summary":"Look up or list US Congressional amendments via Congress.gov.","description":"Look up or list US Congressional amendments via Congress.gov. Pass congress + type + number to fetch a single amendment with full sponsor + action history. Or filter list by congress + type + date range. Amendment types: hamdt=House Amendment, samdt=Senate Amendment, suamdt=Senate Unprinted Amendment.","operationId":"gov_congress-amendment","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [amendment] (lookup mode, total 1) or the amendment list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-amendment","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","enum":["hamdt","samdt","suamdt"]}},{"name":"number","in":"query","required":false,"description":"Item number or identifier.","schema":{"type":"integer","minimum":1}},{"name":"fromDate","in":"query","required":false,"description":"From date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"toDate","in":"query","required":false,"description":"To date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-bill":{"get":{"tags":["gov"],"summary":"Look up or search US Congressional bills via the Library of...","description":"Look up or search US Congressional bills via the Library of Congress Congress.gov API. Pass congress + type + number to fetch a specific bill (title, sponsors, latest action, action/amendment/committee counts, policy area, congress.gov URL). Or omit number to list bills filtered by congress, bill type (hr | s | hjres | sjres | hconres | sconres | hres | sres), date range, with pagination + sort. Bill type semantics: hr=House Bill, s=Senate Bill, hjres/sjres=joint resolution, hconres/sconres=concurrent resolution, hres/sres=simple resolution.","operationId":"gov_congress-bill","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [bill] (lookup mode, total 1) or the bill list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-bill","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","enum":["hr","s","hjres","sjres","hconres","sconres","hres","sres"]}},{"name":"number","in":"query","required":false,"description":"Item number or identifier.","schema":{"type":"integer","minimum":1}},{"name":"fromDate","in":"query","required":false,"description":"From date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"toDate","in":"query","required":false,"description":"To date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["updateDate+desc","updateDate+asc"],"default":"updateDate+desc"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-committee":{"get":{"tags":["gov"],"summary":"List or look up US Congressional committees (Library of...","description":"List or look up US Congressional committees (Library of Congress Congress.gov). Pass systemCode (e.g. \"hspw00\") to fetch a single committee with full detail (members, subcommittees, history, hearings, jurisdiction). Or filter list by congress + chamber (house | senate | joint). Standard system codes follow chamber prefix + abbreviation + suffix convention.","operationId":"gov_congress-committee","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [committee] (lookup mode, total 1) or the committee list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-committee","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"chamber","in":"query","required":false,"description":"Legislative chamber: house or senate.","schema":{"type":"string","enum":["house","senate","joint"]}},{"name":"systemCode","in":"query","required":false,"description":"System code.","schema":{"type":"string","pattern":"^[a-z]{2,8}\\d{2,4}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-filings":{"get":{"tags":["gov"],"summary":"Track US House members' financial-disclosure filings...","description":"Track US House members' financial-disclosure filings — including Periodic Transaction Reports (PTRs), the STOCK Act filings where members must disclose their stock trades within 45 days. Defaults to PTRs; pass type=annual|candidate|amendment|all to see other disclosure kinds. Filter by member name (q), 2-letter state, filing year, or filing-date range (dateFrom/dateTo). Each result gives the member, state + district, filing type (with a readable label), the filing/disclosure date, and a direct link to the source document (docUrl). The envelope total is the full count matching your filter — so q=Pelosi or year=2026 answers 'how many PTRs did they file'. Covers 2008→present (~8,200 PTRs), refreshed daily so new filings appear within ~a day. Note: by law trades are disclosed up to 45 days after they happen — this is current-to-the-filing, not real-time. Data: US House Clerk (public domain).","operationId":"gov_congress-filings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching filings (newest first); total = full count matching the filter.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"docId":{"type":"string"},"chamber":{"type":"string"},"memberName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"filingType":{"type":"string","nullable":true},"filingTypeLabel":{"type":"string","nullable":true},"filingYear":{"type":"number","nullable":true},"filingDate":{"type":"string","nullable":true},"docUrl":{"type":"string","nullable":true},"tradesParsed":{"type":"boolean"}},"required":["docId","chamber","memberName","state","district","filingType","filingTypeLabel","filingYear","filingDate","docUrl","tradesParsed"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-filings","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"chamber","in":"query","required":false,"description":"Legislative chamber: house or senate.","schema":{"type":"string","enum":["house","senate"]}},{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":2008,"maximum":2100}},{"name":"dateFrom","in":"query","required":false,"description":"Date from.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dateTo","in":"query","required":false,"description":"Date to.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-hearing":{"get":{"tags":["gov"],"summary":"Look up or list US Congressional hearings via Congress.gov.","description":"Look up or list US Congressional hearings via Congress.gov. Pass congress + chamber + jacketNumber to fetch a single hearing with full detail (title, dates, committee, transcripts/recordings if available). Or filter list by congress + chamber, with optional date range. Hearings cover committee testimony from the executive branch, subject experts, and stakeholders — primary-source material for oversight + policy research.","operationId":"gov_congress-hearing","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [hearing] (lookup mode, total 1) or the hearing list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-hearing","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"chamber","in":"query","required":false,"description":"Legislative chamber: house or senate.","schema":{"type":"string","enum":["house","senate"]}},{"name":"jacketNumber","in":"query","required":false,"description":"Jacket number.","schema":{"type":"integer","minimum":1}},{"name":"fromDate","in":"query","required":false,"description":"From date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"toDate","in":"query","required":false,"description":"To date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-member":{"get":{"tags":["gov"],"summary":"Look up or search members of the US Congress via Library of...","description":"Look up or search members of the US Congress via Library of Congress Congress.gov API. Pass bioguideId (e.g. M001190) to fetch one member (full bio, terms, party history, leadership roles, sponsored + cosponsored legislation counts, official website, address). Or filter by congress + state + district, with currentMember=true to limit to seated members. Bioguide IDs are stable across history and are the canonical Congress-member identifier.","operationId":"gov_congress-member","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [member] (lookup mode, total 1) or the member list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-member","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bioguideId","in":"query","required":false,"description":"Bioguide ID.","schema":{"type":"string","pattern":"^[A-Z]\\d{6}$"}},{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"district","in":"query","required":false,"description":"District.","schema":{"type":"integer","minimum":0,"maximum":60}},{"name":"currentMember","in":"query","required":false,"description":"Current member.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-nomination":{"get":{"tags":["gov"],"summary":"Look up or list US presidential nominations (cabinet...","description":"Look up or list US presidential nominations (cabinet, judicial, executive) sent to the Senate for confirmation via Congress.gov. Pass congress + number for a single nomination with full action history. Or filter list by congress + date range. Each row carries: citation (PN###-#), description (nominee + position), receivedDate, nominationType (civilian / military / etc.), organization, latest action (committee referral, hearing, confirmation, withdrawal). Essential for confirmation-tracking + judicial-vetting agents.","operationId":"gov_congress-nomination","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [nomination] (lookup mode, total 1) or the nomination list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-nomination","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"number","in":"query","required":false,"description":"Item number or identifier.","schema":{"type":"integer","minimum":1}},{"name":"fromDate","in":"query","required":false,"description":"From date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"toDate","in":"query","required":false,"description":"To date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-record":{"get":{"tags":["gov"],"summary":"List daily Congressional Record issues via Congress.gov...","description":"List daily Congressional Record issues via Congress.gov — the official transcripts and proceedings of the US House and Senate, daily. Filter by year + month + day to narrow to a specific date or month. Each issue carries volume, issue number, publish date, and links to per-section content (Daily Digest, Senate, House, Extensions of Remarks) with PDF + sub-section URLs. Primary source for what was said on the floor.","operationId":"gov_congress-record","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Congressional Record issues (id, congress, session, issue, volume, publishDate, links); total = null (upstream paginates without a true count).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-record","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":1873,"maximum":2100}},{"name":"month","in":"query","required":false,"description":"Calendar month (1–12).","schema":{"type":"integer","minimum":1,"maximum":12}},{"name":"day","in":"query","required":false,"description":"Day of the month (1–31).","schema":{"type":"integer","minimum":1,"maximum":31}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-trades":{"get":{"tags":["gov"],"summary":"Search individual US Congress member stock trades, parsed...","description":"Search individual US Congress member stock trades, parsed from STOCK Act Periodic Transaction Reports into clean rows. Filter by member name (q, e.g. \"Pelosi\"), ticker (e.g. NVDA), transaction type (purchase | sale | exchange | partial_sale), party (D | R | I), 2-letter state, chamber, or transaction-date range (dateFrom/dateTo). Each trade returns the member + party + state/district, owner (self/spouse/joint/dependent), ticker + asset description, buy/sell, the disclosed dollar RANGE (amountMin/amountMax — disclosures are ranges, not exact), the transaction date, the disclosure date, days-to-disclose (compliance lag), and a link to the source filing PDF. The envelope total is the full count matching your filter — so ticker=NVDA&type=purchase counts who bought NVIDIA. Amounts are ranges by law; trades are disclosed up to 45 days after they happen (current-to-the-filing). Coverage: US House + Senate e-filed PTRs; scanned/handwritten reports are parsed separately. Data: US House Clerk / US Senate eFD (public domain). Cross-ref /api/gov/congress-filings for the raw filing index.","operationId":"gov_congress-trades","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching trades (newest transaction first); total = full count matching the filter.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"member":{"type":"string","nullable":true},"chamber":{"type":"string"},"party":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"owner":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"assetDescription":{"type":"string","nullable":true},"assetType":{"type":"string","nullable":true},"transactionType":{"type":"string","nullable":true},"amountMin":{"type":"number","nullable":true},"amountMax":{"type":"number","nullable":true},"transactionDate":{"type":"string","nullable":true},"disclosureDate":{"type":"string","nullable":true},"daysToDisclose":{"type":"number","nullable":true},"docUrl":{"type":"string","nullable":true},"source":{"type":"string","nullable":true}},"required":["member","chamber","party","state","district","owner","ticker","assetDescription","assetType","transactionType","amountMin","amountMax","transactionDate","disclosureDate","daysToDisclose","docUrl","source"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-trades","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"ticker","in":"query","required":false,"description":"Ticker.","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"chamber","in":"query","required":false,"description":"Legislative chamber: house or senate.","schema":{"type":"string","enum":["house","senate"]}},{"name":"party","in":"query","required":false,"description":"Party.","schema":{"type":"string","minLength":1,"maxLength":11}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"dateFrom","in":"query","required":false,"description":"Date from.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dateTo","in":"query","required":false,"description":"Date to.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/congress-treaty":{"get":{"tags":["gov"],"summary":"Look up or list international treaties transmitted to the...","description":"Look up or list international treaties transmitted to the US Senate for advice and consent via Congress.gov. Pass congress + number (optionally + suffix for partitioned treaties) to fetch a single treaty with parties, topic, transmittal date, and consideration status. Or list by congress. Returns the congress the treaty was received in, the congress that considered it (if any), partial-treaty suffix, topic, transmitted date, and count of parties.","operationId":"gov_congress-treaty","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [treaty] (lookup mode, total 1) or the treaty list (list mode, total = upstream match count); meta.mode flags which.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["lookup","list"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.congress-treaty","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"US Congress number (e.g. 118 for the 2023–2025 Congress).","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"number","in":"query","required":false,"description":"Item number or identifier.","schema":{"type":"integer","minimum":1}},{"name":"suffix","in":"query","required":false,"description":"Suffix.","schema":{"type":"string","pattern":"^[A-Za-z]$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/contract-opportunities":{"get":{"tags":["gov"],"summary":"Search ACTIVE US federal contract opportunities...","description":"Search ACTIVE US federal contract opportunities (solicitations, combined synopses, sources-sought, RFPs/RFQs) from SAM.gov. Requires a posted-date window: postedFrom and postedTo as MM/DD/YYYY, max 1 year span. Optional filters: title (keyword), naics (NAICS code), state (place/office 2-letter), setAside (set-aside code, e.g. SBA, 8A, WOSB, SDVOSBC), ptype (notice type: o=solicitation, p=presolicitation, r=sources-sought, k=combined, etc.); page with limit (1-100) and offset. Returns each opportunity with notice id, title, solicitation number, type, department path, posted date, response deadline, NAICS, classification, set-aside, active flag, contracting office location, and a sam.gov UI link — plus a total match count. Data: SAM.gov, free and public-domain. Distinct from /api/gov/usaspending-awards (past awards) — this is what is OPEN to bid now. Fresh, time-sensitive data for govcon / capture / bid-intelligence agents.","operationId":"gov_contract-opportunities","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching active opportunities (newest postings as ranked by SAM), total = SAM total match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"noticeId":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"solicitationNumber":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"postedDate":{"type":"string","nullable":true},"responseDeadline":{"type":"string","nullable":true},"naicsCode":{"type":"string","nullable":true},"classificationCode":{"type":"string","nullable":true},"setAside":{"type":"string","nullable":true},"active":{"type":"boolean","nullable":true},"organizationType":{"type":"string","nullable":true},"office":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zip":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["city","state","zip","country"],"additionalProperties":false,"nullable":true},"uiLink":{"type":"string","nullable":true}},"required":["noticeId","title","solicitationNumber","type","department","postedDate","responseDeadline","naicsCode","classificationCode","setAside","active","organizationType","office","uiLink"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"postedFrom":{"type":"string"},"postedTo":{"type":"string"},"title":{"type":"string","nullable":true},"naics":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"setAside":{"type":"string","nullable":true},"ptype":{"type":"string","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["postedFrom","postedTo","title","naics","state","setAside","ptype","limit","offset"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.contract-opportunities","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"postedFrom","in":"query","required":true,"description":"Posted from.","schema":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$"}},{"name":"postedTo","in":"query","required":true,"description":"Posted to.","schema":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$"}},{"name":"title","in":"query","required":false,"description":"Title to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"naics","in":"query","required":false,"description":"NAICS.","schema":{"type":"string","pattern":"^\\d{2,6}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"setAside","in":"query","required":false,"description":"Set aside.","schema":{"type":"string","minLength":2,"maxLength":12}},{"name":"ptype","in":"query","required":false,"description":"Ptype.","schema":{"type":"string","minLength":1,"maxLength":2}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/counterparty":{"get":{"tags":["gov"],"summary":"Federal counterparty due-diligence dossier on one name, in...","description":"Federal counterparty due-diligence dossier on one name, in a single call. Give name (a company or person) and optional state; get back six independent federal/authoritative screens composed into one verdict: SAM.gov registration (UEI/CAGE, active status), SAM federal exclusions (debarment/suspension), OFAC SDN sanctions, GLEIF Legal Entity Identifier, USAspending federal contract-award history, and FARA foreign-agent registration. Returns headline riskFlags (e.g. federally_debarred, sanctions_high_confidence_match, registered_foreign_agent), a cleared boolean (true only when both debarment AND sanctions sources answered and were clean — FARA status is disclosure context and does NOT affect cleared), a summary of booleans, and a per-source found/error/data block so one slow or empty source never fails the whole call. Composition of /api/gov/entity + /api/gov/exclusions + /api/law/sanctions-check + /api/business/lei + /api/gov/usaspending-awards + /api/gov/foreign-agents — all free, public-domain US data. Name matching is probabilistic: review flagged matches manually and confirm with a hard identifier (UEI, LEI) before acting. For vendor onboarding, KYC/AML triage, grant eligibility, and procurement integrity. The federal counterpart to /api/business/entity-screen (which covers state registries).","operationId":"gov_counterparty","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string"},"state":{"type":"string","nullable":true}},"required":["name","state"],"additionalProperties":false},"riskFlags":{"type":"array","items":{"type":"string"}},"cleared":{"type":"boolean"},"summary":{"type":"object","properties":{"samRegistered":{"type":"boolean","nullable":true},"activeRegistration":{"type":"boolean","nullable":true},"isDebarred":{"type":"boolean","nullable":true},"isSanctioned":{"type":"boolean","nullable":true},"hasLei":{"type":"boolean","nullable":true},"federalAwardCount":{"type":"number","nullable":true},"isForeignAgent":{"type":"boolean","nullable":true}},"required":["samRegistered","activeRegistration","isDebarred","isSanctioned","hasLei","federalAwardCount","isForeignAgent"],"additionalProperties":false},"registration":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"exclusions":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"sanctions":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"lei":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"federalAwards":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"foreignAgent":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string"}},"required":["query","riskFlags","cleared","summary","registration","exclusions","sanctions","lei","federalAwards","foreignAgent","sources","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.counterparty","x-2s-version":null,"x-2s-price":{"usd":0.0072},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"threshold","in":"query","required":false,"description":"Minimum score/threshold required to include a result.","schema":{"type":"number","minimum":0.1,"maximum":1,"default":0.4}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/disaster-assistance":{"get":{"tags":["gov"],"summary":"FEMA disaster assistance dollars - how much federal aid was...","description":"FEMA disaster assistance dollars — how much federal aid was approved or obligated for a declared disaster, by place. program=individuals (default) returns Individuals & Households Program (IHP) approved housing assistance, one record per ZIP per disaster, with FEMA-approved repair/replace, rental, and other-needs dollars and valid-registration counts (tenancy=owner default, or renter). program=public returns Public Assistance funded-project summaries, one record per applicant (state/local government, tribe, or eligible nonprofit) per disaster, with the federally obligated grant amount and project count. Filter by disasterNumber (the join key to gov.disaster-declarations), state (2-letter), and zipCode (5-digit, IHP only); results are ordered by approved/obligated dollars, highest first, with the total matching count and a normalized approvedAmountUSD per record. Free, public-domain (OpenFEMA). Distinct from gov.disaster-declarations (which disasters were declared + what was authorized), gov.risk-index (modeled future risk), and gov.nfip-claims (flood-insurance losses): this is the realized federal-spend record — for disaster-recovery, grants, insurance, and emergency-management workflows.","operationId":"gov_disaster-assistance","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"program":{"type":"string"},"tenancy":{"type":"string","nullable":true},"disasterNumber":{"type":"number","nullable":true},"state":{"type":"string","nullable":true},"zipCode":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["program","tenancy","disasterNumber","state","zipCode","limit"],"additionalProperties":false},"program":{"type":"string"},"totalRecords":{"type":"number","nullable":true},"returned":{"type":"number"},"returnedSumApprovedUSD":{"type":"number"},"records":{"type":"array","items":{"type":"object","properties":{"program":{"type":"string"},"disasterNumber":{"type":"number","nullable":true},"state":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"approvedAmountUSD":{"type":"number","nullable":true},"tenancy":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"zipCode":{"type":"string","nullable":true},"validRegistrations":{"type":"number","nullable":true},"approvedForFemaAssistance":{"type":"number","nullable":true},"repairReplaceAmount":{"type":"number","nullable":true},"rentalAmount":{"type":"number","nullable":true},"otherNeedsAmount":{"type":"number","nullable":true},"applicantName":{"type":"string","nullable":true},"educationApplicant":{"type":"boolean","nullable":true},"numberOfProjects":{"type":"number","nullable":true},"incidentType":{"type":"string","nullable":true},"declarationDate":{"type":"string","nullable":true}},"required":["program","disasterNumber","state","county","approvedAmountUSD","tenancy","city","zipCode","validRegistrations","approvedForFemaAssistance","repairReplaceAmount","rentalAmount","otherNeedsAmount","applicantName","educationApplicant","numberOfProjects","incidentType","declarationDate"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","program","totalRecords","returned","returnedSumApprovedUSD","records","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.disaster-assistance","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"program","in":"query","required":false,"description":"'individuals' (IHP, default) or 'public'.","schema":{"type":"string","enum":["individuals","public"]}},{"name":"tenancy","in":"query","required":false,"description":"For program=individuals: 'owner' (default) or 'renter'.","schema":{"type":"string","enum":["owner","renter"]}},{"name":"disasterNumber","in":"query","required":false,"description":"FEMA disaster number.","schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"state","in":"query","required":false,"description":"2-letter US state/territory code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"zipCode","in":"query","required":false,"description":"5-digit ZIP (IHP only).","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/disaster-declarations":{"get":{"tags":["gov"],"summary":"FEMA federal disaster & emergency declarations - every...","description":"FEMA federal disaster & emergency declarations — every federally declared disaster since 1953, including the ones declared this week. Filter by state (2-letter), disasterNumber, declarationType (DR=major disaster, EM=emergency, FM/FS/FW=fire management), incidentType (e.g. Hurricane, Fire, Flood, Severe Storm), county (5-digit FIPS), fiscal year (fyDeclared), and declaration date range (fromDate/toDate, YYYY-MM-DD). With no filter, returns the most recent declarations nationwide. Returns the total matching count plus records (one per designated county/area) with the declaration string, disaster number, title, incident type, declaration + incident begin/end + closeout dates, designated area, county FIPS, FEMA region, and the assistance programs authorized (Individuals & Households, Individual Assistance, Public Assistance, Hazard Mitigation). Free, public-domain (OpenFEMA). Distinct from gov.risk-index (modeled future risk) and gov.nfip-claims (realized flood losses): this is the official federal-response record — for disaster-response logistics, eligibility checks, insurance, and emergency-management workflows.","operationId":"gov_disaster-declarations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string","nullable":true},"disasterNumber":{"type":"number","nullable":true},"declarationType":{"type":"string","nullable":true},"incidentType":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"fyDeclared":{"type":"number","nullable":true},"fromDate":{"type":"string","nullable":true},"toDate":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["state","disasterNumber","declarationType","incidentType","county","fyDeclared","fromDate","toDate","limit"],"additionalProperties":false},"totalDeclarations":{"type":"number","nullable":true},"returned":{"type":"number"},"declarations":{"type":"array","items":{"type":"object","properties":{"femaDeclarationString":{"type":"string","nullable":true},"disasterNumber":{"type":"number","nullable":true},"state":{"type":"string","nullable":true},"declarationType":{"type":"string","nullable":true},"declarationTypeLabel":{"type":"string","nullable":true},"declarationTitle":{"type":"string","nullable":true},"incidentType":{"type":"string","nullable":true},"declarationDate":{"type":"string","nullable":true},"fyDeclared":{"type":"number","nullable":true},"incidentBeginDate":{"type":"string","nullable":true},"incidentEndDate":{"type":"string","nullable":true},"disasterCloseoutDate":{"type":"string","nullable":true},"designatedArea":{"type":"string","nullable":true},"countyFips":{"type":"string","nullable":true},"region":{"type":"number","nullable":true},"tribalRequest":{"type":"boolean","nullable":true},"programs":{"type":"object","properties":{"individualsAndHouseholds":{"type":"boolean","nullable":true},"individualAssistance":{"type":"boolean","nullable":true},"publicAssistance":{"type":"boolean","nullable":true},"hazardMitigation":{"type":"boolean","nullable":true}},"required":["individualsAndHouseholds","individualAssistance","publicAssistance","hazardMitigation"],"additionalProperties":false}},"required":["femaDeclarationString","disasterNumber","state","declarationType","declarationTypeLabel","declarationTitle","incidentType","declarationDate","fyDeclared","incidentBeginDate","incidentEndDate","disasterCloseoutDate","designatedArea","countyFips","region","tribalRequest","programs"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","totalDeclarations","returned","declarations","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.disaster-declarations","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":false,"description":"2-letter US state/territory code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"disasterNumber","in":"query","required":false,"description":"FEMA disaster number.","schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"declarationType","in":"query","required":false,"description":"DR, EM, FM, FS, or FW.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"incidentType","in":"query","required":false,"description":"Incident type, e.g. Hurricane, Fire, Flood.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"county","in":"query","required":false,"description":"County name to filter by.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"fyDeclared","in":"query","required":false,"description":"Fy declared.","schema":{"type":"integer","minimum":1953,"maximum":2100}},{"name":"fromDate","in":"query","required":false,"description":"From date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"toDate","in":"query","required":false,"description":"To date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/district":{"get":{"tags":["gov"],"summary":"Resolve a US street address to its congressional district...","description":"Resolve a US street address to its congressional district (119th Congress), state, and county, via the US Census Bureau geocoder. Returns the matched/normalized address, latitude/longitude, state (name + 2-letter abbreviation), county, and the district number within the state (null for at-large or non-voting delegate districts). The point-in-polygon district lookup is something an agent can't do from a sandbox. Pair it with the gov/congress.* endpoints to find the representatives once you have the state + district. Public domain, keyless.","operationId":"gov_district","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items[0] = the geocoded district + state + county.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"matchedAddress":{"type":"string","nullable":true},"coordinates":{"type":"object","properties":{"lat":{"type":"number","nullable":true},"lon":{"type":"number","nullable":true}},"required":["lat","lon"],"additionalProperties":false,"nullable":true},"state":{"type":"string","nullable":true},"stateAbbr":{"type":"string","nullable":true},"stateFips":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"congress":{"type":"string"},"district":{"type":"string","nullable":true,"description":"District number within the state (null = at-large/delegate)."},"districtName":{"type":"string","nullable":true}},"required":["matchedAddress","coordinates","state","stateAbbr","stateFips","county","congress","district","districtName"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"source":{"type":"string"}},"required":["source"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.district","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"A US street address (one line, e.g. \"1600 Pennsylvania Ave NW, Washington, DC 20500\").","schema":{"type":"string","minLength":5,"maxLength":300}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/entity":{"get":{"tags":["gov"],"summary":"Look up entities registered to do business with the US...","description":"Look up entities registered to do business with the US federal government in SAM.gov. Search by ueiSAM (12-char Unique Entity ID), cageCode, or legalBusinessName (provide at least one); page with limit (1-100). Returns each entity with its UEI, CAGE code, legal and DBA name, SAM registration status and dates (registration, expiration, last update), purpose of registration, an active-exclusion flag, physical address, and business types — plus a total match count. Data: SAM.gov entity management, free and public-domain (registration core data; sensitive FOUO sections are not returned). The canonical federal counterparty identity key — pair with /api/gov/exclusions (debarment) and /api/law/sanctions-check (OFAC) for full counterparty due diligence.","operationId":"gov_entity","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching SAM entities, total = SAM total match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ueiSAM":{"type":"string","nullable":true},"cageCode":{"type":"string","nullable":true},"legalBusinessName":{"type":"string","nullable":true},"dbaName":{"type":"string","nullable":true},"samRegistered":{"type":"boolean","nullable":true},"registrationStatus":{"type":"string","nullable":true},"registrationDate":{"type":"string","nullable":true},"registrationExpirationDate":{"type":"string","nullable":true},"lastUpdateDate":{"type":"string","nullable":true},"purposeOfRegistration":{"type":"string","nullable":true},"hasActiveExclusion":{"type":"boolean","nullable":true},"physicalAddress":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zip":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["city","state","zip","country"],"additionalProperties":false,"nullable":true},"businessTypes":{"type":"array","items":{"type":"string"}}},"required":["ueiSAM","cageCode","legalBusinessName","dbaName","samRegistered","registrationStatus","registrationDate","registrationExpirationDate","lastUpdateDate","purposeOfRegistration","hasActiveExclusion","physicalAddress","businessTypes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"legalBusinessName":{"type":"string","nullable":true},"ueiSAM":{"type":"string","nullable":true},"cageCode":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["legalBusinessName","ueiSAM","cageCode","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.entity","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"legalBusinessName","in":"query","required":false,"description":"Legal business name.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"ueiSAM","in":"query","required":false,"description":"Uei sam.","schema":{"type":"string","minLength":12,"maxLength":12}},{"name":"cageCode","in":"query","required":false,"description":"Cage code.","schema":{"type":"string","minLength":3,"maxLength":10}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/epa-facilities":{"get":{"tags":["gov"],"summary":"EPA Facility Registry Service (FRS) - every regulated...","description":"EPA Facility Registry Service (FRS) — every regulated facility known to the EPA across all programs (RCRA hazardous waste, NPDES water discharge, SDWA drinking water, TRI toxic release, CAA Clean Air, Superfund, etc.). Filter by state (required), facility name prefix, and EPA program acronym. Each record includes registry ID, primary name, address, city/state/county/zip, EPA region, program system + ID, source-of-data system. Public-domain US government records.","operationId":"gov_epa-facilities","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = EPA-regulated facilities (state/name/program filtered); total = null (Envirofacts does not report a match count); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"registryId":{"type":"string"},"primaryName":{"type":"string","nullable":true},"locationAddress":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"epaRegion":{"type":"string","nullable":true},"programSystem":{"type":"string","nullable":true},"pgmSysId":{"type":"string","nullable":true},"sourceOfData":{"type":"string","nullable":true},"publicIndicator":{"type":"string","nullable":true}},"required":["registryId","primaryName","locationAddress","city","state","postalCode","county","epaRegion","programSystem","pgmSysId","sourceOfData","publicIndicator"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string"},"name":{"type":"string","nullable":true},"program":{"type":"string","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["state","name","program","limit","offset"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.epa-facilities","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"2-letter US state code. Required. Example: \"CA\", \"TX\", \"NY\".","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"name","in":"query","required":false,"description":"Facility-name prefix match (case-insensitive). Example: \"TESLA\", \"BOEING\", \"AMAZON\".","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"program","in":"query","required":false,"description":"Program system acronym. Examples: RCRA (hazardous waste), NPDES (water discharge), TRI (toxic release), AIR (Clean Air), SDWA (drinking water).","schema":{"type":"string","minLength":2,"maxLength":10,"pattern":"^[A-Za-z0-9]+$"}},{"name":"limit","in":"query","required":false,"description":"Max facilities to return (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Offset for pagination. Default 0.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/eu-tenders":{"get":{"tags":["gov"],"summary":"Search EU public-procurement notices from TED (Tenders...","description":"Search EU public-procurement notices from TED (Tenders Electronic Daily) — the official journal of European public tenders. Filter by country (ISO 3-letter buyer country, e.g. DEU, FRA, ESP), cpv (Common Procurement Vocabulary code/prefix, e.g. 72000000 = IT services), and/or keyword (full-text). Each result: publication number, English title, buyer name + country, publication date, tender deadline, CPV codes, notice + procedure type, total value, and links to the notice page + PDF. Power users can pass a raw `query` in TED's expert query language (e.g. '(buyer-country=FRA) AND (FT~\"hospital\")'). Free, reusable EU open data (attribution). Live procurement intelligence agents can't get from training — for bid discovery, market research, and supplier monitoring across all EU member states.","operationId":"gov_eu-tenders","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching notices (page slice); total = total matching across all pages.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"publicationNumber":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"buyer":{"type":"string","nullable":true},"buyerCountry":{"type":"string","nullable":true},"publicationDate":{"type":"string","nullable":true},"deadline":{"type":"string","nullable":true},"cpvCodes":{"type":"array","items":{"type":"string"}},"noticeType":{"type":"string","nullable":true},"procedureType":{"type":"string","nullable":true},"totalValue":{},"url":{"type":"string","nullable":true},"pdfUrl":{"type":"string","nullable":true}},"required":["publicationNumber","title","buyer","buyerCountry","publicationDate","deadline","cpvCodes","noticeType","procedureType","url","pdfUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.eu-tenders","x-2s-version":null,"x-2s-price":{"usd":0.00192},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001920"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":2,"maxLength":3}},{"name":"cpv","in":"query","required":false,"description":"Cpv.","schema":{"type":"string","minLength":2,"maxLength":8,"pattern":"^\\d+$"}},{"name":"keyword","in":"query","required":false,"description":"Keyword.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":500}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/exclusions":{"get":{"tags":["gov"],"summary":"Check whether a person or company is excluded (debarred or...","description":"Check whether a person or company is excluded (debarred or suspended) from receiving US federal contracts, grants, or assistance — the SAM.gov Exclusions list. Search by name (person or entity), ueiSAM, cageCode, and/or classificationType (Individual, Firm, Vessel, Special Entity Designation); page with limit (1-100). Returns each exclusion with the excluded name, classification, exclusion type and program, the excluding agency, UEI, activation and termination dates, and address — plus a total match count. Data: SAM.gov exclusions, free and public-domain. Distinct from /api/law/sanctions-check (OFAC sanctions) — this is federal procurement debarment. Use for vendor onboarding, grant eligibility, and counterparty due diligence; pair with /api/gov/entity and /api/law/sanctions-check.","operationId":"gov_exclusions","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching exclusion records, total = SAM total match count. meta.hasExclusion is the headline boolean.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"classificationType":{"type":"string","nullable":true},"exclusionType":{"type":"string","nullable":true},"exclusionProgram":{"type":"string","nullable":true},"excludingAgency":{"type":"string","nullable":true},"ueiSAM":{"type":"string","nullable":true},"activationDate":{"type":"string","nullable":true},"terminationDate":{"type":"string","nullable":true},"address":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["city","state","country"],"additionalProperties":false,"nullable":true}},"required":["name","classificationType","exclusionType","exclusionProgram","excludingAgency","ueiSAM","activationDate","terminationDate","address"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string","nullable":true},"ueiSAM":{"type":"string","nullable":true},"cageCode":{"type":"string","nullable":true},"classificationType":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["name","ueiSAM","cageCode","classificationType","limit"],"additionalProperties":false},"hasExclusion":{"type":"boolean","description":"True when at least one exclusion matched the query."}},"required":["query","hasExclusion"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.exclusions","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"ueiSAM","in":"query","required":false,"description":"Uei sam.","schema":{"type":"string","minLength":12,"maxLength":12}},{"name":"cageCode","in":"query","required":false,"description":"Cage code.","schema":{"type":"string","minLength":3,"maxLength":10}},{"name":"classificationType","in":"query","required":false,"description":"Classification type.","schema":{"type":"string","enum":["Individual","Firm","Vessel","Special Entity Designation"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fair-market-rent":{"get":{"tags":["gov"],"summary":"HUD Fair Market Rents (FMR) for a US county or state...","description":"HUD Fair Market Rents (FMR) for a US county or state — HUD’s annual gross-rent estimate (rent + utilities) by bedroom size (efficiency through 4-bedroom), the basis for Housing Choice Voucher payment standards and other HUD programs. Look up by 5-digit county FIPS (returns the county/metro rents, broken out per ZIP where HUD publishes Small Area FMRs) or by 2-letter state (returns every metro area + county). Optional year (defaults to latest). Source: HUD USER FMR API (US public domain).","operationId":"gov_fair-market-rent","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one FMR lookup with its areas[] (county / metro / ZIP small-areas), each carrying bedroom rents]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string","enum":["county","state"]},"fips":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"year":{"type":"string","nullable":true},"countyName":{"type":"string","nullable":true},"metroName":{"type":"string","nullable":true},"areaName":{"type":"string","nullable":true},"areas":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string","enum":["county","metro","smallarea","state-county"]},"name":{"type":"string","nullable":true},"zipCode":{"type":"string","nullable":true},"fipsCode":{"type":"string","nullable":true},"rents":{"type":"object","properties":{"efficiency":{"type":"number","nullable":true},"oneBedroom":{"type":"number","nullable":true},"twoBedroom":{"type":"number","nullable":true},"threeBedroom":{"type":"number","nullable":true},"fourBedroom":{"type":"number","nullable":true}},"required":["efficiency","oneBedroom","twoBedroom","threeBedroom","fourBedroom"],"additionalProperties":false},"fmrPercentile":{"type":"number","nullable":true}},"required":["level","name","zipCode","fipsCode","rents","fmrPercentile"],"additionalProperties":false}}},"required":["scope","fips","state","year","countyName","metroName","areaName","areas"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fair-market-rent","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fips","in":"query","required":false,"description":"5-digit US county FIPS, e.g. 06037 (Los Angeles County).","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"state","in":"query","required":false,"description":"2-letter US state abbreviation, e.g. CA.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"name":"year","in":"query","required":false,"description":"FMR year, e.g. 2026. Omit for the latest.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fcc-id":{"get":{"tags":["gov"],"summary":"Resolve an FCC ID (printed on US wireless/electronic...","description":"Resolve an FCC ID (printed on US wireless/electronic devices) to the grantee — the manufacturer that holds the FCC equipment authorization. Pass fccId in any form (BCG-E3217A, BCGE3217A). Returns the grantee code, the product code, and the grantee company: name, city, state, country, and the date its grantee code was registered. Uses the FCC EAS Equipment Authorization Grantee Registrations open dataset, free and keyless — the \"who made this device\" lookup an agent reading a label off hardware cannot do natively. (Per-product RF detail — frequencies, equipment class — is not in the open dataset and is out of scope.)","operationId":"gov_fcc-id","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"fccId":{"type":"string"}},"required":["fccId"],"additionalProperties":false},"found":{"type":"boolean"},"granteeCode":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"grantee":{"type":"object","properties":{"name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"zipCode":{"type":"string","nullable":true},"dateReceived":{"type":"string","nullable":true}},"required":["name","city","state","country","zipCode","dateReceived"],"additionalProperties":false,"nullable":true},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","found","granteeCode","productCode","grantee","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fcc-id","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fccId","in":"query","required":true,"description":"An FCC ID, e.g. BCG-E3217A or BCGE3217A.","schema":{"type":"string","minLength":3,"maxLength":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fda-animalvet-events":{"get":{"tags":["gov"],"summary":"FDA animal and veterinary adverse event reports, newest first.","description":"FDA animal and veterinary adverse event reports, newest first. All filters optional. Each record includes AER ID, dates, animal species/gender/breed/age/weight, reactions (VeDDRA-coded), drugs (brand + active ingredients + administration), primary reporter (Veterinarian/Owner/Other). Use cases: veterinary practice safety research, pet food adverse events, livestock drug surveillance. Backed by OpenFDA's /animalandveterinary/event endpoint; public-domain US government records.","operationId":"gov_fda-animalvet-events","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FDA animal/veterinary adverse event reports, newest first; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"aerId":{"type":"string"},"originalReceiveDate":{"type":"string","nullable":true},"onsetDate":{"type":"string","nullable":true},"numberAffected":{"type":"integer","nullable":true},"numberTreated":{"type":"integer","nullable":true},"animal":{"type":"object","properties":{"species":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"breed":{"type":"string","nullable":true},"ageValue":{"type":"string","nullable":true},"ageUnit":{"type":"string","nullable":true},"weightValue":{"type":"string","nullable":true},"weightUnit":{"type":"string","nullable":true}},"required":["species","gender","breed","ageValue","ageUnit","weightValue","weightUnit"],"additionalProperties":false},"reactions":{"type":"array","items":{"type":"object","properties":{"term":{"type":"string"},"veddraCode":{"type":"string","nullable":true}},"required":["term","veddraCode"],"additionalProperties":false}},"drugs":{"type":"array","items":{"type":"object","properties":{"brandName":{"type":"string","nullable":true},"activeIngredients":{"type":"array","items":{"type":"string"}},"administeredBy":{"type":"string","nullable":true},"route":{"type":"string","nullable":true}},"required":["brandName","activeIngredients","administeredBy","route"],"additionalProperties":false}},"primaryReporter":{"type":"string","nullable":true}},"required":["aerId","originalReceiveDate","onsetDate","numberAffected","numberTreated","animal","reactions","drugs","primaryReporter"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"drug":{"type":"string","nullable":true},"species":{"type":"string","nullable":true},"reaction":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["drug","species","reaction","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fda-animalvet-events","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"drug","in":"query","required":false,"description":"Drug name substring across brand + active ingredients. Examples: \"Heartgard\", \"Bravecto\", \"Apoquel\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"species","in":"query","required":false,"description":"Animal species. Examples: \"Dog\", \"Cat\", \"Horse\", \"Cattle\", \"Chicken\".","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"reaction","in":"query","required":false,"description":"Reaction (VeDDRA preferred term) substring. Examples: \"Vomiting\", \"Lethargy\", \"Death\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Max events (1-100). Default 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fda-device-events":{"get":{"tags":["gov"],"summary":"FDA medical device adverse event reports (MAUDE), newest...","description":"FDA medical device adverse event reports (MAUDE), newest first by date received. All filters optional. Each record includes report number, event type, dates received + of event, manufacturer, brand/generic device name, model + catalog numbers, listed device problems, patient outcomes, and primary narrative text. Backed by OpenFDA's /device/event endpoint; public-domain US government records.","operationId":"gov_fda-device-events","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FDA MAUDE device adverse event reports; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"reportNumber":{"type":"string"},"eventType":{"type":"string","nullable":true},"dateReceived":{"type":"string","nullable":true},"dateOfEvent":{"type":"string","nullable":true},"manufacturerName":{"type":"string","nullable":true},"brandName":{"type":"string","nullable":true},"genericName":{"type":"string","nullable":true},"modelNumber":{"type":"string","nullable":true},"catalogNumber":{"type":"string","nullable":true},"deviceProblems":{"type":"array","items":{"type":"string"}},"patientOutcome":{"type":"array","items":{"type":"string"}},"eventDescription":{"type":"string","nullable":true}},"required":["reportNumber","eventType","dateReceived","dateOfEvent","manufacturerName","brandName","genericName","modelNumber","catalogNumber","deviceProblems","patientOutcome","eventDescription"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"device":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"problem":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["device","manufacturer","problem","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fda-device-events","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"device","in":"query","required":false,"description":"Device-name substring across brand_name + generic_name. Examples: \"pacemaker\", \"insulin pump\", \"DePuy hip\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"manufacturer","in":"query","required":false,"description":"Manufacturer-name substring. Examples: \"medtronic\", \"boston scientific\", \"abbott\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"problem","in":"query","required":false,"description":"FDA device product code substring (advanced filter; most users want device or manufacturer).","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Max events (1-100). Default 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fda-drug-events":{"get":{"tags":["gov"],"summary":"Adverse drug event reports from FDA's Adverse Event...","description":"Adverse drug event reports from FDA's Adverse Event Reporting System (FAERS) — 9M+ records since 1968 covering serious adverse events, hospitalizations, deaths, and disabilities. Search by drug name (brand/generic/substance, all OR-matched) and optionally filter by MedDRA reaction term. Returns report ID, received date, seriousness flags, patient demographics, MedDRA-coded reactions, implicated drugs (up to 5 per report), and reporting country. Backed by OpenFDA; data is public-domain US government records.","operationId":"gov_fda-drug-events","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FDA FAERS adverse drug event reports; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"safetyReportId":{"type":"string"},"receivedDate":{"type":"string","nullable":true},"serious":{"type":"boolean"},"hospitalization":{"type":"boolean"},"death":{"type":"boolean"},"disabling":{"type":"boolean"},"lifeThreatening":{"type":"boolean"},"patientSex":{"type":"string","nullable":true},"patientAge":{"type":"string","nullable":true},"reactions":{"type":"array","items":{"type":"string"}},"drugs":{"type":"array","items":{"type":"object","properties":{"medicinalProduct":{"type":"string","nullable":true},"brandName":{"type":"string","nullable":true},"indication":{"type":"string","nullable":true},"dosageText":{"type":"string","nullable":true}},"required":["medicinalProduct","brandName","indication","dosageText"],"additionalProperties":false}},"occurCountry":{"type":"string","nullable":true}},"required":["safetyReportId","receivedDate","serious","hospitalization","death","disabling","lifeThreatening","patientSex","patientAge","reactions","drugs","occurCountry"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"drug":{"type":"string"},"reaction":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["drug","reaction","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fda-drug-events","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"drug","in":"query","required":true,"description":"Drug name (brand, generic, or substance). Examples: \"tylenol\", \"metformin\", \"lisinopril\". Case-insensitive.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"reaction","in":"query","required":false,"description":"Optional MedDRA preferred-term reaction filter. Examples: \"headache\", \"nausea\", \"anaphylaxis\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Max reports to return (1-100). Default 10.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fda-food-recalls":{"get":{"tags":["gov"],"summary":"FDA food recall enforcement reports, newest first by report...","description":"FDA food recall enforcement reports, newest first by report date. All filters optional. Each record includes recall number, status (Ongoing/Completed/Terminated/Pending), classification (Class I/II/III), product description, reason for recall, initial-notification mechanism, voluntary-vs-mandated, recalling firm + city/state/country, distribution pattern, and recall + report dates. Backed by OpenFDA's /food/enforcement endpoint; public-domain US government records.","operationId":"gov_fda-food-recalls","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FDA food recall enforcement reports, newest first; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recallNumber":{"type":"string"},"status":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"productType":{"type":"string","nullable":true},"productDescription":{"type":"string","nullable":true},"reasonForRecall":{"type":"string","nullable":true},"initialNotification":{"type":"string","nullable":true},"voluntaryMandated":{"type":"string","nullable":true},"recallingFirm":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"distributionPattern":{"type":"string","nullable":true},"recallInitiationDate":{"type":"string","nullable":true},"reportDate":{"type":"string","nullable":true}},"required":["recallNumber","status","classification","productType","productDescription","reasonForRecall","initialNotification","voluntaryMandated","recallingFirm","city","state","country","distributionPattern","recallInitiationDate","reportDate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"product":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["product","classification","status","state","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fda-food-recalls","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"product","in":"query","required":false,"description":"Product-name substring match on the recall description. Examples: \"spinach\", \"peanut butter\", \"infant formula\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"classification","in":"query","required":false,"description":"Optional class filter. I = life-threatening (e.g., Listeria, undeclared major allergen), II = temporary/reversible health risk, III = unlikely to cause harm (e.g., minor labeling).","schema":{"type":"string","enum":["I","II","III"]}},{"name":"status","in":"query","required":false,"description":"Optional status filter.","schema":{"type":"string","enum":["Ongoing","Completed","Terminated","Pending"]}},{"name":"state","in":"query","required":false,"description":"Optional 2-letter US state of the recalling firm (e.g., \"CA\", \"TX\").","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max recalls (1-100). Default 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fda-recalls":{"get":{"tags":["gov"],"summary":"FDA drug recall enforcement reports, newest first.","description":"FDA drug recall enforcement reports, newest first. All filters optional. Each record includes recall number, status (Ongoing/Completed/Terminated/Pending), classification (Class I/II/III), product description, reason for recall, initial-notification mechanism, voluntary-vs-mandated flag, recalling firm name + city/state/country, distribution pattern, and recall + report dates. Backed by OpenFDA's /drug/enforcement endpoint; data is public-domain US government records.","operationId":"gov_fda-recalls","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FDA drug recall enforcement reports, newest first; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recallNumber":{"type":"string"},"status":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"productType":{"type":"string","nullable":true},"productDescription":{"type":"string","nullable":true},"reasonForRecall":{"type":"string","nullable":true},"initialNotification":{"type":"string","nullable":true},"voluntaryMandated":{"type":"string","nullable":true},"recallingFirm":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"distributionPattern":{"type":"string","nullable":true},"recallInitiationDate":{"type":"string","nullable":true},"reportDate":{"type":"string","nullable":true}},"required":["recallNumber","status","classification","productType","productDescription","reasonForRecall","initialNotification","voluntaryMandated","recallingFirm","city","state","country","distributionPattern","recallInitiationDate","reportDate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"drug":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["drug","classification","status","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fda-recalls","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"drug","in":"query","required":false,"description":"Optional drug-name substring match on the recall product description. Examples: \"sanitizer\", \"metformin\", \"valsartan\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"classification","in":"query","required":false,"description":"Optional class filter. I = life-threatening, II = temporary/reversible health risk, III = unlikely to cause harm.","schema":{"type":"string","enum":["I","II","III"]}},{"name":"status","in":"query","required":false,"description":"Optional status filter.","schema":{"type":"string","enum":["Ongoing","Completed","Terminated","Pending"]}},{"name":"limit","in":"query","required":false,"description":"Max recalls to return (1-100). Default 20.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fec":{"get":{"tags":["gov"],"summary":"US federal campaign finance from the FEC (openFEC).","description":"US federal campaign finance from the FEC (openFEC). Two modes: pass name to search candidates (returns FEC candidate id, party, office, state, district, incumbent/challenger, status, and election cycles); or pass candidateId (e.g. P80000722) to get that candidate's aggregate financial totals — total receipts, disbursements, cash on hand, and individual / PAC / party / self contributions in USD for the newest cycle, alongside identity. Free, public-domain (FEC). Search by name first, then pass a returned candidateId back in for the money. For donor/spend diligence, political research, and disclosure lookups.","operationId":"gov_fec","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = candidates (finance populated only in candidateId mode); total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"candidateId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"party":{"type":"string","nullable":true},"office":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"incumbentChallenge":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"cycles":{"type":"array","items":{"type":"number"}},"electionYears":{"type":"array","items":{"type":"number"}},"finance":{"type":"object","properties":{"cycle":{"type":"number","nullable":true},"coverageEndDate":{"type":"string","nullable":true},"receiptsUSD":{"type":"number","nullable":true},"disbursementsUSD":{"type":"number","nullable":true},"cashOnHandUSD":{"type":"number","nullable":true},"individualContributionsUSD":{"type":"number","nullable":true},"pacContributionsUSD":{"type":"number","nullable":true},"partyContributionsUSD":{"type":"number","nullable":true},"candidateContributionsUSD":{"type":"number","nullable":true}},"required":["cycle","coverageEndDate","receiptsUSD","disbursementsUSD","cashOnHandUSD","individualContributionsUSD","pacContributionsUSD","partyContributionsUSD","candidateContributionsUSD"],"additionalProperties":false,"nullable":true}},"required":["candidateId","name","party","office","state","district","incumbentChallenge","status","cycles","electionYears","finance"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fec","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"candidateId","in":"query","required":false,"description":"Candidate ID.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{1,20}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fec-candidate":{"get":{"tags":["gov"],"summary":"Search US federal political candidates via the OpenFEC API.","description":"Search US federal political candidates via the OpenFEC API. Filter by free-text q (name match), candidate ID (e.g. H0VA01076), state, district, party (DEM, REP, IND, LIB, GRE, etc.), office (P=President | S=Senate | H=House), election cycle (even years), election year, and hasRaised (only candidates with reported receipts). Returns FEC candidate ID, name, party, office, state/district, incumbency status, active-through cycle, first/last file dates, cycles, principal committee linkage. Use the candidate ID returned here to fetch their committees with /api/gov/fec-committee.","operationId":"gov_fec-candidate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FEC candidate records; total = upstream match count (OpenFEC pagination.count); page = pagination block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fec-candidate","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"candidateId","in":"query","required":false,"description":"Candidate ID.","schema":{"type":"string","pattern":"^[A-Z]\\d[A-Z0-9]{7}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"district","in":"query","required":false,"description":"District.","schema":{"type":"string","pattern":"^\\d{2}$"}},{"name":"party","in":"query","required":false,"description":"Party.","schema":{"type":"string","pattern":"^[A-Za-z]{3,4}$"}},{"name":"office","in":"query","required":false,"description":"Office.","schema":{"type":"string","enum":["P","S","H"]}},{"name":"cycle","in":"query","required":false,"description":"Two-year US election cycle, given as the even-numbered end year (e.g. 2024).","schema":{"type":"integer","minimum":1980,"maximum":2100}},{"name":"electionYear","in":"query","required":false,"description":"Election year.","schema":{"type":"integer","minimum":1980,"maximum":2100}},{"name":"hasRaised","in":"query","required":false,"description":"Has raised.","schema":{"type":"boolean"}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fec-committee":{"get":{"tags":["gov"],"summary":"Search US federal political committees (PACs, super PACs...","description":"Search US federal political committees (PACs, super PACs, party committees, candidate principal committees, leadership PACs, etc.) via the OpenFEC API. Filter by q (name match), committee ID, candidate ID (returns committees linked to that candidate), committee type (P=Presidential | S=Senate | H=House | X=Independent expenditure-only | Y=Party | Z=National Party non-federal), designation (A=Authorized | J=Joint fundraising | P=Principal | U=Unauthorized | B=Lobbyist/Registrant PAC), state, party, cycle, organization type (C=Corporation | L=Labor | M=Membership | T=Trade | V=Cooperative | W=Corp without stock). Returns FEC committee ID, name, type/designation/organization labels, state, party, treasurer, linked candidate IDs, cycles, affiliated-committee names, first/last file dates.","operationId":"gov_fec-committee","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FEC committee records; total = upstream match count (OpenFEC pagination.count); page = pagination block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fec-committee","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"committeeId","in":"query","required":false,"description":"Committee ID.","schema":{"type":"string","pattern":"^C\\d{8}$"}},{"name":"candidateId","in":"query","required":false,"description":"Candidate ID.","schema":{"type":"string","pattern":"^[A-Z]\\d[A-Z0-9]{7}$"}},{"name":"committeeType","in":"query","required":false,"description":"Committee type.","schema":{"type":"string","enum":["P","S","H","X","Y","Z","N","I","O","Q","U","V","W","D","E"]}},{"name":"designation","in":"query","required":false,"description":"Designation.","schema":{"type":"string","enum":["A","J","P","U","B","D"]}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"party","in":"query","required":false,"description":"Party.","schema":{"type":"string","pattern":"^[A-Za-z]{3,4}$"}},{"name":"cycle","in":"query","required":false,"description":"Two-year US election cycle, given as the even-numbered end year (e.g. 2024).","schema":{"type":"integer","minimum":1980,"maximum":2100}},{"name":"organizationType","in":"query","required":false,"description":"Organization type.","schema":{"type":"string","enum":["C","L","M","T","V","W"]}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fec-contributions":{"get":{"tags":["gov"],"summary":"Search FEC Schedule A - every itemized contribution to a...","description":"Search FEC Schedule A — every itemized contribution to a federal political committee (>264M rows across all cycles). Filter by recipient committeeId or candidateId, contributor name / city / state / zip / employer / occupation, amount range, cycle (twoYearTransactionPeriod e.g. 2024), date range, isIndividual (true = individuals only; false = committee-to-committee). Sort by contribution date or amount, asc/desc. Requires at least one scope (committeeId, candidateId, twoYearTransactionPeriod cycle, or a date range) — an unscoped query scans every cycle and times out. The investigative-journalism + political-research goldmine: who gives, how much, when, working where, doing what. Each row carries the contribution receipt date, amount, contributor aggregate YTD, receipt type, memo, entity type, and link to the underlying PDF filing.","operationId":"gov_fec-contributions","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FEC Schedule A itemized contributions; total = upstream match count (OpenFEC pagination.count, null on deep keyset pages); page = pagination block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fec-contributions","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"committeeId","in":"query","required":false,"description":"Committee ID.","schema":{"type":"string","pattern":"^C\\d{8}$"}},{"name":"candidateId","in":"query","required":false,"description":"Candidate ID.","schema":{"type":"string","pattern":"^[A-Z]\\d[A-Z0-9]{7}$"}},{"name":"contributorName","in":"query","required":false,"description":"Contributor name.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"contributorCity","in":"query","required":false,"description":"Contributor city.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"contributorState","in":"query","required":false,"description":"Contributor state.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"contributorZip","in":"query","required":false,"description":"Contributor ZIP.","schema":{"type":"string","pattern":"^\\d{5}(\\d{4})?$"}},{"name":"contributorEmployer","in":"query","required":false,"description":"Contributor employer.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"contributorOccupation","in":"query","required":false,"description":"Contributor occupation.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"minAmount","in":"query","required":false,"description":"Minimum amount to include (USD).","schema":{"type":"number","minimum":0}},{"name":"maxAmount","in":"query","required":false,"description":"Maximum amount to include (USD).","schema":{"type":"number","minimum":0}},{"name":"twoYearTransactionPeriod","in":"query","required":false,"description":"Two year transaction period.","schema":{"type":"integer","minimum":1980,"maximum":2100}},{"name":"minDate","in":"query","required":false,"description":"Min date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"maxDate","in":"query","required":false,"description":"Max date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"isIndividual","in":"query","required":false,"description":"Is individual.","schema":{"type":"boolean"}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"sortField","in":"query","required":false,"description":"Sort field.","schema":{"type":"string","enum":["contribution_receipt_date","contribution_receipt_amount"]}},{"name":"sortDirection","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fec-expenditures":{"get":{"tags":["gov"],"summary":"Search FEC Schedule B - every itemized disbursement (spend...","description":"Search FEC Schedule B — every itemized disbursement (spend, vendor payment, operating expenditure, contribution out, transfer) made by a federal political committee (>157M rows). Filter by committeeId, recipient name / city / state, disbursement purpose category (Administrative / Fundraising / Media / Polling / Salary / Travel / Operating / Contribution / Loan / etc.), description text, amount range, cycle, date range. Sort by date or amount. Every row carries: who got paid, when, how much, for what, with link to underlying PDF. The natural pair with /api/gov/fec-contributions for following the money on both sides of any federal committee.","operationId":"gov_fec-expenditures","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FEC Schedule B itemized disbursements; total = upstream match count (OpenFEC pagination.count, null when upstream omits it); page = pagination block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fec-expenditures","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"committeeId","in":"query","required":false,"description":"Committee ID.","schema":{"type":"string","pattern":"^C\\d{8}$"}},{"name":"recipientName","in":"query","required":false,"description":"Recipient name.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"recipientCity","in":"query","required":false,"description":"Recipient city.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"recipientState","in":"query","required":false,"description":"Recipient state.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"disbursementPurposeCategory","in":"query","required":false,"description":"Disbursement purpose category.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"disbursementDescription","in":"query","required":false,"description":"Disbursement description.","schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"minAmount","in":"query","required":false,"description":"Minimum amount to include (USD).","schema":{"type":"number","minimum":0}},{"name":"maxAmount","in":"query","required":false,"description":"Maximum amount to include (USD).","schema":{"type":"number","minimum":0}},{"name":"twoYearTransactionPeriod","in":"query","required":false,"description":"Two year transaction period.","schema":{"type":"integer","minimum":1980,"maximum":2100}},{"name":"minDate","in":"query","required":false,"description":"Min date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"maxDate","in":"query","required":false,"description":"Max date.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"sortField","in":"query","required":false,"description":"Sort field.","schema":{"type":"string","enum":["disbursement_date","disbursement_amount"]}},{"name":"sortDirection","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["asc","desc"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/fec-totals":{"get":{"tags":["gov"],"summary":"Aggregate financial summaries (receipts, disbursements...","description":"Aggregate financial summaries (receipts, disbursements, cash-on-hand, debt, transfers, refunds, contributions by source, etc.) per cycle for federal candidates (scope=candidates) or committees (scope=committees). Filter by candidateId / committeeId, cycle, office (P/S/H), party, state, district. For candidates, electionFull=true rolls all cycles of a single election into one row (e.g. a presidential cycle spans 4 years). Use this for top-line \"how much did they raise/spend\" answers without paging through millions of itemized transactions.","operationId":"gov_fec-totals","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-cycle FEC financial summary rows; total = upstream match count (OpenFEC pagination.count); page = pagination block; meta.scope echoes candidates/committees.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","properties":{"scope":{"type":"string","enum":["candidates","committees"]}},"required":["scope"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.fec-totals","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"scope","in":"query","required":true,"description":"Scope.","schema":{"type":"string","enum":["candidates","committees"]}},{"name":"candidateId","in":"query","required":false,"description":"Candidate ID.","schema":{"type":"string","pattern":"^[A-Z]\\d[A-Z0-9]{7}$"}},{"name":"committeeId","in":"query","required":false,"description":"Committee ID.","schema":{"type":"string","pattern":"^C\\d{8}$"}},{"name":"cycle","in":"query","required":false,"description":"Two-year US election cycle, given as the even-numbered end year (e.g. 2024).","schema":{"type":"integer","minimum":1980,"maximum":2100}},{"name":"office","in":"query","required":false,"description":"Office.","schema":{"type":"string","enum":["P","S","H"]}},{"name":"party","in":"query","required":false,"description":"Party.","schema":{"type":"string","pattern":"^[A-Za-z]{3,4}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"district","in":"query","required":false,"description":"District.","schema":{"type":"string","pattern":"^\\d{2}$"}},{"name":"electionFull","in":"query","required":false,"description":"Election full.","schema":{"type":"boolean"}},{"name":"perPage","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/federal-register-recent":{"get":{"tags":["gov"],"summary":"Newest Federal Register documents by publication date...","description":"Newest Federal Register documents by publication date — chronological feed for compliance change-detection. Filter by document type (RULE / PRORULE / NOTICE / PRESDOCU), agency name, and publication date range. Each record includes document number, type, title, abstract, publication date, effective date, agencies, citations (CFR/USC), HTML + PDF URLs. Defaults to last 7 days of final rules. Free public-domain data from federalregister.gov.","operationId":"gov_federal-register-recent","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = recent Federal Register documents in chronological order; total = upstream match count; meta.hasNext signals more pages, meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"documentNumber":{"type":"string"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"abstract":{"type":"string","nullable":true},"publicationDate":{"type":"string","nullable":true},"effectiveOn":{"type":"string","nullable":true},"agencies":{"type":"array","items":{"type":"string"}},"citations":{"type":"array","items":{"type":"string"}},"htmlUrl":{"type":"string","format":"uri","nullable":true},"pdfUrl":{"type":"string","format":"uri","nullable":true}},"required":["documentNumber","type","title","abstract","publicationDate","effectiveOn","agencies","citations","htmlUrl","pdfUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"type":{"type":"string"},"agency":{"type":"string","nullable":true},"since":{"type":"string"},"until":{"type":"string"},"limit":{"type":"integer"},"page":{"type":"integer"}},"required":["type","agency","since","until","limit","page"],"additionalProperties":false},"hasNext":{"type":"boolean"}},"required":["query","hasNext"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.federal-register-recent","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"type","in":"query","required":false,"description":"Document type: RULE = final rules, PRORULE = proposed rules, NOTICE = notices, PRESDOCU = presidential docs.","schema":{"type":"string","enum":["RULE","PRORULE","NOTICE","PRESDOCU"],"default":"RULE"}},{"name":"agency","in":"query","required":false,"description":"Agency slug or name (e.g., \"environmental-protection-agency\", \"federal-trade-commission\").","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"since","in":"query","required":false,"description":"Earliest publication date (YYYY-MM-DD). Default = 7 days ago.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"until","in":"query","required":false,"description":"Latest publication date (YYYY-MM-DD). Default = today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max results (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based). Default 1.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/foreign-agents":{"get":{"tags":["gov"],"summary":"Search currently-active FARA (Foreign Agents Registration...","description":"Search currently-active FARA (Foreign Agents Registration Act) registrants by name. Pass a company or person name; returns whether the entity is a registered foreign agent (isRegisteredForeignAgent), a single KYB-safe bestMatch (null below medium confidence — no false positives), and scored candidate matches with registration number, registration date, city/state, and a 0-1 match score + confidence (high/medium/low). FARA registration is a US disclosure status (an agent acting for a foreign principal), not wrongdoing. Authoritative DOJ FARA eFile data, free and keyless — the foreign-agent check a compliance or procurement agent cannot derive from training.","operationId":"gov_foreign-agents","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":false},"isRegisteredForeignAgent":{"type":"boolean"},"bestMatch":{"type":"object","properties":{"registrationNumber":{"type":"number","nullable":true},"name":{"type":"string"},"registrationDate":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"score":{"type":"number"},"confidence":{"type":"string","enum":["high","medium","low"]}},"required":["registrationNumber","name","registrationDate","city","state","score","confidence"],"additionalProperties":false,"nullable":true},"matchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","properties":{"registrationNumber":{"type":"number","nullable":true},"name":{"type":"string"},"registrationDate":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"score":{"type":"number"},"confidence":{"type":"string","enum":["high","medium","low"]}},"required":["registrationNumber","name","registrationDate","city","state","score","confidence"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","isRegisteredForeignAgent","bestMatch","matchCount","matches","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.foreign-agents","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Company or person name to screen against FARA registrants.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Max candidate matches (default 5).","schema":{"type":"integer","minimum":1,"maximum":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/hazard-mitigation":{"get":{"tags":["gov"],"summary":"FEMA Hazard Mitigation Assistance (HMA) funded projects...","description":"FEMA Hazard Mitigation Assistance (HMA) funded projects — the pre- and post-disaster mitigation grants FEMA has actually obligated (HMGP, BRIC/PDM, FMA). Filter by state (2-letter), disasterNumber, programFy (program fiscal year), and/or programArea; at least one filter is required. Returns the total matching project count plus projects (identifier, program area, project type, status, recipient/subrecipient, county, disaster number, project amount and federal share obligated in USD, cost-share %, benefit-cost ratio, number of properties, approval/close dates), largest federal share first. Free, public-domain (OpenFEMA). Distinct from gov.public-assistance (post-disaster recovery grants) and gov.nfip-claims (flood losses paid) — this is mitigation funding: who got money to reduce future risk, where, and at what benefit-cost ratio.","operationId":"gov_hazard-mitigation","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one HMA result object]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string","nullable":true},"disasterNumber":{"type":"number","nullable":true},"programFy":{"type":"number","nullable":true},"programArea":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["state","disasterNumber","programFy","programArea","limit"],"additionalProperties":false},"totalProjects":{"type":"number","nullable":true},"returned":{"type":"number"},"returnedSummary":{"type":"object","properties":{"totalFederalShareUSD":{"type":"number"},"averageBenefitCostRatio":{"type":"number","nullable":true}},"required":["totalFederalShareUSD","averageBenefitCostRatio"],"additionalProperties":false},"projects":{"type":"array","items":{"type":"object","properties":{"projectIdentifier":{"type":"string","nullable":true},"programArea":{"type":"string","nullable":true},"programFy":{"type":"number","nullable":true},"projectType":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"countyCode":{"type":"string","nullable":true},"disasterNumber":{"type":"number","nullable":true},"recipient":{"type":"string","nullable":true},"subrecipient":{"type":"string","nullable":true},"projectAmountUSD":{"type":"number","nullable":true},"federalShareObligatedUSD":{"type":"number","nullable":true},"costSharePercentage":{"type":"number","nullable":true},"benefitCostRatio":{"type":"number","nullable":true},"numberOfProperties":{"type":"number","nullable":true},"dateApproved":{"type":"string","nullable":true},"dateClosed":{"type":"string","nullable":true}},"required":["projectIdentifier","programArea","programFy","projectType","status","state","county","countyCode","disasterNumber","recipient","subrecipient","projectAmountUSD","federalShareObligatedUSD","costSharePercentage","benefitCostRatio","numberOfProperties","dateApproved","dateClosed"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","totalProjects","returned","returnedSummary","projects","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.hazard-mitigation","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":false,"description":"2-letter US state/territory code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"disasterNumber","in":"query","required":false,"description":"Disaster number.","schema":{"type":"integer","minimum":1,"maximum":100000}},{"name":"programFy","in":"query","required":false,"description":"Program fy.","schema":{"type":"integer","minimum":1989,"maximum":2100}},{"name":"programArea","in":"query","required":false,"description":"Program area.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/house-votes":{"get":{"tags":["gov"],"summary":"US House of Representatives roll-call votes, newest first...","description":"US House of Representatives roll-call votes, newest first by action date. Each record includes year + roll number, congress/session, vote question + type + result, action date/time, bill reference (legis_num), description, grand totals (yea/nay/present/not-voting), AND per-party breakdown (Republican/Democratic/Independent yea/nay/present/not-voting counts). Filters (all optional, AND-combined): year, congress, result substring, bill substring (legis_num ILIKE), since/until (action_date), limit + offset. Locally aggregated from clerk.house.gov XML feeds (refreshed daily by cron). Public-domain US government records.","operationId":"gov_house-votes","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = US House roll-call votes with per-party totals; total = matching rows; meta carries the query echo + nextOffset/previousOffset.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"year":{"type":"integer"},"roll":{"type":"integer"},"congress":{"type":"integer","nullable":true},"session":{"type":"string","nullable":true},"voteQuestion":{"type":"string","nullable":true},"voteType":{"type":"string","nullable":true},"voteResult":{"type":"string","nullable":true},"actionDate":{"type":"string","nullable":true},"actionTime":{"type":"string","nullable":true},"legisNum":{"type":"string","nullable":true},"voteDesc":{"type":"string","nullable":true},"totals":{"type":"object","properties":{"yea":{"type":"integer"},"nay":{"type":"integer"},"present":{"type":"integer"},"notVoting":{"type":"integer"}},"required":["yea","nay","present","notVoting"],"additionalProperties":false},"totalsByParty":{"type":"object","additionalProperties":{"type":"object","properties":{"yea":{"type":"integer"},"nay":{"type":"integer"},"present":{"type":"integer"},"not_voting":{"type":"integer"}},"required":["yea","nay","present","not_voting"],"additionalProperties":false}},"sourceXmlUrl":{"type":"string","format":"uri"}},"required":["year","roll","congress","session","voteQuestion","voteType","voteResult","actionDate","actionTime","legisNum","voteDesc","totals","totalsByParty","sourceXmlUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"year":{"type":"number","nullable":true},"congress":{"type":"number","nullable":true},"result":{"type":"string","nullable":true},"bill":{"type":"string","nullable":true},"since":{"type":"string","nullable":true},"until":{"type":"string","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["year","congress","result","bill","since","until","limit","offset"],"additionalProperties":false},"nextOffset":{"type":"integer","nullable":true},"previousOffset":{"type":"integer","nullable":true}},"required":["query","nextOffset","previousOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.house-votes","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"year","in":"query","required":false,"description":"Filter by year. Example: 2025.","schema":{"type":"integer","minimum":1990,"maximum":2099}},{"name":"congress","in":"query","required":false,"description":"Filter by Congress number. The 119th Congress = 2025-2026.","schema":{"type":"integer","minimum":100,"maximum":200}},{"name":"result","in":"query","required":false,"description":"Filter by vote result (case-insensitive substring). Examples: \"Passed\", \"Failed\", \"Agreed\".","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"bill","in":"query","required":false,"description":"Filter by bill reference (case-insensitive substring on legis_num). Examples: \"H R 498\", \"H R 49\", \"S 1\".","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"since","in":"query","required":false,"description":"Earliest action date (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"until","in":"query","required":false,"description":"Latest action date (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max records (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Offset for pagination. Default 0.","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/income-limits":{"get":{"tags":["gov"],"summary":"HUD Income Limits (IL) for a US county or state - the...","description":"HUD Income Limits (IL) for a US county or state — the program-eligibility thresholds for HUD assistance, derived from Area Median Family Income: extremely-low (30% AMI), very-low (50% AMI), and low (80% AMI) income limits for household sizes 1–8, plus the area median income. Look up by 5-digit county FIPS or by 2-letter state. Optional year (defaults to latest). The raw HUD il30/il50/il80 codes are reshaped into clear nested limits by household size. Source: HUD USER Income Limits API (US public domain).","operationId":"gov_income-limits","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one income-limits lookup with medianIncome + 30/50/80% AMI limits by household size]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string","enum":["county","state"]},"fips":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"year":{"type":"string","nullable":true},"areaName":{"type":"string","nullable":true},"medianIncome":{"type":"number","nullable":true},"extremelyLow30pct":{"type":"object","properties":{"hh1":{"type":"number","nullable":true},"hh2":{"type":"number","nullable":true},"hh3":{"type":"number","nullable":true},"hh4":{"type":"number","nullable":true},"hh5":{"type":"number","nullable":true},"hh6":{"type":"number","nullable":true},"hh7":{"type":"number","nullable":true},"hh8":{"type":"number","nullable":true}},"required":["hh1","hh2","hh3","hh4","hh5","hh6","hh7","hh8"],"additionalProperties":false},"veryLow50pct":{"type":"object","properties":{"hh1":{"type":"number","nullable":true},"hh2":{"type":"number","nullable":true},"hh3":{"type":"number","nullable":true},"hh4":{"type":"number","nullable":true},"hh5":{"type":"number","nullable":true},"hh6":{"type":"number","nullable":true},"hh7":{"type":"number","nullable":true},"hh8":{"type":"number","nullable":true}},"required":["hh1","hh2","hh3","hh4","hh5","hh6","hh7","hh8"],"additionalProperties":false},"lowIncome80pct":{"type":"object","properties":{"hh1":{"type":"number","nullable":true},"hh2":{"type":"number","nullable":true},"hh3":{"type":"number","nullable":true},"hh4":{"type":"number","nullable":true},"hh5":{"type":"number","nullable":true},"hh6":{"type":"number","nullable":true},"hh7":{"type":"number","nullable":true},"hh8":{"type":"number","nullable":true}},"required":["hh1","hh2","hh3","hh4","hh5","hh6","hh7","hh8"],"additionalProperties":false}},"required":["scope","fips","state","year","areaName","medianIncome","extremelyLow30pct","veryLow50pct","lowIncome80pct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.income-limits","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fips","in":"query","required":false,"description":"5-digit US county FIPS, e.g. 06037 (Los Angeles County).","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"state","in":"query","required":false,"description":"2-letter US state abbreviation, e.g. CA.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"name":"year","in":"query","required":false,"description":"Income-limit year, e.g. 2026. Omit for the latest.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/inmate-locator":{"get":{"tags":["gov"],"summary":"Search the Federal Bureau of Prisons inmate locator...","description":"Search the Federal Bureau of Prisons inmate locator — federal inmates from 1982 to present, both currently incarcerated and released. Search by lastName (+ optional firstName/middleName, age, sex, race) or by exact BOP register number (inmateNumber, e.g. \"12345-678\"). Each match: full name, register number, sex, race, age, current facility (code/name/type), projected release date, actual release date (when released). KYC, due-diligence, journalism, and background-research staple. Federal public data.","operationId":"gov_inmate-locator","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched federal inmates; total = match count (null when BOP capped the list); meta.capped flags truncation.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"object","properties":{"first":{"type":"string","nullable":true},"middle":{"type":"string","nullable":true},"last":{"type":"string","nullable":true},"suffix":{"type":"string","nullable":true}},"required":["first","middle","last","suffix"],"additionalProperties":false},"inmateNumber":{"type":"string","nullable":true},"sex":{"type":"string","nullable":true},"race":{"type":"string","nullable":true},"age":{"type":"number","nullable":true},"facility":{"type":"object","properties":{"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["code","name","type"],"additionalProperties":false,"nullable":true},"projectedReleaseDate":{"type":"string","nullable":true},"actualReleaseDate":{"type":"string","nullable":true},"releaseCode":{"type":"string","nullable":true}},"required":["name","inmateNumber","sex","race","age","facility","projectedReleaseDate","actualReleaseDate","releaseCode"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"capped":{"type":"boolean","description":"True when BOP truncated the match list; total is null in that case."}},"required":["capped"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.inmate-locator","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lastName","in":"query","required":false,"description":"Last name to filter by.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"firstName","in":"query","required":false,"description":"First name to filter by.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"middleName","in":"query","required":false,"description":"Middle name.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"inmateNumber","in":"query","required":false,"description":"Inmate number.","schema":{"type":"string","pattern":"^\\d{5}-\\d{3}$"}},{"name":"age","in":"query","required":false,"description":"Age.","schema":{"type":"integer","minimum":18,"maximum":120}},{"name":"sex","in":"query","required":false,"description":"Sex.","schema":{"type":"string","enum":["Male","Female"]}},{"name":"race","in":"query","required":false,"description":"Race.","schema":{"type":"string","maxLength":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/lobbying-filings":{"get":{"tags":["gov"],"summary":"Search US federal lobbying disclosures (Senate LDA filings)...","description":"Search US federal lobbying disclosures (Senate LDA filings) — who lobbies for whom, on what issues, for how much. Filter by registrant (lobbying firm name), client (organization being represented), lobbyist (individual name), year, period (first_quarter|second_quarter|third_quarter|fourth_quarter|mid_year|year_end), and type (e.g. RR=registration, Q1-Q4=quarterly reports). Each filing: type, year/period, reported income or expenses (USD), registrant + client (id/name/description/state), lobbying issues (code + description), lobbyist count, official document URL, posted timestamp. Money-in-politics, journalism, and policy-intelligence staple. Public federal data.","operationId":"gov_lobbying-filings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = LDA lobbying filings (registrant, client, issues, income/expenses); total = upstream match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"filingUuid":{"type":"string"},"type":{"type":"string","nullable":true},"typeDisplay":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"period":{"type":"string","nullable":true},"periodDisplay":{"type":"string","nullable":true},"income":{"type":"number","nullable":true},"expenses":{"type":"number","nullable":true},"registrant":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["id","name","description"],"additionalProperties":false,"nullable":true},"client":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["id","name","description","state"],"additionalProperties":false,"nullable":true},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["code","description"],"additionalProperties":false}},"lobbyistCount":{"type":"number"},"documentUrl":{"type":"string","nullable":true},"postedAt":{"type":"string","nullable":true}},"required":["filingUuid","type","typeDisplay","year","period","periodDisplay","income","expenses","registrant","client","issues","lobbyistCount","documentUrl","postedAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.lobbying-filings","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"registrant","in":"query","required":false,"description":"Registrant.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"client","in":"query","required":false,"description":"Client.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"lobbyist","in":"query","required":false,"description":"Lobbyist.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":1999,"maximum":2030}},{"name":"period","in":"query","required":false,"description":"Period.","schema":{"type":"string","enum":["first_quarter","second_quarter","third_quarter","fourth_quarter","mid_year","year_end"]}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","maxLength":8}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"pageSize","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":25,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/msha-accidents":{"get":{"tags":["gov"],"summary":"Search MSHA mine safety accident records via US Department...","description":"Search MSHA mine safety accident records via US Department of Labor Open Data Portal (~738k accidents at US mines). Each row carries mine id, contractor id, mine subunit (underground/surface/mill/etc.), FIPS state code, accident date, classification, narrative, injury degree + nature + body-part, occupation code, experience, schooling, sex, age. Filter by mine id, contractor id, FIPS state code, subunit code, accident date range, classification code. Source of truth for fatalities + injuries at every US coal + metal/nonmetal mine since 2000.","operationId":"gov_msha-accidents","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = MSHA mine safety accident records.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"nextOffset":{"type":"integer","nullable":true}},"required":["nextOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.msha-accidents","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"mineId","in":"query","required":false,"description":"Mine ID.","schema":{"type":"string","pattern":"^\\d{4,8}$"}},{"name":"contractorId","in":"query","required":false,"description":"Contractor ID.","schema":{"type":"string","pattern":"^[A-Z0-9]{3,10}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","pattern":"^\\d{2}$"}},{"name":"subunit","in":"query","required":false,"description":"Subunit.","schema":{"type":"string","pattern":"^\\d{2}$"}},{"name":"accidentDateMin","in":"query","required":false,"description":"Accident date min.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"accidentDateMax","in":"query","required":false,"description":"Accident date max.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"classification","in":"query","required":false,"description":"Classification.","schema":{"type":"string","pattern":"^\\d{2,3}$"}},{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*$","maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/nfip-claims":{"get":{"tags":["gov"],"summary":"FEMA National Flood Insurance Program (NFIP) claims history...","description":"FEMA National Flood Insurance Program (NFIP) claims history for a US location — the flood losses actually paid out in an area. Requires state (2-letter); optionally narrow by county (5-digit FIPS), ZIP, and yearOfLoss range (yearFrom/yearTo). Returns the total matching claim count plus recent redacted claim records (date of loss, county / census tract / ZIP, flood zone rated at time of loss, cause of damage, water depth, net building + contents payment in USD, building coverage, approximate lat/lon), largest net payout first (the notable losses). FEMA redacts the city field, so filter by county FIPS or ZIP. Free, public-domain (OpenFEMA). Distinct from geo.flood-zone (current SFHA designation) and gov.risk-index (modeled future risk): this is the realized loss track record — for insurance underwriting and property due diligence.","operationId":"gov_nfip-claims","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string"},"county":{"type":"string","nullable":true},"zip":{"type":"string","nullable":true},"yearFrom":{"type":"number","nullable":true},"yearTo":{"type":"number","nullable":true},"limit":{"type":"number"}},"required":["state","county","zip","yearFrom","yearTo","limit"],"additionalProperties":false},"totalClaims":{"type":"number","nullable":true},"returned":{"type":"number"},"returnedSummary":{"type":"object","properties":{"totalPaid":{"type":"number"},"averagePaid":{"type":"number","nullable":true}},"required":["totalPaid","averagePaid"],"additionalProperties":false},"claims":{"type":"array","items":{"type":"object","properties":{"dateOfLoss":{"type":"string","nullable":true},"yearOfLoss":{"type":"number","nullable":true},"countyCode":{"type":"string","nullable":true},"censusTract":{"type":"string","nullable":true},"zipCode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"ratedFloodZone":{"type":"string","nullable":true},"causeOfDamage":{"type":"string","nullable":true},"waterDepth":{"type":"number","nullable":true},"occupancyType":{"type":"number","nullable":true},"netBuildingPaymentUSD":{"type":"number","nullable":true},"netContentsPaymentUSD":{"type":"number","nullable":true},"totalAmountPaid":{"type":"number","nullable":true},"totalBuildingInsuranceCoverage":{"type":"number","nullable":true},"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true}},"required":["dateOfLoss","yearOfLoss","countyCode","censusTract","zipCode","state","ratedFloodZone","causeOfDamage","waterDepth","occupancyType","netBuildingPaymentUSD","netContentsPaymentUSD","totalAmountPaid","totalBuildingInsuranceCoverage","latitude","longitude"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","totalClaims","returned","returnedSummary","claims","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.nfip-claims","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"2-letter US state/territory code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"county","in":"query","required":false,"description":"County name to filter by.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"zip","in":"query","required":false,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"yearFrom","in":"query","required":false,"description":"Year from.","schema":{"type":"integer","minimum":1970,"maximum":2100}},{"name":"yearTo","in":"query","required":false,"description":"Year to.","schema":{"type":"integer","minimum":1970,"maximum":2100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/osha-accidents":{"get":{"tags":["gov"],"summary":"Search OSHA-investigated workplace accident reports via US...","description":"Search OSHA-investigated workplace accident reports via US Department of Labor Open Data Portal (~165k accidents). Each row carries summary number, related inspection number, report id, event date, narrative, nature of injury, body part affected, source of injury, occupation, age, sex, degree of injury (1 = fatality, 2 = hospitalized, 3 = no lost time, etc.). Filter by event date range, nature of injury code, fatality flag. Pair with /api/gov/osha-inspections + /api/gov/osha-violations to follow injury → investigation → citations.","operationId":"gov_osha-accidents","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = OSHA workplace accident reports.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"nextOffset":{"type":"integer","nullable":true}},"required":["nextOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.osha-accidents","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"summaryNr","in":"query","required":false,"description":"Summary nr.","schema":{"type":"integer","minimum":1}},{"name":"activityNr","in":"query","required":false,"description":"Activity nr.","schema":{"type":"integer","minimum":1}},{"name":"reportId","in":"query","required":false,"description":"Report ID.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"eventDateMin","in":"query","required":false,"description":"Event date min.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"eventDateMax","in":"query","required":false,"description":"Event date max.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"natureOfInj","in":"query","required":false,"description":"Nature of inj.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*$","maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/osha-inspections":{"get":{"tags":["gov"],"summary":"Search OSHA inspection records via the US Department of...","description":"Search OSHA inspection records via the US Department of Labor Open Data Portal (~5M historical inspections). Filter by US state (2-letter), city, zip, or establishment-name substring (estabName, case-insensitive). Optional `filter` accepts raw OData-style clauses (joined with AND); `fields` selects columns; `sort` sorts (prefix with `-` for desc). Each row carries activity number, reporting id, establishment name + full site address, owner type/code, advance-notice flag, safety/health type, SIC + NAICS industry codes, open + close dates, host establishment number, union status. Backbone of workplace-safety + investigative-journalism agents.","operationId":"gov_osha-inspections","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = OSHA inspection records.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"nextOffset":{"type":"integer","nullable":true}},"required":["nextOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.osha-inspections","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"city","in":"query","required":false,"description":"City name to filter by.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"zip","in":"query","required":false,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"estabName","in":"query","required":false,"description":"Estab name.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","minLength":1,"maxLength":400}},{"name":"filter","in":"query","required":false,"description":"Filter.","schema":{"type":"string","minLength":1,"maxLength":600}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/osha-violations":{"get":{"tags":["gov"],"summary":"Search OSHA citation / violation records via US Department...","description":"Search OSHA citation / violation records via US Department of Labor Open Data Portal (~13.2M citations). Each citation links to an inspection via `activityNr` — pair with /api/gov/osha-inspections to follow site → inspection → violations. Filter by activityNr, citationId, standard (29 CFR section, e.g. \"19100132\" for PPE general requirements), issuance date range, initial-penalty min/max, emphasis program code.","operationId":"gov_osha-violations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = OSHA violation records.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"nextOffset":{"type":"integer","nullable":true}},"required":["nextOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.osha-violations","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"activityNr","in":"query","required":false,"description":"Activity nr.","schema":{"type":"integer","minimum":1}},{"name":"citationId","in":"query","required":false,"description":"Citation ID.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"standard","in":"query","required":false,"description":"Standard.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"issuanceDateMin","in":"query","required":false,"description":"Issuance date min.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"issuanceDateMax","in":"query","required":false,"description":"Issuance date max.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"initialPenalty","in":"query","required":false,"description":"Initial penalty.","schema":{"type":"object","properties":{"min":{"type":"number","minimum":0},"max":{"type":"number","minimum":0}},"additionalProperties":false}},{"name":"emphasis","in":"query","required":false,"description":"Emphasis.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*$","maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/product-recalls":{"get":{"tags":["gov"],"summary":"CPSC consumer-product recalls from SaferProducts.gov...","description":"CPSC consumer-product recalls from SaferProducts.gov, newest first. Covers products outside FDA (food/drug/device) and NHTSA (vehicles): strollers, appliances, lithium batteries, furniture, toys, power tools, and more. All filters optional (with none set, returns the last 12 months). Each record includes recall number + date, title, CPSC URL, description, affected products (name/model/units), hazards, remedies, reported injuries, manufacturers/importers/distributors/retailers, where sold, manufacturing countries, images, and consumer-contact info. Public-domain US government data.","operationId":"gov_product-recalls","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CPSC consumer-product recalls, newest first; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recallId":{"type":"string","nullable":true},"recallNumber":{"type":"string","nullable":true},"recallDate":{"type":"string","nullable":true},"lastPublishDate":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"products":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"units":{"type":"string","nullable":true}},"required":["name","model","units"],"additionalProperties":false}},"hazards":{"type":"array","items":{"type":"string"}},"remedies":{"type":"array","items":{"type":"string"}},"injuries":{"type":"array","items":{"type":"string"}},"manufacturers":{"type":"array","items":{"type":"string"}},"retailers":{"type":"array","items":{"type":"string"}},"importers":{"type":"array","items":{"type":"string"}},"distributors":{"type":"array","items":{"type":"string"}},"soldAt":{"type":"string","nullable":true},"manufacturerCountries":{"type":"array","items":{"type":"string"}},"images":{"type":"array","items":{"type":"string"}},"consumerContact":{"type":"string","nullable":true}},"required":["recallId","recallNumber","recallDate","lastPublishDate","title","url","description","products","hazards","remedies","injuries","manufacturers","retailers","importers","distributors","soldAt","manufacturerCountries","images","consumerContact"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"title":{"type":"string","nullable":true},"productName":{"type":"string","nullable":true},"recallNumber":{"type":"string","nullable":true},"dateStart":{"type":"string","nullable":true},"dateEnd":{"type":"string","nullable":true},"limit":{"type":"integer"}},"required":["title","productName","recallNumber","dateStart","dateEnd","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.product-recalls","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"title","in":"query","required":false,"description":"Optional substring match on the recall title. Examples: \"stroller\", \"lithium battery\", \"space heater\".","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"productName","in":"query","required":false,"description":"Optional substring match on an affected product name.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"recallNumber","in":"query","required":false,"description":"Optional exact CPSC recall number, e.g., \"26094\".","schema":{"type":"string","minLength":3,"maxLength":20}},{"name":"dateStart","in":"query","required":false,"description":"Optional earliest recall date (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dateEnd","in":"query","required":false,"description":"Optional latest recall date (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max recalls to return (1-50). Default 20.","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/public-assistance":{"get":{"tags":["gov"],"summary":"FEMA Public Assistance (PA) funded project details - the...","description":"FEMA Public Assistance (PA) funded project details — the post-disaster grants FEMA obligates to state/local/tribal governments and eligible nonprofits to repair public infrastructure and cover emergency response (debris removal, emergency protective measures, roads, buildings, utilities, parks). Filter by state (2-letter) and/or disasterNumber (one of the two is required); optionally refine by incidentType. Returns the total matching worksheet count plus projects (disaster number, declaration date, incident type, project worksheet number, application title, applicant, damage category, project size, status, county, federal share obligated / total obligated / project amount in USD, obligation date), largest federal share first. Free, public-domain (OpenFEMA). Distinct from gov.hazard-mitigation (future-risk mitigation grants) and gov.nfip-claims (flood losses paid) — this is disaster recovery funding for public infrastructure.","operationId":"gov_public-assistance","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one PA result object]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"state":{"type":"string","nullable":true},"disasterNumber":{"type":"number","nullable":true},"incidentType":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["state","disasterNumber","incidentType","limit"],"additionalProperties":false},"totalProjects":{"type":"number","nullable":true},"returned":{"type":"number"},"returnedSummary":{"type":"object","properties":{"totalFederalShareUSD":{"type":"number"},"totalObligatedUSD":{"type":"number"}},"required":["totalFederalShareUSD","totalObligatedUSD"],"additionalProperties":false},"projects":{"type":"array","items":{"type":"object","properties":{"disasterNumber":{"type":"number","nullable":true},"declarationDate":{"type":"string","nullable":true},"incidentType":{"type":"string","nullable":true},"pwNumber":{"type":"string","nullable":true},"applicationTitle":{"type":"string","nullable":true},"applicantId":{"type":"string","nullable":true},"damageCategory":{"type":"string","nullable":true},"damageCategoryCode":{"type":"string","nullable":true},"projectSize":{"type":"string","nullable":true},"projectStatus":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"countyCode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateCode":{"type":"string","nullable":true},"projectAmountUSD":{"type":"number","nullable":true},"federalShareObligatedUSD":{"type":"number","nullable":true},"totalObligatedUSD":{"type":"number","nullable":true},"obligatedDate":{"type":"string","nullable":true}},"required":["disasterNumber","declarationDate","incidentType","pwNumber","applicationTitle","applicantId","damageCategory","damageCategoryCode","projectSize","projectStatus","county","countyCode","state","stateCode","projectAmountUSD","federalShareObligatedUSD","totalObligatedUSD","obligatedDate"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","totalProjects","returned","returnedSummary","projects","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.public-assistance","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":false,"description":"2-letter US state/territory code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"disasterNumber","in":"query","required":false,"description":"Disaster number.","schema":{"type":"integer","minimum":1,"maximum":100000}},{"name":"incidentType","in":"query","required":false,"description":"Incident type.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/representatives":{"get":{"tags":["gov"],"summary":"Your sitting members of the US Congress for a location.","description":"Your sitting members of the US Congress for a location. Pass a US address (geocoded to its state + congressional district for you), or an explicit state (2-letter) with optional district number. Returns the current US House representative for that district plus the state's two US senators — each with full name, party, state/district, the Bioguide ID, DC office, phone, official website, and contact form. State-only returns just the two senators; territories/DC return their non-voting delegate (no senators). Bundled CC0 data (unitedstates/congress-legislators), refreshed periodically. Fills the gap after gov.district (which gives the district, not the people) — for civic lookup, advocacy, and constituent tooling.","operationId":"gov_representatives","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"address":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true}},"required":["address","state","district"],"additionalProperties":false},"resolved":{"type":"object","properties":{"matchedAddress":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true}},"required":["matchedAddress","state","district"],"additionalProperties":false},"house":{"type":"object","properties":{"bioguideId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"chamber":{"type":"string","enum":["house"]},"party":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"office":{"type":"string","nullable":true},"contactForm":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"termEnd":{"type":"string","nullable":true}},"required":["bioguideId","name","chamber","party","state","district","phone","office","contactForm","website","termEnd"],"additionalProperties":false,"nullable":true},"senate":{"type":"array","items":{"type":"object","properties":{"bioguideId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"chamber":{"type":"string","enum":["senate"]},"party":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"district":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"office":{"type":"string","nullable":true},"contactForm":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"termEnd":{"type":"string","nullable":true}},"required":["bioguideId","name","chamber","party","state","district","phone","office","contactForm","website","termEnd"],"additionalProperties":false}},"source":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string"}},"required":["query","resolved","house","senate","source","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.representatives","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":false,"description":"Street address or full address string.","schema":{"type":"string","minLength":5,"maxLength":200}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"district","in":"query","required":false,"description":"District.","schema":{"anyOf":[{"type":"string"},{"type":"number"}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/risk-index":{"get":{"tags":["gov"],"summary":"FEMA National Risk Index for a US county - the...","description":"FEMA National Risk Index for a US county — the authoritative natural-hazard risk profile. Look up by countyFips (5-digit STCOFIPS), by state + county name, or by a lat/lon point. Returns the composite Risk Index score/rating/national-percentile (an 18-hazard model combining Expected Annual Loss × Social Vulnerability ÷ Community Resilience), each component (expected annual loss in dollars, social vulnerability, community resilience) with its rating, and per-hazard risk ratings + expected-annual-loss for all 18 natural hazards (wildfire, earthquake, hurricane, riverine & coastal flooding, tornado, heat/cold wave, drought, etc.). The structural natural-hazard risk picture an LLM can't recall — for siting, insurance, and resilience planning. Free, public-domain. Complements geo.flood-zone (which is flood SFHA only).","operationId":"gov_risk-index","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"countyFips":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"lat":{"type":"number","nullable":true},"lon":{"type":"number","nullable":true}},"required":["countyFips","state","county","lat","lon"],"additionalProperties":false},"found":{"type":"boolean"},"county":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateAbbrev":{"type":"string","nullable":true},"countyFips":{"type":"string","nullable":true},"population":{"type":"number","nullable":true},"riskIndex":{"type":"object","properties":{"score":{"type":"number","nullable":true},"rating":{"type":"string","nullable":true},"nationalPercentile":{"type":"number","nullable":true}},"required":["score","rating","nationalPercentile"],"additionalProperties":false},"expectedAnnualLoss":{"type":"object","properties":{"totalUSD":{"type":"number","nullable":true},"rating":{"type":"string","nullable":true},"nationalPercentile":{"type":"number","nullable":true}},"required":["totalUSD","rating","nationalPercentile"],"additionalProperties":false},"socialVulnerability":{"type":"object","properties":{"score":{"type":"number","nullable":true},"rating":{"type":"string","nullable":true},"nationalPercentile":{"type":"number","nullable":true}},"required":["score","rating","nationalPercentile"],"additionalProperties":false},"communityResilience":{"type":"object","properties":{"score":{"type":"number","nullable":true},"rating":{"type":"string","nullable":true},"nationalPercentile":{"type":"number","nullable":true}},"required":["score","rating","nationalPercentile"],"additionalProperties":false},"hazards":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"hazard":{"type":"string"},"riskRating":{"type":"string","nullable":true},"riskScore":{"type":"number","nullable":true},"expectedAnnualLossUSD":{"type":"number","nullable":true}},"required":["code","hazard","riskRating","riskScore","expectedAnnualLossUSD"],"additionalProperties":false}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string","nullable":true}},"required":["query","found","county","state","stateAbbrev","countyFips","population","riskIndex","expectedAnnualLoss","socialVulnerability","communityResilience","hazards","sources","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.risk-index","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"countyFips","in":"query","required":false,"description":"County fips.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"county","in":"query","required":false,"description":"County name to filter by.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"lat","in":"query","required":false,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":false,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/senate-votes":{"get":{"tags":["gov"],"summary":"US Senate roll-call votes, newest first by vote date.","description":"US Senate roll-call votes, newest first by vote date. Each record includes congress + session + vote_number, vote question + result + title + majority requirement, vote date/time, document name (e.g., S. 5, H.R. 4499), document title, grand totals (yeas/nays/present/absent), AND per-party breakdown (D/R/I yea/nay/present/absent counts derived from member-level vote_cast). Filters (all optional, AND-combined): congress, session (1 or 2), result substring, document substring (e.g., 'S. 5'), since/until (vote_date), limit + offset. Locally aggregated from senate.gov XML feeds (refreshed daily). Public-domain US government records.","operationId":"gov_senate-votes","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = US Senate roll-call votes with per-party totals; total = matching rows; meta carries the query echo + nextOffset/previousOffset.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"congress":{"type":"integer"},"session":{"type":"integer"},"voteNumber":{"type":"integer"},"congressYear":{"type":"integer","nullable":true},"voteDate":{"type":"string","nullable":true},"voteTime":{"type":"string","nullable":true},"voteQuestion":{"type":"string","nullable":true},"voteResult":{"type":"string","nullable":true},"voteResultText":{"type":"string","nullable":true},"voteTitle":{"type":"string","nullable":true},"majorityRequirement":{"type":"string","nullable":true},"documentName":{"type":"string","nullable":true},"documentTitle":{"type":"string","nullable":true},"totals":{"type":"object","properties":{"yeas":{"type":"integer"},"nays":{"type":"integer"},"present":{"type":"integer"},"absent":{"type":"integer"}},"required":["yeas","nays","present","absent"],"additionalProperties":false},"totalsByParty":{"type":"object","additionalProperties":{"type":"object","properties":{"yea":{"type":"integer"},"nay":{"type":"integer"},"present":{"type":"integer"},"absent":{"type":"integer"}},"required":["yea","nay","present","absent"],"additionalProperties":false}},"sourceXmlUrl":{"type":"string","format":"uri"}},"required":["congress","session","voteNumber","congressYear","voteDate","voteTime","voteQuestion","voteResult","voteResultText","voteTitle","majorityRequirement","documentName","documentTitle","totals","totalsByParty","sourceXmlUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"congress":{"type":"number","nullable":true},"session":{"type":"number","nullable":true},"result":{"type":"string","nullable":true},"document":{"type":"string","nullable":true},"since":{"type":"string","nullable":true},"until":{"type":"string","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["congress","session","result","document","since","until","limit","offset"],"additionalProperties":false},"nextOffset":{"type":"integer","nullable":true},"previousOffset":{"type":"integer","nullable":true}},"required":["query","nextOffset","previousOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.senate-votes","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"congress","in":"query","required":false,"description":"Filter by Congress number. The 119th Congress = 2025-2026.","schema":{"type":"integer","minimum":100,"maximum":200}},{"name":"session","in":"query","required":false,"description":"Filter by session (1 = odd year, 2 = even year of a Congress).","schema":{"type":"integer"}},{"name":"result","in":"query","required":false,"description":"Filter by vote result (case-insensitive substring). Examples: \"Agreed\", \"Rejected\", \"Cloture\".","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"document","in":"query","required":false,"description":"Filter by document name substring (case-insensitive on document_name). Examples: \"S. 5\", \"H.R. 4499\", \"H.R.\".","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"since","in":"query","required":false,"description":"Earliest vote date (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"until","in":"query","required":false,"description":"Latest vote date (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max records (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Offset for pagination. Default 0.","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/uk-crime":{"get":{"tags":["gov"],"summary":"UK street-level crime around a location from the Home...","description":"UK street-level crime around a location from the Home Office data.police.uk service. Give a latitude/longitude (and optional month YYYY-MM, defaults to the latest available — UK data lags ~2 months) and get the total crime count, a breakdown by category (anti-social behaviour, burglary, violent crime, vehicle crime, etc.), and recent individual records (category, approximate street, lat/lon, and outcome status). Free, Open Government Licence (commercial use permitted). Location-risk signal an LLM cannot recall — for property, insurance, and safety agents. Locations are anonymised to nearby map points by the Home Office.","operationId":"gov_uk-crime","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one crime summary for the point]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"},"month":{"type":"string","nullable":true}},"required":["lat","lng","month"],"additionalProperties":false},"total":{"type":"number"},"returned":{"type":"number"},"byCategory":{"type":"object","additionalProperties":{"type":"number"}},"crimes":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","nullable":true},"month":{"type":"string","nullable":true},"street":{"type":"string","nullable":true},"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true},"outcome":{"type":"string","nullable":true},"outcomeDate":{"type":"string","nullable":true}},"required":["category","month","street","latitude","longitude","outcome","outcomeDate"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["query","total","returned","byCategory","crimes","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.uk-crime","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lng","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"month","in":"query","required":false,"description":"Calendar month (1–12).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/usajobs":{"get":{"tags":["gov"],"summary":"Search open US federal government job postings from the...","description":"Search open US federal government job postings from the official USAJOBS API. Filter by keyword (title/skills), location (e.g. \"Austin, Texas\" or a state), and/or hiring organization; at least one is required. Returns the total matching count plus current openings with title, agency and department, location(s), salary range (USD) and pay interval, GS pay grade, work schedule, posting/close dates, and the official apply link. Keyless to the caller, public-domain (OPM). Live federal hiring data an LLM cannot recall — for job search, labor-market and workforce research.","operationId":"gov_usajobs","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = open federal job postings; total = full match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"positionId":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"organization":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"locations":{"type":"array","items":{"type":"string"}},"salaryMinUSD":{"type":"number","nullable":true},"salaryMaxUSD":{"type":"number","nullable":true},"salaryInterval":{"type":"string","nullable":true},"payGrade":{"type":"string","nullable":true},"schedule":{"type":"string","nullable":true},"postedDate":{"type":"string","nullable":true},"closeDate":{"type":"string","nullable":true},"applyUri":{"type":"string","nullable":true}},"required":["positionId","title","organization","department","locations","salaryMinUSD","salaryMaxUSD","salaryInterval","payGrade","schedule","postedDate","closeDate","applyUri"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.usajobs","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"keyword","in":"query","required":false,"description":"Keyword.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"location","in":"query","required":false,"description":"Location.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"organization","in":"query","required":false,"description":"Organization.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/usaspending-awards":{"get":{"tags":["gov"],"summary":"Search federal awards (contracts, grants, loans, direct...","description":"Search federal awards (contracts, grants, loans, direct payments) from USAspending.gov. Largest amount first within the date window. Each record includes award ID, recipient name, dollar amount, award type, awarding agency + sub-agency, start + end dates, description, and a permalink to the usaspending.gov detail page. Filter by recipient name, awarding agency name, recipient state, award type group, and date range. Backed by USAspending.gov's spending_by_award API; public-domain US government records.","operationId":"gov_usaspending-awards","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = federal awards (contracts, grants, loans, direct payments); total = null (USAspending does not report a match count on this search); meta.hasNext signals more pages, meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"awardId":{"type":"string"},"recipientName":{"type":"string","nullable":true},"amount":{"type":"number","nullable":true},"awardType":{"type":"string","nullable":true},"awardingAgency":{"type":"string","nullable":true},"awardingSubAgency":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"usaspendingUrl":{"type":"string","format":"uri","nullable":true}},"required":["awardId","recipientName","amount","awardType","awardingAgency","awardingSubAgency","startDate","endDate","description","usaspendingUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"recipient":{"type":"string","nullable":true},"agency":{"type":"string","nullable":true},"recipientState":{"type":"string","nullable":true},"awardType":{"type":"string"},"since":{"type":"string"},"until":{"type":"string"},"limit":{"type":"integer"},"page":{"type":"integer"}},"required":["recipient","agency","recipientState","awardType","since","until","limit","page"],"additionalProperties":false},"hasNext":{"type":"boolean"}},"required":["query","hasNext"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.usaspending-awards","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"recipient","in":"query","required":false,"description":"Recipient (vendor/grantee) name substring. Examples: \"Microsoft\", \"Lockheed Martin\", \"Stanford University\".","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"agency","in":"query","required":false,"description":"Awarding top-tier agency name. Examples: \"Department of Defense\", \"National Institutes of Health\", \"Department of Energy\".","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"recipientState","in":"query","required":false,"description":"2-letter US state of the recipient (e.g., \"CA\", \"VA\").","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"awardType","in":"query","required":false,"description":"Award type group. contracts = A/B/C/D; grants = 02/03/04/05; loans = 07/08; direct_payments = 06/10; other = 11. Default contracts.","schema":{"type":"string","enum":["contracts","grants","loans","direct_payments","other"],"default":"contracts"}},{"name":"since","in":"query","required":false,"description":"Earliest action date (YYYY-MM-DD). Default = 5 years ago.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"until","in":"query","required":false,"description":"Latest action date (YYYY-MM-DD). Default = today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Records per page (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based). Default 1.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/gov/usgs-water":{"get":{"tags":["gov"],"summary":"Real-time water data from USGS NWIS stream / river /...","description":"Real-time water data from USGS NWIS stream / river / groundwater gauges within a bounding box around lat/lon. Returns each site's latest reading per requested variable: streamflow (00060, ft³/s), gage height (00065, ft), water temperature (00010, °C), precipitation (00045, in), and others. Each reading: site code + name, lat/lon, variable name + description + unit, value (or null if no data / sentinel), qualifier codes (e.g., 'P' = provisional, 'A' = approved), observed timestamp. Free public-domain data from waterservices.usgs.gov.","operationId":"gov_usgs-water","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = latest USGS gauge readings (one per site+variable) in the bounding box; total = null (NWIS reports no match count); meta.query + meta.bbox echo the search window.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"siteCode":{"type":"string"},"siteName":{"type":"string"},"agencyCode":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"variableCode":{"type":"string"},"variableName":{"type":"string"},"variableDescription":{"type":"string"},"unit":{"type":"string"},"value":{"type":"number","nullable":true},"qualifiers":{"type":"array","items":{"type":"string"}},"observedAt":{"type":"string","nullable":true},"noDataValue":{"type":"number","nullable":true}},"required":["siteCode","siteName","agencyCode","latitude","longitude","variableCode","variableName","variableDescription","unit","value","qualifiers","observedAt","noDataValue"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"radiusDegrees":{"type":"number"},"variables":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer"}},"required":["lat","lon","radiusDegrees","variables","limit"],"additionalProperties":false},"bbox":{"type":"object","properties":{"west":{"type":"number"},"south":{"type":"number"},"east":{"type":"number"},"north":{"type":"number"}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["query","bbox"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"gov.usgs-water","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Center latitude (decimal degrees).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Center longitude (decimal degrees).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius","in":"query","required":false,"description":"Half-side of bounding box, in decimal degrees. Default 0.5 (~35 mi).","schema":{"type":"number","minimum":0.05,"maximum":2,"default":0.5}},{"name":"variables","in":"query","required":false,"description":"Comma-separated USGS parameter codes (5-digit). Default \"00060,00065,00010\" (streamflow, gage height, water temp).","schema":{"type":"string","pattern":"^(\\d{5})(,\\d{5})*$"}},{"name":"limit","in":"query","required":false,"description":"Max readings to return (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/hash/compute":{"post":{"tags":["hash"],"summary":"Compute one or more cryptographic digests (MD5, SHA-1...","description":"Compute one or more cryptographic digests (MD5, SHA-1, SHA-2 family, SHA-3 family, BLAKE2) of a string or hex/base64-encoded byte buffer. Returns hex or base64-encoded digests.","operationId":"hash_compute","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [digest result] (input encoding/bytes, outputEncoding, per-algorithm digests); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"object","properties":{"encoding":{"type":"string"},"bytes":{"type":"integer"}},"required":["encoding","bytes"],"additionalProperties":false},"outputEncoding":{"type":"string"},"digests":{"type":"object","additionalProperties":{"type":"string"}}},"required":["input","outputEncoding","digests"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"hash.compute","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","maxLength":524288,"description":"Input."},"algorithms":{"type":"array","items":{"type":"string","enum":["md5","sha1","sha224","sha256","sha384","sha512","sha3-224","sha3-256","sha3-384","sha3-512","blake2b512","blake2s256"]},"minItems":1,"maxItems":12,"description":"Algorithms."},"algorithm":{"type":"string","enum":["md5","sha1","sha224","sha256","sha384","sha512","sha3-224","sha3-256","sha3-384","sha3-512","blake2b512","blake2s256"],"description":"Algorithm."},"inputEncoding":{"type":"string","enum":["utf8","hex","base64"],"default":"utf8","description":"Input encoding."},"outputEncoding":{"type":"string","enum":["hex","base64"],"default":"hex","description":"Output encoding."}},"required":["input"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/disease-surveillance":{"get":{"tags":["health"],"summary":"Current US notifiable-disease surveillance from the CDC...","description":"Current US notifiable-disease surveillance from the CDC NNDSS (National Notifiable Diseases Surveillance System) weekly tables. Returns provisional weekly case counts for ~139 nationally notifiable conditions (e.g. Measles, Pertussis, Mumps, Hepatitis A, Lyme disease, Gonorrhea, West Nile, Dengue) by reporting area and MMWR week, updated weekly. Filter by condition (substring, case-insensitive: \"measles\" matches \"Measles, Indigenous\"), location (a reporting area: a US state full name like \"California\", \"New York City\", \"U.S. Residents\", a census region like \"Pacific\", or a territory), year (MMWR year, 2022 to current), and weeks (most-recent N observations). At least one of condition or location is required. Each record reports the current-week count, the previous-52-week maximum, cumulative cases YTD this MMWR year, and cumulative YTD the prior year for same-week comparison. Public-domain CDC federal data via data.cdc.gov. Use this to see live disease activity and outbreaks that postdate an agent's training cutoff.","operationId":"health_disease-surveillance","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NNDSS weekly surveillance records (condition, location, MMWR year/week, current-week count, previous-52-week max, cumulative YTD this/prior year); meta echoes the resolved filters.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"condition":{"type":"string"},"location":{"type":"string"},"year":{"type":"integer"},"week":{"type":"integer"},"currentWeek":{"type":"number","nullable":true},"currentWeekFlag":{"type":"string","nullable":true},"prev52WeekMax":{"type":"number","nullable":true},"cumulativeYTD":{"type":"number","nullable":true},"cumulativeYTDPrevYear":{"type":"number","nullable":true},"sourceTable":{"type":"string"}},"required":["condition","location","year","week","currentWeek","currentWeekFlag","prev52WeekMax","cumulativeYTD","cumulativeYTDPrevYear","sourceTable"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"condition":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"year":{"type":"integer","nullable":true},"weeks":{"type":"integer","nullable":true}},"required":["condition","location","year","weeks"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.disease-surveillance","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"condition","in":"query","required":false,"description":"Disease/condition substring, case-insensitive.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"location","in":"query","required":false,"description":"Reporting area: state, NYC, U.S. Residents, census region, or territory.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"year","in":"query","required":false,"description":"MMWR year, 2022 to current.","schema":{"type":"integer","minimum":2022,"maximum":2100}},{"name":"weeks","in":"query","required":false,"description":"Return roughly the most-recent N weeks of observations.","schema":{"type":"integer","minimum":1,"maximum":520}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/hospital-lookup":{"get":{"tags":["health"],"summary":"CMS Care Compare lookup for every CMS-certified US hospital...","description":"CMS Care Compare lookup for every CMS-certified US hospital (~5k). Lookup by 6-digit CMS Facility ID for direct match, or fuzzy by name + state + city + hospital type, with optional minimum overall rating (1-5) filter. Each record includes facility ID, name, full address, phone, hospital type (Acute Care / Critical Access / Psychiatric / etc.), ownership category, emergency services flag, birthing-friendly designation, CMS overall star rating, and per-measure-group counts (mortality, safety, readmission, patient experience, effectiveness, timeliness, medical imaging). Public-domain federal data.","operationId":"health_hospital-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CMS-certified hospital records; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"facilityId":{"type":"string"},"name":{"type":"string"},"address":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zipcode":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"hospitalType":{"type":"string","nullable":true},"ownership":{"type":"string","nullable":true},"hasEmergencyServices":{"type":"boolean","nullable":true},"meetsBirthingFriendlyCriteria":{"type":"boolean","nullable":true},"overallRating":{"type":"integer","nullable":true},"mortalityGroupCount":{"type":"integer","nullable":true},"safetyGroupCount":{"type":"integer","nullable":true},"readmissionGroupCount":{"type":"integer","nullable":true},"experienceGroupCount":{"type":"integer","nullable":true},"effectivenessGroupCount":{"type":"integer","nullable":true},"timelinessGroupCount":{"type":"integer","nullable":true},"imagingGroupCount":{"type":"integer","nullable":true}},"required":["facilityId","name","address","city","state","zipcode","county","phone","hospitalType","ownership","hasEmergencyServices","meetsBirthingFriendlyCriteria","overallRating","mortalityGroupCount","safetyGroupCount","readmissionGroupCount","experienceGroupCount","effectivenessGroupCount","timelinessGroupCount","imagingGroupCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"facilityId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"hospitalType":{"type":"string","nullable":true},"minRating":{"type":"integer","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["facilityId","name","city","state","hospitalType","minRating","limit","offset"],"additionalProperties":false},"returned":{"type":"integer"}},"required":["query","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.hospital-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"facilityId","in":"query","required":false,"description":"Facility ID.","schema":{"type":"string","pattern":"^\\d{6}$"}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"city","in":"query","required":false,"description":"City name to filter by.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"hospitalType","in":"query","required":false,"description":"Hospital type.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"minRating","in":"query","required":false,"description":"Min rating.","schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/hospital-quality":{"get":{"tags":["health"],"summary":"CMS Care Compare hospital quality ratings - the data behind...","description":"CMS Care Compare hospital quality ratings — the data behind medicare.gov hospital ratings, for all ~5,300 Medicare-certified US hospitals. Look up by facilityId (CMS certification number), or filter by state, city, and name (partial match). Each row: facility id/name/address/phone, hospital type + ownership, emergency services, overall star rating (1-5), and per-domain measure summaries (mortality, safety of care, readmission, patient experience, timeliness, effectiveness) showing whether the hospital performs better/same/worse than the national average. Rows returned with CMS's documented column names. Public-domain federal data.","operationId":"health_hospital-quality","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CMS Care Compare hospital rows (CMS's documented column names, incl. hospital_overall_rating); total = upstream match count (null if CMS omits it).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.hospital-quality","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"facilityId","in":"query","required":false,"description":"Facility ID.","schema":{"type":"string","pattern":"^[0-9A-Za-z]{6}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"city","in":"query","required":false,"description":"City name to filter by.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/medicare-provider":{"get":{"tags":["health"],"summary":"Medicare utilization + payments by provider (CMS 'Physician...","description":"Medicare utilization + payments by provider (CMS 'Physician & Other Practitioners - by Provider' annual dataset). Look up by npi, or filter by lastName (exact last/organization name) + state. Each row: provider NPI, name, credentials, entity type, full address, provider type/specialty, Medicare participation, beneficiary counts, total services, submitted charges, Medicare allowed/payment amounts, plus beneficiary demographic + chronic-condition aggregates — CMS's documented column names (Rndrng_NPI, Tot_Srvcs, Tot_Mdcr_Pymt_Amt, etc). Complements /api/health/open-payments (industry payments to the same NPIs). KYC, healthcare-fraud research, and provider due diligence. For a provider 360 (identity + industry payments + this) by NPI in one call, see /api/health/provider-profile. Public-domain federal data.","operationId":"health_medicare-provider","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CMS Medicare provider utilization rows (CMS's documented column names: Rndrng_NPI, Tot_Srvcs, Tot_Mdcr_Pymt_Amt, …); total = null (CMS data-api returns no match count).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.medicare-provider","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"npi","in":"query","required":false,"description":"NPI.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"name":"lastName","in":"query","required":false,"description":"Last name to filter by.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/mortality-stats":{"get":{"tags":["health"],"summary":"US mortality statistics from CDC NCHS.","description":"US mortality statistics from CDC NCHS. dataset=leading-causes (default): annual deaths + age-adjusted death rate per 100k by state and top-10 cause of death, 1999-2017 — filter by state (full name, e.g. \"California\", or \"United States\"), year, cause (e.g. \"Heart disease\", \"Cancer\", \"Suicide\"). dataset=weekly-counts: provisional weekly death counts by jurisdiction with per-cause columns (all-cause, natural, COVID-19, heart disease, cancer, etc.), 2020-2023 — filter by state and mmwrYear. Rows returned raw from CDC with documented column names. Public-domain federal data.","operationId":"health_mortality-stats","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = raw CDC NCHS rows (documented column names); total = null (Socrata page, no upstream count); meta.dataset echoes which dataset was queried.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"dataset":{"type":"string","enum":["leading-causes","weekly-counts"]}},"required":["dataset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.mortality-stats","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"dataset","in":"query","required":false,"description":"Dataset.","schema":{"type":"string","enum":["leading-causes","weekly-counts"],"default":"leading-causes"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"year","in":"query","required":false,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":1999,"maximum":2023}},{"name":"cause","in":"query","required":false,"description":"Cause.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/open-payments":{"get":{"tags":["health"],"summary":"Search CMS Open Payments - every payment from a drug/device...","description":"Search CMS Open Payments — every payment from a drug/device manufacturer or GPO to a US physician or teaching hospital under the Sunshine Act (~10M records per year). Lookup by 10-digit NPI for the recipient (most precise), by last/first name + state, or by payer (manufacturer) name. Each record includes recipient (NPI, name, specialty, location), payer (manufacturer name + state/country), payment (amount USD, date, nature of payment such as 'Consulting Fee'/'Food and Beverage'/'Travel'/'Royalty', form of payment), and associated product (drug/device name + therapeutic area). Investigative journalism + KYC + healthcare conflict-of-interest research. Public-domain federal data.","operationId":"health_open-payments","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CMS Open Payments records matching the query; total = upstream match count; meta carries the query echo + program year. For a provider 360 (identity + this + Medicare billing) by NPI in one call, see /api/health/provider-profile.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recordId":{"type":"string"},"recipient":{"type":"object","properties":{"npi":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"primarySpecialty":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["npi","firstName","lastName","type","primarySpecialty","city","state"],"additionalProperties":false},"payer":{"type":"object","properties":{"name":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["name","state","country"],"additionalProperties":false},"payment":{"type":"object","properties":{"amountUsd":{"type":"number","nullable":true},"date":{"type":"string","nullable":true},"natureOfPayment":{"type":"string","nullable":true},"formOfPayment":{"type":"string","nullable":true}},"required":["amountUsd","date","natureOfPayment","formOfPayment"],"additionalProperties":false},"associatedProduct":{"type":"object","properties":{"type":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"therapeuticArea":{"type":"string","nullable":true}},"required":["type","name","therapeuticArea"],"additionalProperties":false},"programYear":{"type":"string","nullable":true}},"required":["recordId","recipient","payer","payment","associatedProduct","programYear"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"npi":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"payerName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"minAmount":{"type":"number","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["npi","lastName","firstName","payerName","state","minAmount","limit","offset"],"additionalProperties":false},"programYear":{"type":"string"}},"required":["query","programYear"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.open-payments","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"npi","in":"query","required":false,"description":"NPI.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"name":"firstName","in":"query","required":false,"description":"First name to filter by.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"lastName","in":"query","required":false,"description":"Last name to filter by.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"payerName","in":"query","required":false,"description":"Payer name.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"minAmount","in":"query","required":false,"description":"Minimum amount to include (USD).","schema":{"type":"number","minimum":0,"maximum":10000000}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/health/provider-profile":{"get":{"tags":["health"],"summary":"Provider 360 - everything we know about a US healthcare...","description":"Provider 360 — everything we know about a US healthcare provider, merged on their 10-digit NPI in one call. Combines three federal datasets: identity (NPPES registry: name, specialty/taxonomy, practice address, licenses), industry payments (CMS Open Payments: what drug & device makers paid them), and Medicare billing (CMS Physician & Other Practitioners: services, charges, and Medicare payment amounts). Each section reports found/error independently — a provider with no Open Payments or Medicare record still returns identity. KYC, healthcare-fraud research, investigative journalism, provider due diligence. Pass npi (required). For the individual sources see /api/license/medical, /api/health/open-payments, /api/health/medicare-provider.","operationId":"health_provider-profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"npi":{"type":"string"},"identity":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"provider":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","provider"],"additionalProperties":false},"openPayments":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"totalCount":{"type":"number","nullable":true},"payments":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","totalCount","payments"],"additionalProperties":false},"medicare":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"record":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","record"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["npi","identity","openPayments","medicare","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"health.provider-profile","x-2s-version":null,"x-2s-price":{"usd":0.00576},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005760"},"protocols":[{"x402":{}}]},"parameters":[{"name":"npi","in":"query","required":true,"description":"NPI.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/html/to-markdown":{"post":{"tags":["html"],"summary":"Convert raw HTML you already have into clean reading...","description":"Convert raw HTML you already have into clean reading markdown — no URL fetch. POST { html }. Strips scripts, styles, nav, ads, and comments, extracts the main article content, and returns markdown (headings, links, lists, emphasis preserved), plain text, the page title, and a word count. Use when you scraped or generated HTML elsewhere and want clean markdown without a round-trip. For fetching + cleaning a live URL instead, use /api/url/clean (or /api/url/render for JavaScript-rendered pages). Pure conversion, no network.","operationId":"html_to-markdown","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [conversion] (title, markdown, plain text, wordCount); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","nullable":true},"markdown":{"type":"string"},"text":{"type":"string"},"wordCount":{"type":"number"}},"required":["title","markdown","text","wordCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"html.to-markdown","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":2000000,"description":"Html."}},"required":["html"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/image/compress":{"post":{"tags":["image"],"summary":"Compress an image. POST exactly one of { url } or {...","description":"Compress an image. POST exactly one of { url } or { imageBase64 }, plus optional { format?: auto|png|jpeg|webp|avif (default auto = keep input format), quality?: 1-100 (default 75), lossy?: bool (default true), effort?: 1-10 (default 6) }. Returns compressed image bytes directly with X-2s-* headers: Original-Bytes, Compressed-Bytes, Saved-Percent, Output-Format, Source-Format, Source-Width, Source-Height, Process-Ms. Limits: 5MB URL fetch, ~3MB inline body, 4096 × 4096 input pixels. Animated GIF input becomes animated WebP when format=webp or auto.","operationId":"image_compress","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"image.compress","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"URL to process."},"imageBase64":{"type":"string","maxLength":4400000,"description":"Image base64."},"format":{"type":"string","enum":["auto","png","jpeg","webp","avif"],"description":"Format."},"quality":{"type":"integer","minimum":1,"maximum":100,"description":"Quality."},"lossy":{"type":"boolean","description":"Lossy."},"effort":{"type":"integer","minimum":1,"maximum":10,"description":"Effort."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/inflation/calculator":{"get":{"tags":["inflation"],"summary":"Adjust a US dollar amount for inflation between two dates...","description":"Adjust a US dollar amount for inflation between two dates ('what is $100 in 1990 worth today?'). Pass amount, from (YYYY-MM-DD or YYYY), and optional to (defaults to the latest CPI month). Uses CPI-U (CPIAUCNS — the same not-seasonally-adjusted all-items index as the official BLS inflation calculator), data back to 1913. Returns the inflation-adjusted amount, cumulative inflation %, annualized rate, and the CPI index values used on each date. Source: BLS CPI via FRED (St. Louis Fed).","operationId":"inflation_calculator","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the inflation-adjusted result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number"},"from":{"type":"string"},"to":{"type":"string"},"adjustedAmount":{"type":"number"},"cumulativeInflationPct":{"type":"number"},"annualizedPct":{"type":"number","nullable":true},"cpiFrom":{"type":"number"},"cpiFromDate":{"type":"string"},"cpiTo":{"type":"number"},"cpiToDate":{"type":"string"},"seriesId":{"type":"string"}},"required":["amount","from","to","adjustedAmount","cumulativeInflationPct","annualizedPct","cpiFrom","cpiFromDate","cpiTo","cpiToDate","seriesId"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"inflation.calculator","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"amount","in":"query","required":true,"description":"Amount.","schema":{"type":"number"}},{"name":"from","in":"query","required":true,"description":"Start of the range.","schema":{"type":"string","pattern":"^\\d{4}(-\\d{2}(-\\d{2})?)?$"}},{"name":"to","in":"query","required":false,"description":"End of the range.","schema":{"type":"string","pattern":"^\\d{4}(-\\d{2}(-\\d{2})?)?$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/inflation/expectations":{"get":{"tags":["inflation"],"summary":"Current US inflation expectations - what markets and...","description":"Current US inflation expectations — what markets and consumers expect future inflation to be. Returns the 5-year and 10-year TIPS breakeven rates, the 5-Year/5-Year forward inflation expectation (the Fed-watched long-run gauge), and the University of Michigan 1-year consumer inflation expectation. Each value is a percent as of its latest date. Market-based breakevens update daily. Source: Federal Reserve / Treasury via FRED (St. Louis Fed).","operationId":"inflation_expectations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = expectation gauges (each a percent); total = gauges returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"measure":{"type":"string"},"seriesId":{"type":"string"},"label":{"type":"string"},"rate":{"type":"number","nullable":true,"description":"Expected inflation, percent."},"asOf":{"type":"string","nullable":true}},"required":["measure","seriesId","label","rate","asOf"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"inflation.expectations","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/inflation/hicp":{"get":{"tags":["inflation"],"summary":"EU harmonized inflation - the latest HICP annual rate of...","description":"EU harmonized inflation — the latest HICP annual rate of change (the official, cross-country-comparable inflation rate) for the EU, euro area, and each member state. Pass country as a Eurostat geo code (DE, FR, EL for Greece, EA20 = euro area, EU27_2020 = EU) for one, or omit for all (sorted highest inflation first). All-items index (COICOP CP00). Source: Eurostat (free, no key). For US inflation use inflation.rates.","operationId":"inflation_hicp","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = HICP annual rates by geo (all-items); total = rows returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"geo":{"type":"string","description":"Eurostat geo code."},"area":{"type":"string","description":"Country / aggregate name."},"annualRatePct":{"type":"number","nullable":true,"description":"HICP annual rate of change (inflation rate), percent."},"period":{"type":"string","nullable":true,"description":"Reference month (YYYY-MM)."}},"required":["geo","area","annualRatePct","period"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"inflation.hicp","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":2,"maxLength":10,"pattern":"^[A-Za-z0-9_]+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/inflation/rates":{"get":{"tags":["inflation"],"summary":"Current US inflation rates by measure, with the index level...","description":"Current US inflation rates by measure, with the index level plus computed year-over-year and month-over-month % change. Pass measure for one, or omit for all. Measures: cpi, cpi-nsa, core-cpi, cpi-w, pce, core-pce, ppi, cpi-food, cpi-energy, cpi-shelter, cpi-medical, import-prices, export-prices — i.e. headline CPI (SA + NSA), core CPI, CPI-W, PCE, core PCE (the Fed's 2% target gauge), PPI final demand, and CPI by category (food, energy, shelter, medical) + import/export prices. The YoY change is the headline \"inflation rate\". Each result names the FRED series ID used. Source: BLS/BEA via FRED (St. Louis Fed). For raw access to any other series use bls.series; this is the curated, rate-computed layer.","operationId":"inflation_rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = inflation measures (index + YoY/MoM); total = measures returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"measure":{"type":"string"},"seriesId":{"type":"string"},"label":{"type":"string"},"index":{"type":"number","nullable":true,"description":"The price-index level."},"asOf":{"type":"string","nullable":true,"description":"Date of the latest observation."},"changeMoM":{"type":"number","nullable":true,"description":"% change vs the prior period."},"changeYoY":{"type":"number","nullable":true,"description":"% change vs ~1 year earlier — the inflation rate."}},"required":["measure","seriesId","label","index","asOf","changeMoM","changeYoY"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"inflation.rates","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"measure","in":"query","required":false,"description":"Measure.","schema":{"type":"string","enum":["cpi","cpi-nsa","core-cpi","cpi-w","pce","core-pce","ppi","cpi-food","cpi-energy","cpi-shelter","cpi-medical","import-prices","export-prices"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/ipinfo/bulk":{"post":{"tags":["ipinfo"],"summary":"Geolocate up to 100 IPv4 or IPv6 addresses in a single call.","description":"Geolocate up to 100 IPv4 or IPv6 addresses in a single call. Pass an array of IPs; results come back in input order. Each successful entry includes country (name + ISO code), region (name + code), city, postal code, lat/lon (city-level precision), timezone, and network info (ISP, organization, AS). Failed entries include an error object instead of geo fields, plus okCount/failedCount totals. Far cheaper than 100 single calls to /api/geo/ip when enriching logs, access lists, or analytics batches.","operationId":"ipinfo_bulk","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-IP geolocation results in input order (ok flag + geo fields, or an error object on failure); total = items.length; meta carries okCount/failedCount.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"okCount":{"type":"integer"},"failedCount":{"type":"integer"}},"required":["okCount","failedCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"ipinfo.bulk","x-2s-version":null,"x-2s-price":{"usd":0.006},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ips":{"type":"array","items":{"type":"string","minLength":1,"maxLength":64},"minItems":1,"maxItems":100,"description":"Ips."}},"required":["ips"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/iso/currency":{"get":{"tags":["iso"],"summary":"Look up an ISO 4217 currency.","description":"Look up an ISO 4217 currency. Pass code (alphabetic like USD, or 3-digit numeric like 840) for the canonical record, or country to find the currency/currencies a country uses. Returns the alphabetic + numeric code, English name, minor unit (decimal places — e.g. JPY 0, USD 2, BHD 3), and the countries using it. Bundled authoritative ISO 4217 data — the currency-code + decimal-places ground truth an LLM gets wrong on less-common currencies.","operationId":"iso_currency","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"code":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["code","country"],"additionalProperties":false},"found":{"type":"boolean"},"currencies":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"numeric":{"type":"string","nullable":true},"minorUnit":{"type":"number","nullable":true},"countries":{"type":"array","items":{"type":"string"}}},"required":["code","name","numeric","minorUnit","countries"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","found","currencies","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"iso.currency","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"Code to look up.","schema":{"type":"string","minLength":2,"maxLength":4}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":2,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/iso/language":{"get":{"tags":["iso"],"summary":"Look up an ISO 639 language.","description":"Look up an ISO 639 language. Pass code in any form — 639-1 (en), 639-2/B (ger) or 639-2/T (deu) — or name (English, partial match). Returns the English name and all sibling codes (alpha-2, alpha3-B, alpha3-T), so you can normalize a messy language tag to canonical ISO identifiers and resolve the bibliographic-vs-terminological alpha-3 split (e.g. German = de / deu / ger). Bundled authoritative ISO 639 data.","operationId":"iso_language","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["code","name"],"additionalProperties":false},"found":{"type":"boolean"},"languages":{"type":"array","items":{"type":"object","properties":{"alpha3b":{"type":"string","nullable":true},"alpha3t":{"type":"string","nullable":true},"alpha2":{"type":"string","nullable":true},"name":{"type":"string"}},"required":["alpha3b","alpha3t","alpha2","name"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","found","languages","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"iso.language","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"Code to look up.","schema":{"type":"string","minLength":2,"maxLength":3}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/iso/subdivision":{"get":{"tags":["iso"],"summary":"Look up ISO 3166-2 subdivisions (states, provinces, regions).","description":"Look up ISO 3166-2 subdivisions (states, provinces, regions). Pass code (e.g. US-CA) to resolve a single subdivision → name + country, or country (2-letter ISO 3166-1, e.g. US) to list all of that country's subdivisions with their codes. Bundled authoritative ISO 3166-2 data (~3.8k subdivisions across 237 countries) — the address/jurisdiction ground truth an LLM hallucinates codes for.","operationId":"iso_subdivision","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"code":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["code","country"],"additionalProperties":false},"found":{"type":"boolean"},"subdivision":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"country":{"type":"string"}},"required":["code","name","country"],"additionalProperties":false,"nullable":true},"country":{"type":"string","nullable":true},"subdivisions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"country":{"type":"string"}},"required":["code","name","country"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","found","subdivision","country","subdivisions","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"iso.subdivision","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"Code to look up.","schema":{"type":"string","minLength":4,"maxLength":6}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":2,"maxLength":2}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/job/federal-codes":{"get":{"tags":["job"],"summary":"Fetch a USAJobs reference codelist (lookup tables behind...","description":"Fetch a USAJobs reference codelist (lookup tables behind every federal job posting). Pass name to pick which list: agencysubelements (every agency + sub-element), occupationalseries (2210 IT, 0301 Misc Admin, 0801 Engineer, etc.), paygrades, payplans (GS, SES, ES, WG, etc.), hiringpaths (veteran, military spouse, native American, etc.), securityclearances, locationcodes, countries, countrysubdivisions, ethnicities, racecodes, militarystatuscodes, languagecodes, positionscheduletypecodes (full-time/part-time/seasonal), travelpercentages, missioncriticalcodes, cyberworkroles, etc. (33 lists total). Use the returned codes as filter inputs to /api/job/federal-search.","operationId":"job_federal-codes","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = the requested USAJobs reference codelist entries; total = entry count; meta.name + meta.dateGenerated identify the list.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"name":{"type":"string","enum":["academichonors","agencysubelements","announcementclosingtypes","applicantsuppliers","cyberworkroles","countries","countrysubdivisions","degreetypecodes","documentations","ethnicities","federalemploymentstatuses","geoloccodes","hiringpaths","languagecodes","languageproficiencies","locationcodes","militarystatuscodes","missioncriticalcodes","occupationalseries","paygrades","payplans","positionofferingtypecodes","positionopeningstatuses","positionscheduletypecodes","racecodes","refereetypecodes","remunerationrateintervalcodes","requiredstandarddocuments","securityclearances","servicetypes","specialhirings","travelpercentages","whomayapply"]},"dateGenerated":{"type":"string","nullable":true}},"required":["name","dateGenerated"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"job.federal-codes","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","enum":["academichonors","agencysubelements","announcementclosingtypes","applicantsuppliers","cyberworkroles","countries","countrysubdivisions","degreetypecodes","documentations","ethnicities","federalemploymentstatuses","geoloccodes","hiringpaths","languagecodes","languageproficiencies","locationcodes","militarystatuscodes","missioncriticalcodes","occupationalseries","paygrades","payplans","positionofferingtypecodes","positionopeningstatuses","positionscheduletypecodes","racecodes","refereetypecodes","remunerationrateintervalcodes","requiredstandarddocuments","securityclearances","servicetypes","specialhirings","travelpercentages","whomayapply"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/job/federal-search":{"get":{"tags":["job"],"summary":"Search current US federal job postings via the USAJobs API.","description":"Search current US federal job postings via the USAJobs API. Filter by keyword, positionTitle, locationName (\"Washington, DC\" or city/zip), remote (telework-eligible), pay grade range (e.g. payGradeLow=GS09 + payGradeHigh=GS13), jobCategoryCode (occupational series, e.g. 2210 for IT), organization (agency sub-element code, e.g. TR40 for IRS), whoMayApply (all/public/status). Returns per-posting: control number, position ID, title, USAJobs URL + apply URL, organization + department, locations, schedule, offering type, pay scales (min/max + interval), publication start + application close, qualification summary, job category + grade. Use sortField + sortDirection to sort. Pagination via resultsPerPage + page.","operationId":"job_federal-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched federal job postings; total = upstream total match count; meta.count = postings on this page.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"controlNumber":{"type":"string","nullable":true},"positionId":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"uri":{"type":"string","nullable":true},"applyUri":{"type":"array","items":{"type":"string"}},"organization":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"locations":{"type":"array","items":{"type":"object","additionalProperties":{}}},"remote":{"type":"boolean"},"schedule":{"type":"array","items":{"type":"object","additionalProperties":{}}},"offeringType":{"type":"array","items":{"type":"object","additionalProperties":{}}},"payScales":{"type":"array","items":{"type":"object","properties":{"min":{"type":"number","nullable":true},"max":{"type":"number","nullable":true},"interval":{"type":"string","nullable":true}},"required":["min","max","interval"],"additionalProperties":false}},"publicationStart":{"type":"string","nullable":true},"applicationClose":{"type":"string","nullable":true},"qualificationSummary":{"type":"string","nullable":true},"jobCategory":{"type":"array","items":{"type":"object","additionalProperties":{}}},"jobGrade":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["controlNumber","positionId","title","uri","applyUri","organization","department","locations","remote","schedule","offeringType","payScales","publicationStart","applicationClose","qualificationSummary","jobCategory","jobGrade"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer","description":"Postings returned on this page."}},"required":["count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"job.federal-search","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"keyword","in":"query","required":false,"description":"Keyword.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"positionTitle","in":"query","required":false,"description":"Position title.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"locationName","in":"query","required":false,"description":"Location name.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"remote","in":"query","required":false,"description":"Remote.","schema":{"type":"boolean"}},{"name":"payGradeLow","in":"query","required":false,"description":"Pay grade low.","schema":{"type":"string","pattern":"^[A-Z]{2}\\d{2}$"}},{"name":"payGradeHigh","in":"query","required":false,"description":"Pay grade high.","schema":{"type":"string","pattern":"^[A-Z]{2}\\d{2}$"}},{"name":"jobCategoryCode","in":"query","required":false,"description":"Job category code.","schema":{"type":"string","pattern":"^\\d{3,4}$"}},{"name":"organization","in":"query","required":false,"description":"Organization.","schema":{"type":"string","pattern":"^[A-Z0-9]{2,6}$"}},{"name":"whoMayApply","in":"query","required":false,"description":"Who may apply.","schema":{"type":"string","enum":["all","public","status"]}},{"name":"resultsPerPage","in":"query","required":false,"description":"Results per page.","schema":{"type":"integer","minimum":1,"maximum":500,"default":25}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"sortField","in":"query","required":false,"description":"Sort field.","schema":{"type":"string","enum":["OpenDate","CloseDate","PositionTitle","Salary"]}},{"name":"sortDirection","in":"query","required":false,"description":"Sort direction.","schema":{"type":"string","enum":["Asc","Desc"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/labor/openings":{"get":{"tags":["labor"],"summary":"US labor-market turnover from the BLS JOLTS survey (total...","description":"US labor-market turnover from the BLS JOLTS survey (total nonfarm, national), monthly, newest first. Pass measure = openings (default), hires, quits, layoffs, or separations. Returns the level in thousands per month for a trailing window. Public-domain, live-wrap. The standard signal for labor-market tightness (job openings) and worker confidence (the quits rate) — fresh macro data agents can't recite.","operationId":"labor_openings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one JOLTS series for the measure]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"measure":{"type":"string"},"units":{"type":"string"},"points":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string"},"valueThousands":{"type":"number","nullable":true}},"required":["period","valueThousands"],"additionalProperties":false}}},"required":["measure","units","points"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"labor.openings","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"measure","in":"query","required":false,"description":"Measure.","schema":{"type":"string","enum":["openings","hires","quits","layoffs","separations"]}},{"name":"months","in":"query","required":false,"description":"Months.","schema":{"type":"integer","minimum":1,"maximum":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/labor/unemployment":{"get":{"tags":["labor"],"summary":"US unemployment from BLS, monthly, newest first - national...","description":"US unemployment from BLS, monthly, newest first — national (CPS, \"US\") or by US state (LAUS). Pass area (\"US\" or a 2-letter state) and optionally measure = rate (default), unemployed, employed, or laborforce. Returns seasonally-adjusted values per month for a trailing window (rate in percent; counts in thousands). Public-domain, live-wrap. Fresh local labor-market context agents can't recite.","operationId":"labor_unemployment","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one unemployment series for the area/measure]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"area":{"type":"string"},"areaType":{"type":"string"},"measure":{"type":"string"},"units":{"type":"string"},"points":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string"},"value":{"type":"number","nullable":true}},"required":["period","value"],"additionalProperties":false}}},"required":["area","areaType","measure","units","points"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"labor.unemployment","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"area","in":"query","required":true,"description":"Area.","schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"measure","in":"query","required":false,"description":"Measure.","schema":{"type":"string","enum":["rate","unemployed","employed","laborforce"]}},{"name":"months","in":"query","required":false,"description":"Months.","schema":{"type":"integer","minimum":1,"maximum":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/labor/wages":{"get":{"tags":["labor"],"summary":"Occupational employment and wages from the BLS OEWS survey...","description":"Occupational employment and wages from the BLS OEWS survey, by SOC occupation code, nationally or for a US state. Pass soc (e.g. 15-1252 Software Developers) and optionally a 2-letter state. Returns total employment, hourly mean wage, and annual mean + 10th/25th/median/75th/90th-percentile wages for the latest survey year. Public-domain, live-wrap. Authoritative ground-truth wages an agent must not guess — for comp benchmarking, job-offer evaluation, and labor-cost modeling.","operationId":"labor_wages","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one OEWS wage profile for the SOC + area]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"soc":{"type":"string"},"areaType":{"type":"string"},"area":{"type":"string"},"year":{"type":"number","nullable":true},"employment":{"type":"number","nullable":true},"hourlyMeanWage":{"type":"number","nullable":true},"annualMeanWage":{"type":"number","nullable":true},"annualPct10":{"type":"number","nullable":true},"annualPct25":{"type":"number","nullable":true},"annualMedian":{"type":"number","nullable":true},"annualPct75":{"type":"number","nullable":true},"annualPct90":{"type":"number","nullable":true}},"required":["soc","areaType","area","year","employment","hourlyMeanWage","annualMeanWage","annualPct10","annualPct25","annualMedian","annualPct75","annualPct90"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"labor.wages","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"soc","in":"query","required":true,"description":"Soc.","schema":{"type":"string","pattern":"^\\d{2}-?\\d{4}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/attorney-lookup":{"get":{"tags":["law"],"summary":"Find US attorneys by name in CourtListener's RECAP corpus...","description":"Find US attorneys by name in CourtListener's RECAP corpus (PACER-derived attorney directory). Query by name (case-insensitive prefix match: \"Jennifer Lee\" matches \"Jennifer Lee Pasquarella\" but not \"Sara Jennifer Lee\"), optional firm/contact-text contains filter, and limit (1-50, default 10). Returns id, normalized name, parsed firm + mailing address, phone, email, fax, count of known (docket, party) appearances, and canonical CourtListener URL per match. Use for opposing-counsel research, conflict checks, and \"who has filed this type of motion in this district\" queries. Underlying data is public domain (PACER filings); the directory itself is maintained by Free Law Project.","operationId":"law_attorney-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched attorneys with parsed contact info, case-appearance count, and canonical CourtListener URLs; total = null (upstream does not report a match count); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"firm":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"fax":{"type":"string","nullable":true},"caseCount":{"type":"integer"},"url":{"type":"string","format":"uri"},"dateModified":{"type":"string","nullable":true}},"required":["id","name","firm","address","phone","email","fax","caseCount","url","dateModified"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string"},"firm":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["name","firm","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.attorney-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Attorney name (or name prefix) to search. Case-insensitive prefix match — \"Jennifer Lee\" finds \"Jennifer Lee Pasquarella\" but not \"Sara Jennifer Lee\".","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"firm","in":"query","required":false,"description":"Optional contains filter on the firm / contact block (e.g. \"Skadden\").","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Max attorney records to return (1-50). Default 10.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/case-search":{"get":{"tags":["law"],"summary":"Search US court opinions (SCOTUS, federal circuits, state...","description":"Search US court opinions (SCOTUS, federal circuits, state appellate/supreme — ~9M opinions). Query by free-text (party names, keywords, docket #, citation). Filter by court slug (e.g., \"scotus\", \"ca9\", \"nysupct\"), filing date range, and order (relevance/dateFiled-desc/dateFiled-asc/citeCount-desc). Returns clusterId, caseName, court, year, docket, reporter citations, citationCount, snippet, canonical URL. Discovery-side complement to case-verify. Backed by CourtListener (Free Law Project); underlying opinions are public domain.","operationId":"law_case-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched court opinions (clusterId, caseName, court, year, citations, url); total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"q":{"type":"string"},"court":{"type":"string","nullable":true},"filedAfter":{"type":"string","nullable":true},"filedBefore":{"type":"string","nullable":true},"order":{"type":"string"},"limit":{"type":"number"}},"required":["q","court","filedAfter","filedBefore","order","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.case-search","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":500}},{"name":"court","in":"query","required":false,"description":"Court.","schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}(,[a-z0-9-]{2,40}){0,9}$"}},{"name":"filedAfter","in":"query","required":false,"description":"Filed after.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"filedBefore","in":"query","required":false,"description":"Filed before.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"order","in":"query","required":false,"description":"Sort direction: asc or desc.","schema":{"type":"string","enum":["relevance","dateFiled-desc","dateFiled-asc","citeCount-desc"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/case-verify":{"post":{"tags":["law"],"summary":"Verify US legal case citations in a passage of text.","description":"Verify US legal case citations in a passage of text. POST { text } where text contains one or more citations (e.g. \"Marbury v. Madison, 5 U.S. 137 (1803)\"). Returns per-citation results with canonical case name, court, year, docket, citationCount, and a public CourtListener URL — or flags the citation as unverified. Anti-hallucination check for legal LLM output. Underlying opinions are public domain; CourtListener (Free Law Project) is the corpus.","operationId":"law_case-verify","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-citation verification results (one element per citation found in the text); total = citations checked; meta = input echo + verified/unverified counts.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"input":{"type":"string","description":"Echo of the checked text (truncated past 200 chars)."},"verified":{"type":"integer"},"unverified":{"type":"integer"}},"required":["input","verified","unverified"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.case-verify","x-2s-version":null,"x-2s-price":{"usd":0.006},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":30000,"description":"Text."}},"required":["text"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/cfr-section":{"get":{"tags":["law"],"summary":"Fetch the authoritative text of any section of the US Code...","description":"Fetch the authoritative text of any section of the US Code of Federal Regulations by title and section number — for example title 12, section 1026.43 returns Regulation Z’s ability-to-repay standards. Returns the canonical citation, section heading, full plain text, Federal Register source credit, the as-of date, and a link to the official eCFR page. An optional date parameter (YYYY-MM-DD) retrieves the historical text in force on that date, back to 2017. Data from the Electronic Code of Federal Regulations (US GPO / Office of the Federal Register), public domain, updated daily — verify regulatory citations against the authoritative source instead of relying on model memory.","operationId":"law_cfr-section","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [section] (one CFR section: citation, heading, full plain text, source credit, as-of date, official link); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"citation":{"type":"string","description":"Canonical citation, e.g. \"12 CFR 1026.43\"."},"title":{"type":"integer","description":"CFR title number."},"part":{"type":"string","description":"Part identifier (digits before the dot)."},"section":{"type":"string","description":"Full section identifier."},"heading":{"type":"string","description":"Official section heading."},"text":{"type":"string","description":"Plain-text body of the section."},"sourceCredit":{"type":"string","nullable":true,"description":"Federal Register source credit (citation history), when present."},"asOfDate":{"type":"string","description":"Date (yyyy-mm-dd) the returned text reflects."},"truncated":{"type":"boolean","description":"True if text was cut at the response cap (rare, giant sections only)."},"url":{"type":"string","description":"Official eCFR page for the section."}},"required":["citation","title","part","section","heading","text","sourceCredit","asOfDate","truncated","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.cfr-section","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"title","in":"query","required":true,"description":"CFR title number, 1-50 (e.g. 12 for Banks and Banking, 40 for Protection of Environment).","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"section","in":"query","required":true,"description":"Section identifier as \"part.section\", e.g. \"1026.43\" or \"240.10b-5\". The part is the digits before the dot.","schema":{"type":"string","pattern":"^[0-9]{1,4}[a-zA-Z]{0,2}\\.[0-9a-zA-Z][0-9a-zA-Z.\\-]{0,18}$"}},{"name":"date","in":"query","required":false,"description":"Optional point-in-time date (YYYY-MM-DD). Returns the text in force on that date; coverage starts 2017-01-03. Defaults to the latest available text.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/citation-check":{"post":{"tags":["law"],"summary":"Anti-hallucination checker for legal references - verify...","description":"Anti-hallucination checker for legal references — verify that cited cases, US Code sections, and CFR regulations in a passage actually EXIST, and (deterministically) that an attributed QUOTE actually appears in the cited opinion. POST { text } to scan a brief/passage: every case citation (via CourtListener), 'N U.S.C. § X', and 'N C.F.R. § X' is checked for existence with canonical metadata + a source URL, or flagged unverified. POST { quotes: [{ citation, quote }] } to verify specific quotations: each citation is resolved and its opinion full text is checked for the quote (ellipsis-aware), returning quote.present true/false. Pass both. Returns per-reference results + a summary (verified/unverified, quotesPresent/quotesMissing). Catches fabricated cases AND fabricated quotations — the LLM legal-output failure mode that gets attorneys sanctioned. Note: this checks existence + quote presence (facts), NOT whether a case legally supports a proposition. Sources: CourtListener (Free Law Project), US OLRC, eCFR (public domain).","operationId":"law_citation-check","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-reference results (existence + optional quote check); total = references checked; meta.summary = aggregate counts.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["case","usc","cfr"]},"citation":{"type":"string"},"exists":{"type":"boolean"},"title":{"type":"string","nullable":true},"detail":{"type":"object","properties":{"court":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"docketNumber":{"type":"string","nullable":true},"citationCount":{"type":"number","nullable":true}},"required":["court","year","docketNumber","citationCount"],"additionalProperties":false,"nullable":true},"url":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"quote":{"type":"object","properties":{"checked":{"type":"boolean"},"present":{"type":"boolean"},"note":{"type":"string","nullable":true}},"required":["checked","present","note"],"additionalProperties":false,"nullable":true}},"required":["type","citation","exists","title","detail","url","error","quote"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"summary":{"type":"object","properties":{"total":{"type":"integer"},"verified":{"type":"integer"},"unverified":{"type":"integer"},"quotesChecked":{"type":"integer"},"quotesPresent":{"type":"integer"},"quotesMissing":{"type":"integer"}},"required":["total","verified","unverified","quotesChecked","quotesPresent","quotesMissing"],"additionalProperties":false}},"required":["summary"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.citation-check","x-2s-version":null,"x-2s-price":{"usd":0.0072},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007200"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":50000,"description":"Text."},"quotes":{"type":"array","items":{"type":"object","properties":{"citation":{"type":"string","minLength":2,"maxLength":400,"description":"Citation."},"quote":{"type":"string","minLength":4,"maxLength":4000,"description":"Quote."}},"required":["citation","quote"],"additionalProperties":false},"maxItems":10,"description":"Quotes."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/docket-search":{"get":{"tags":["law"],"summary":"Search US federal court dockets - civil and criminal - from...","description":"Search US federal court dockets — civil and criminal — from the RECAP/PACER archive. Full-text q (case name, party, e.g. \"United States v. Bankman-Fried\"), optional court (CourtListener court id like \"cand\", \"nysd\", \"ca9\"), filedAfter/filedBefore (YYYY-MM-DD), page. Or pass docketNumber (+ court) for exact lookup. Each docket: id, case name, court, docket number, date filed/terminated, nature of suit, assigned judge, public docket URL. Criminal-case research, litigation monitoring, KYC/due-diligence. Sibling endpoints: /api/law/case-search (opinions full-text), /api/law/opinion (full opinion text).","operationId":"law_docket-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched federal court dockets; total = upstream match count (null when unknown).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"docketId":{"type":"number","nullable":true},"caseName":{"type":"string","nullable":true},"court":{"type":"string","nullable":true},"courtId":{"type":"string","nullable":true},"docketNumber":{"type":"string","nullable":true},"dateFiled":{"type":"string","nullable":true},"dateTerminated":{"type":"string","nullable":true},"natureOfSuit":{"type":"string","nullable":true},"assignedTo":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["docketId","caseName","court","courtId","docketNumber","dateFiled","dateTerminated","natureOfSuit","assignedTo","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.docket-search","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":300}},{"name":"court","in":"query","required":false,"description":"Court.","schema":{"type":"string","minLength":2,"maxLength":15}},{"name":"docketNumber","in":"query","required":false,"description":"Docket number.","schema":{"type":"string","minLength":3,"maxLength":40}},{"name":"filedAfter","in":"query","required":false,"description":"Filed after.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"filedBefore","in":"query","required":false,"description":"Filed before.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/federal-register":{"get":{"tags":["law"],"summary":"Search the US Federal Register - proposed rules, final...","description":"Search the US Federal Register — proposed rules, final rules, notices, and presidential documents. Filter by free-text term, document type (RULE/PRORULE/NOTICE/PRESDOCU), agency slug (e.g., epa, fda, sec), and publication date range. Returns document_number, type, title, abstract, FR citation, agencies, publication_date, effective_on, comments_close_on, htmlUrl, pdfUrl, rawTextUrl. Public-domain US government data. Real-time — published daily, past LLM training cutoff.","operationId":"law_federal-register","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched Federal Register documents; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"term":{"type":"string"},"type":{"type":"string","nullable":true},"agency":{"type":"string","nullable":true},"since":{"type":"string","nullable":true},"until":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["term","type","agency","since","until","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.federal-register","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":500}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","enum":["RULE","PRORULE","NOTICE","PRESDOCU"]}},{"name":"agency","in":"query","required":false,"description":"Agency.","schema":{"type":"string","pattern":"^[a-z0-9-]{2,60}$"}},{"name":"since","in":"query","required":false,"description":"Since.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"until","in":"query","required":false,"description":"Until.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/judge-lookup":{"get":{"tags":["law"],"summary":"Find US federal + state appellate judges by name in...","description":"Find US federal + state appellate judges by name in CourtListener's People DB. Query by firstName (case-insensitive prefix), lastName (case-insensitive prefix), or both — at least one required. Returns id, full name + components, dates of birth/death, gender, education (school, degree level, year), political affiliations (party + appointing executive period), count of distinct judicial positions, and canonical CourtListener URL per match. Pairs with law.case-search + law.attorney-lookup to complete the WHO graph of a legal research workflow. Backed by CourtListener (Free Law Project); underlying data is public domain.","operationId":"law_judge-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched judges with bio, education, political affiliations, position count, and canonical CourtListener URLs; total = null (upstream does not report a match count); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"suffix":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","nullable":true},"dateOfDeath":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"isJudge":{"type":"boolean"},"education":{"type":"array","items":{"type":"object","properties":{"school":{"type":"string","nullable":true},"degreeLevel":{"type":"string","nullable":true},"degreeYear":{"type":"integer","nullable":true}},"required":["school","degreeLevel","degreeYear"],"additionalProperties":false}},"politicalAffiliations":{"type":"array","items":{"type":"object","properties":{"party":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true}},"required":["party","source","startDate","endDate"],"additionalProperties":false}},"positionCount":{"type":"integer"},"url":{"type":"string","format":"uri"},"dateModified":{"type":"string","nullable":true}},"required":["id","name","firstName","middleName","lastName","suffix","dateOfBirth","dateOfDeath","gender","isJudge","education","politicalAffiliations","positionCount","url","dateModified"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["firstName","lastName","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.judge-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"firstName","in":"query","required":false,"description":"First-name prefix to search (case-insensitive). \"Son\" matches \"Sonia\". Optional, but at least one of firstName/lastName required.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"lastName","in":"query","required":false,"description":"Last-name prefix to search (case-insensitive). \"Soto\" matches \"Sotomayor\". Optional, but at least one of firstName/lastName required.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Max judge records to return (1-50). Default 10.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/opinion":{"post":{"tags":["law"],"summary":"Fetch the full text of a US court opinion by CourtListener...","description":"Fetch the full text of a US court opinion by CourtListener opinion ID OR by citation. Returns plain text (preferred), HTML fallback, case metadata (case name, court, year, docket, citation), opinion type (lead/concurrence/dissent), author, and a list of alternate opinions in the same cluster. POST { opinionId?: number, citation?: string } — exactly one required. Anti-hallucination follow-up to case-verify: once you confirm the citation exists, fetch the text. Backed by CourtListener (public-domain underlying corpus).","operationId":"law_opinion","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [opinion] (single document: full text, case metadata, alternate opinions in cluster); total = 1; meta.query echoes the lookup.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"opinionId":{"type":"number","nullable":true},"citation":{"type":"string","nullable":true}},"required":["opinionId","citation"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.opinion","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"opinionId":{"type":"integer","exclusiveMinimum":true,"minimum":0,"description":"Opinion ID."},"citation":{"type":"string","minLength":2,"maxLength":500,"description":"Citation."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/sanctions-check":{"post":{"tags":["law"],"summary":"Fuzzy-match a name (person, company, vessel, aircraft)...","description":"Fuzzy-match a name (person, company, vessel, aircraft) against the US Treasury OFAC Specially Designated Nationals list. POST { query, threshold?, limit?, sourceList? }. Returns ranked matches with similarity scores, entity type, sanctions programs, aliases, and remarks. Threshold default 0.4; scores ≥ 0.85 flagged as hasHighConfidenceMatch. List refreshed daily from public US Treasury data.","operationId":"law_sanctions-check","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked OFAC SDN matches with similarity scores; total = match count; meta = query echo, threshold, hasHighConfidenceMatch flag.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string"},"threshold":{"type":"number"},"hasHighConfidenceMatch":{"type":"boolean","description":"True when any match scored ≥ 0.85."},"list":{"type":"string"},"refreshCadence":{"type":"string"}},"required":["query","threshold","hasHighConfidenceMatch","list","refreshCadence"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.sanctions-check","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":500,"description":"Free-text search query."},"threshold":{"type":"number","minimum":0.1,"maximum":1,"description":"Minimum score/threshold required to include a result."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of results to return."},"sourceList":{"type":"string","maxLength":64,"description":"Source list."}},"required":["query"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/trademark-search":{"get":{"tags":["law"],"summary":"Search US trademarks by wordmark text, owner name, or...","description":"Search US trademarks by wordmark text, owner name, or goods/services — the text search the USPTO offers no public API for. Pass `query` for full-text search (ranked best-match first), or `serial` / `registrationNumber` for an exact record. Filter with `field` (mark|owner|all), `status` (live=registered+pending only, default; all=includes dead/abandoned), and `intlClass` (Nice class, e.g. 9). Returns each mark's wordmark, serial, registration number, status (+ live flag), filing/registration/abandonment dates, owner, international classes, and goods/services. Corpus: USPTO full trademark register (public domain). Use law.trademark-status for live USPTO prosecution detail on a known serial.","operationId":"law_trademark-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching trademarks (bm25-ranked for text search; ≤1 for exact serial/reg lookup); total = match count (exact for narrow queries; for broad text queries it reflects the full-text match count before the status/class filter, so it may over-count); page = pagination block.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"serialNumber":{"type":"string"},"registrationNumber":{"type":"string","nullable":true},"markText":{"type":"string","nullable":true,"description":"The wordmark / literal element."},"status":{"type":"object","properties":{"code":{"type":"string","nullable":true,"description":"USPTO TRAM status code (e.g. 700)."},"label":{"type":"string","nullable":true,"description":"Human-readable status, e.g. \"Registered\", \"Abandoned-Failure to Respond\"."},"date":{"type":"string","nullable":true},"live":{"type":"boolean","description":"False for abandoned/cancelled/expired marks; true for registered or in-prosecution."}},"required":["code","label","date","live"],"additionalProperties":false},"filingDate":{"type":"string","nullable":true},"registrationDate":{"type":"string","nullable":true},"abandonmentDate":{"type":"string","nullable":true},"cancellationDate":{"type":"string","nullable":true},"renewalDate":{"type":"string","nullable":true},"owner":{"type":"string","nullable":true,"description":"Primary current owner / applicant."},"intlClasses":{"type":"array","items":{"type":"string"},"description":"Nice international class codes, zero-padded."},"goodsServices":{"type":"string","nullable":true,"description":"Goods/services description (truncated to ~4k chars)."},"markDrawingCode":{"type":"string","nullable":true}},"required":["serialNumber","registrationNumber","markText","status","filingDate","registrationDate","abandonmentDate","cancellationDate","renewalDate","owner","intlClasses","goodsServices","markDrawingCode"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.trademark-search","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"serial","in":"query","required":false,"description":"Serial.","schema":{"type":"string","pattern":"^\\d{6,9}$"}},{"name":"registrationNumber","in":"query","required":false,"description":"Registration number.","schema":{"type":"string","pattern":"^[0-9 ]{1,10}$"}},{"name":"field","in":"query","required":false,"description":"Field.","schema":{"type":"string","enum":["mark","owner","all"]}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["live","all"]}},{"name":"intlClass","in":"query","required":false,"description":"Intl class.","schema":{"type":"string","pattern":"^0*\\d{1,3}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/trademark-status":{"get":{"tags":["law"],"summary":"Verify a US trademark by USPTO serial number (8 digits) or...","description":"Verify a US trademark by USPTO serial number (8 digits) or registration number. Returns the word mark, LIVE/DEAD status with the detailed status description and date, filing and registration dates, current owner (name, entity type, citizenship), mark type (trademark / service mark / certification mark), standard-character flag, abandonment date when applicable, and the international classes covered with their descriptions. Authoritative real-time USPTO data — confirm a mark exists and is active before relying on it for clearance, licensing, or due-diligence work. Lookup is by number only (no text search); siblings: /api/patents/search, /api/law/case-verify.","operationId":"law_trademark-status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [trademark] (one trademark: mark text, LIVE/DEAD status, owner, dates, classes, official TSDR link); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"serialNumber":{"type":"string"},"registrationNumber":{"type":"string","nullable":true},"registrationDate":{"type":"string","nullable":true},"filingDate":{"type":"string","nullable":true},"mark":{"type":"string","nullable":true,"description":"Word mark text; null for design-only marks."},"live":{"type":"boolean","description":"True when the mark is LIVE (active application or registration)."},"statusCode":{"type":"number","nullable":true},"statusDescription":{"type":"string","nullable":true,"description":"TM5 status family, e.g. \"LIVE/REGISTRATION/Issued and Active\"."},"statusDetail":{"type":"string","nullable":true},"statusDate":{"type":"string","nullable":true},"dateAbandoned":{"type":"string","nullable":true},"markType":{"type":"string"},"standardCharacterMark":{"type":"boolean"},"supplementalRegister":{"type":"boolean"},"owner":{"type":"object","properties":{"name":{"type":"string","nullable":true},"entityType":{"type":"string","nullable":true},"partyType":{"type":"string","nullable":true},"citizenship":{"type":"string","nullable":true}},"required":["name","entityType","partyType","citizenship"],"additionalProperties":false,"nullable":true},"classes":{"type":"array","items":{"type":"object","properties":{"internationalCode":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"status":{"type":"string","nullable":true}},"required":["internationalCode","description","status"],"additionalProperties":false}},"url":{"type":"string","description":"Official TSDR page for human review."}},"required":["serialNumber","registrationNumber","registrationDate","filingDate","mark","live","statusCode","statusDescription","statusDetail","statusDate","dateAbandoned","markType","standardCharacterMark","supplementalRegister","owner","classes","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.trademark-status","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"serialNumber","in":"query","required":false,"description":"Serial number.","schema":{"type":"string","pattern":"^\\d{8}$"}},{"name":"registrationNumber","in":"query","required":false,"description":"Registration number.","schema":{"type":"string","pattern":"^\\d{6,8}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/law/usc-section":{"get":{"tags":["law"],"summary":"Fetch the authoritative current text of any United States...","description":"Fetch the authoritative current text of any United States Code section by title and section number — for example title 17, section 107 returns the fair-use statute. Returns the canonical citation, heading, hierarchy context (title/chapter), full statutory plain text, the Statutes-at-Large source credit, and a link to the official OLRC page; set includeNotes=true to also get editorial notes (amendment history, effective dates). Hyphenated and lettered sections like 1395w-4 or 78j work. Data from the Office of the Law Revision Counsel current (\"prelim\") edition, public domain — verify statutory citations against the authoritative source instead of relying on model memory. For federal regulations see /api/law/cfr-section; for case law see /api/law/case-verify.","operationId":"law_usc-section","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [section] (one USC section: citation, heading, context, full statutory text, source credit, optional notes, official link); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"citation":{"type":"string","description":"Canonical citation, e.g. \"17 U.S.C. § 107\"."},"title":{"type":"integer","description":"USC title number."},"section":{"type":"string","description":"Section number as requested."},"heading":{"type":"string","description":"Official section heading."},"context":{"type":"string","nullable":true,"description":"Hierarchy breadcrumb (title › chapter › …)."},"text":{"type":"string","description":"Plain-text statutory body (no editorial notes)."},"sourceCredit":{"type":"string","nullable":true,"description":"Statutes-at-Large credit (enactment + amendment cites)."},"notes":{"type":"string","nullable":true,"description":"Editorial notes, only when includeNotes=true."},"truncated":{"type":"boolean","description":"True if a block was cut at the response cap (rare)."},"edition":{"type":"string","description":"USC edition served (\"prelim\" = current law)."},"url":{"type":"string","description":"Official uscode.house.gov page for the section."}},"required":["citation","title","section","heading","context","text","sourceCredit","notes","truncated","edition","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"law.usc-section","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"title","in":"query","required":true,"description":"USC title number, 1-54 (e.g. 17 for Copyrights, 26 for Internal Revenue Code, 42 for Public Health and Welfare).","schema":{"type":"integer","minimum":1,"maximum":54}},{"name":"section","in":"query","required":true,"description":"Section number, e.g. \"107\", \"78j\", or \"1395w-4\".","schema":{"type":"string","pattern":"^[0-9]{1,5}[a-zA-Z]{0,3}(-[0-9a-zA-Z]{1,8})?$"}},{"name":"includeNotes","in":"query","required":false,"description":"Include editorial notes (amendment history, effective dates, cross-references). Default false — notes can be long.","schema":{"anyOf":[{"type":"boolean"},{"type":"string"}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/license/broker":{"get":{"tags":["license"],"summary":"FINRA BrokerCheck lookup - every US registered broker /...","description":"FINRA BrokerCheck lookup — every US registered broker / investment advisor (~620k current + former). Search by free-text query (name + firm) or by CRD number for a direct individual record. Each result includes CRD ID, name (with any 'doing business as' aliases), broker-check + IA scope (Active/Inactive), a hasDisclosures flag (yes/no for complaints, settlements, terminations on file), industry-start date, FINRA registration count, and current + previous employments (firm name, branch city/state, registration dates). Public per FINRA's investor-protection BrokerCheck program; pair with /api/finance/sec-filings for cross-reference.","operationId":"license_broker","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = FINRA BrokerCheck records; total = upstream match count; meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"crd":{"type":"string"},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"otherNames":{"type":"array","items":{"type":"string"}},"bcScope":{"type":"string","nullable":true},"iaScope":{"type":"string","nullable":true},"hasDisclosures":{"type":"boolean"},"yearsInIndustryStart":{"type":"string","nullable":true},"finraRegistrationCount":{"type":"integer"},"employmentCount":{"type":"integer"},"currentEmployments":{"type":"array","items":{"type":"object","properties":{"firmId":{"type":"string"},"firmName":{"type":"string"},"branchCity":{"type":"string","nullable":true},"branchState":{"type":"string","nullable":true},"registrationBeginDate":{"type":"string","nullable":true}},"required":["firmId","firmName","branchCity","branchState","registrationBeginDate"],"additionalProperties":false}},"previousEmployments":{"type":"array","items":{"type":"object","properties":{"firmId":{"type":"string"},"firmName":{"type":"string"},"registrationBeginDate":{"type":"string","nullable":true},"registrationEndDate":{"type":"string","nullable":true}},"required":["firmId","firmName","registrationBeginDate","registrationEndDate"],"additionalProperties":false}}},"required":["crd","firstName","middleName","lastName","otherNames","bcScope","iaScope","hasDisclosures","yearsInIndustryStart","finraRegistrationCount","employmentCount","currentEmployments","previousEmployments"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"query":{"type":"string","nullable":true},"crd":{"type":"string","nullable":true},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["query","crd","limit","offset"],"additionalProperties":false},"returned":{"type":"integer"}},"required":["query","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"license.broker","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"crd","in":"query","required":false,"description":"Crd.","schema":{"type":"string","pattern":"^\\d{1,9}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/license/medical":{"get":{"tags":["license"],"summary":"US healthcare provider lookup (NPPES NPI Registry).","description":"US healthcare provider lookup (NPPES NPI Registry). Every US doctor, nurse, dentist, hospital, lab, pharmacy has an NPI — this returns the canonical record. Lookup by 10-digit NPI for a precise match, or by firstName + lastName + state for fuzzy search. Each record includes name + credentials, status, enumeration date, primary + secondary specialty taxonomies (with state license numbers), practice + mailing addresses, phone, and any cross-issuer identifiers (Medicaid, Medicare, etc.). Public-domain CMS data, free. For all three NPI datasets merged (identity + industry payments + Medicare billing) in one call, see /api/health/provider-profile.","operationId":"license_medical","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NPPES provider records; total = null (NPPES caps results without a true count); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"npi":{"type":"string"},"enumerationType":{"type":"string"},"name":{"type":"object","properties":{"first":{"type":"string","nullable":true},"last":{"type":"string","nullable":true},"middle":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"organizationName":{"type":"string","nullable":true}},"required":["first","last","middle","credential","organizationName"],"additionalProperties":false},"status":{"type":"string","nullable":true},"enumerationDate":{"type":"string","nullable":true},"lastUpdated":{"type":"string","nullable":true},"taxonomies":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"desc":{"type":"string"},"primary":{"type":"boolean"},"licenseNumber":{"type":"string","nullable":true},"licenseState":{"type":"string","nullable":true}},"required":["code","desc","primary","licenseNumber","licenseState"],"additionalProperties":false}},"addresses":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"address1":{"type":"string","nullable":true},"address2":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"telephone":{"type":"string","nullable":true},"fax":{"type":"string","nullable":true}},"required":["purpose","address1","address2","city","state","postalCode","country","telephone","fax"],"additionalProperties":false}},"identifiers":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"desc":{"type":"string"},"issuer":{"type":"string","nullable":true},"identifier":{"type":"string"},"state":{"type":"string","nullable":true}},"required":["code","desc","issuer","identifier","state"],"additionalProperties":false}}},"required":["npi","enumerationType","name","status","enumerationDate","lastUpdated","taxonomies","addresses","identifiers"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"npi":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"enumerationType":{"type":"string","nullable":true},"limit":{"type":"integer"},"skip":{"type":"integer"}},"required":["npi","name","firstName","lastName","state","enumerationType","limit","skip"],"additionalProperties":false},"returned":{"type":"integer"}},"required":["query","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"license.medical","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"npi","in":"query","required":false,"description":"NPI.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"name":"firstName","in":"query","required":false,"description":"First name to filter by.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"lastName","in":"query","required":false,"description":"Last name to filter by.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"enumerationType","in":"query","required":false,"description":"Enumeration type.","schema":{"type":"string","enum":["1","2"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":10}},{"name":"skip","in":"query","required":false,"description":"Skip.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/license/real-estate":{"get":{"tags":["license"],"summary":"Verify US real-estate licenses (brokers, sales agents...","description":"Verify US real-estate licenses (brokers, sales agents, broker companies). Currently supported state: TX (Texas Real Estate Commission license holders). Search by name (license holder, partial), licenseNumber (exact), licenseType (partial, e.g. \"Broker\", \"Sales Agent\"), status (e.g. \"Active\"). Each license: type, number, holder name, status, original license date, expiration date, and the related supervising broker (type/number/name) where applicable. Agent/broker due-diligence and KYC. Siblings: /api/license/medical, /api/license/broker, /api/license/trades. Official state open data.","operationId":"license_real-estate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = real-estate licenses; total = null (capped state-portal search); meta = {state, query}.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"licenseType":{"type":"string","nullable":true},"licenseNumber":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"originalLicenseDate":{"type":"string","nullable":true},"expires":{"type":"string","nullable":true},"supervisor":{"type":"object","properties":{"type":{"type":"string","nullable":true},"number":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["type","number","name"],"additionalProperties":false,"nullable":true}},"required":["licenseType","licenseNumber","name","status","originalLicenseDate","expires","supervisor"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"state":{"type":"string"},"query":{"type":"object","properties":{"name":{"type":"string","nullable":true},"licenseNumber":{"type":"string","nullable":true},"licenseType":{"type":"string","nullable":true},"status":{"type":"string","nullable":true}},"required":["name","licenseNumber","licenseType","status"],"additionalProperties":false}},"required":["state","query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"license.real-estate","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","enum":["TX"]}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"licenseNumber","in":"query","required":false,"description":"License number.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"licenseType","in":"query","required":false,"description":"License type.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/license/trades":{"get":{"tags":["license"],"summary":"Verify US trade / occupational licenses (electricians, A/C...","description":"Verify US trade / occupational licenses (electricians, A/C technicians, cosmetologists, tow operators, and other state-regulated trades). Currently supported state: TX (Texas Department of Licensing & Regulation, all active licenses). Search by name (matches owner or business name, partial), licenseNumber (exact), licenseType (partial, e.g. \"Electrician\"), county. Each license: type + subtype, number, business + owner name, county, expiration date, continuing-education flag. Contractor due-diligence and KYC. Siblings: /api/license/medical (NPI), /api/license/broker (FINRA). Official state open data.","operationId":"license_trades","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = trade/occupational licenses; total = null (capped state-portal search); meta = {state, query}.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"licenseType":{"type":"string","nullable":true},"licenseSubtype":{"type":"string","nullable":true},"licenseNumber":{"type":"string","nullable":true},"businessName":{"type":"string","nullable":true},"ownerName":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"expires":{"type":"string","nullable":true},"continuingEducation":{"type":"boolean","nullable":true}},"required":["licenseType","licenseSubtype","licenseNumber","businessName","ownerName","county","expires","continuingEducation"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"state":{"type":"string"},"query":{"type":"object","properties":{"name":{"type":"string","nullable":true},"licenseNumber":{"type":"string","nullable":true},"licenseType":{"type":"string","nullable":true},"county":{"type":"string","nullable":true}},"required":["name","licenseNumber","licenseType","county"],"additionalProperties":false}},"required":["state","query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"license.trades","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"state","in":"query","required":true,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","enum":["TX"]}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"licenseNumber","in":"query","required":false,"description":"License number.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"licenseType","in":"query","required":false,"description":"License type.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"county","in":"query","required":false,"description":"County name to filter by.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/lock/acquire":{"post":{"tags":["lock"],"summary":"LOCK: acquire a distributed lock/lease, scoped to YOUR wallet.","description":"LOCK: acquire a distributed lock/lease, scoped to YOUR wallet. Returns { acquired:true, token } if you got it, or { acquired:false, retryInSeconds } if someone else holds it. The lock auto-expires after ttlSeconds (so a crashed holder can't wedge it). Keep the token — you need it to renew or release. Use it to make sure only one copy of your agent runs a critical section. No account or API key — pay per call with x402.","operationId":"lock_acquire","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the lock result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"acquired":{"type":"boolean"},"token":{"type":"string"},"expiresInSeconds":{"type":"number"},"retryInSeconds":{"type":"number"}},"required":["acquired"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"lock.acquire","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","description":"Lock name, up to 256 chars of [A-Za-z0-9._:/-]. e.g. \"nightly-report\"."},"ttlSeconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Auto-release after this many seconds (1-86400). Set it above your critical section's worst-case runtime."}},"required":["key","ttlSeconds"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/lock/release":{"post":{"tags":["lock"],"summary":"LOCK: release a lock you hold, scoped to YOUR wallet.","description":"LOCK: release a lock you hold, scoped to YOUR wallet. Pass the key + your token. Returns { released:true } only if your token matches (you can't release someone else's lock). Idempotent — releasing an already-gone lock returns released:false. Private to your wallet (the x402 payer).","operationId":"lock_release","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the release result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"released":{"type":"boolean"}},"required":["released"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"lock.release","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","description":"The lock name."},"token":{"type":"string","description":"The token returned by lock.acquire."}},"required":["key","token"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/lock/renew":{"post":{"tags":["lock"],"summary":"LOCK: extend a lock you hold, scoped to YOUR wallet.","description":"LOCK: extend a lock you hold, scoped to YOUR wallet. Pass the key + the token you got from lock.acquire and a new ttlSeconds. Returns { renewed:true } only if your token still matches (you can't extend someone else's lock). Use it to keep a long-running critical section locked. Private to your wallet (the x402 payer).","operationId":"lock_renew","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the renew result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"renewed":{"type":"boolean"},"expiresInSeconds":{"type":"number"}},"required":["renewed"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"lock.renew","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","description":"The lock name."},"token":{"type":"string","description":"The token returned by lock.acquire."},"ttlSeconds":{"type":"integer","minimum":1,"maximum":86400,"description":"New lease duration in seconds."}},"required":["key","token","ttlSeconds"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/maritime/cases":{"get":{"tags":["maritime"],"summary":"US Coast Guard activity / port-state-control case history...","description":"US Coast Guard activity / port-state-control case history for a vessel, by USCG vessel id (from maritime.vessel). Returns cases newest-first with the activity id, start date, type (Boarding, Inspection, Investigation, etc.), and process status. Keyless, public-domain. The compliance/inspection record behind a vessel — use for safety and counterparty due diligence.","operationId":"maritime_cases","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = activity/PSC cases (newest first); total = case count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"activityId":{"type":"number","nullable":true},"startDate":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"statusDetail":{"type":"string","nullable":true}},"required":["activityId","startDate","type","status","statusDetail"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"maritime.cases","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"vesselId","in":"query","required":true,"description":"Vessel ID.","schema":{"type":"string","pattern":"^\\d+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/maritime/port":{"get":{"tags":["maritime"],"summary":"Look up world ports and terminals in the NGA World Port...","description":"Look up world ports and terminals in the NGA World Port Index (Pub 150, ~2,950 ports) by port name (partial match) and/or country (full country name, e.g. \"Japan\"). Returns matching ports with location (lat/lon, country, region), UN/LOCODE, harbor size/type and shelter, max vessel length/draft (meters), channel/anchorage/cargo-pier depths, tidal range, and chart number. Keyless, public-domain (NGA). Physical-port reference data an LLM cannot reliably recall; complements maritime.vessel (USCG vessel registry) and maritime.cases (port-state-control inspections).","operationId":"maritime_port","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching ports (sliced to limit); total = full match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"portNumber":{"type":"string","nullable":true},"portName":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"countryName":{"type":"string","nullable":true},"regionName":{"type":"string","nullable":true},"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true},"harborSize":{"type":"string","nullable":true},"harborType":{"type":"string","nullable":true},"shelter":{"type":"string","nullable":true},"maxVesselLengthM":{"type":"number","nullable":true},"maxVesselDraftM":{"type":"number","nullable":true},"channelDepthM":{"type":"number","nullable":true},"anchorageDepthM":{"type":"number","nullable":true},"cargoPierDepthM":{"type":"number","nullable":true},"tidalRangeM":{"type":"number","nullable":true},"unLocode":{"type":"string","nullable":true},"chartNumber":{"type":"string","nullable":true}},"required":["portNumber","portName","countryCode","countryName","regionName","latitude","longitude","harborSize","harborType","shelter","maxVesselLengthM","maxVesselDraftM","channelDepthM","anchorageDepthM","cargoPierDepthM","tidalRangeM","unLocode","chartNumber"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"maritime.port","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"portName","in":"query","required":false,"description":"Port name.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/maritime/vessel":{"get":{"tags":["maritime"],"summary":"Look up vessels in the US Coast Guard PSIX registry by name...","description":"Look up vessels in the US Coast Guard PSIX registry by name (partial match), call sign, official number, hull number (HIN), flag country, service type, or build year. Returns matching vessels with the USCG vessel id, name, call sign, service type, build year, status, official number, HIN, and flag. Keyless, public-domain. Covers US-flagged vessels (and foreign vessels with US port-state-control activity). Pair the returned vesselId with maritime.cases for the inspection record. (Cross-references trade.locode for ports.)","operationId":"maritime_vessel","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching vessels; total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"vesselId":{"type":"number","nullable":true},"name":{"type":"string","nullable":true},"callSign":{"type":"string","nullable":true},"serviceType":{"type":"string","nullable":true},"buildYear":{"type":"number","nullable":true},"status":{"type":"string","nullable":true},"officialNumber":{"type":"string","nullable":true},"hullNumber":{"type":"string","nullable":true},"flag":{"type":"string","nullable":true}},"required":["vesselId","name","callSign","serviceType","buildYear","status","officialNumber","hullNumber","flag"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"maritime.vessel","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","maxLength":100}},{"name":"callSign","in":"query","required":false,"description":"Call sign.","schema":{"type":"string","maxLength":40}},{"name":"officialNumber","in":"query","required":false,"description":"Official number.","schema":{"type":"string","maxLength":40}},{"name":"hullNumber","in":"query","required":false,"description":"Hull number.","schema":{"type":"string","maxLength":40}},{"name":"flag","in":"query","required":false,"description":"Flag.","schema":{"type":"string","maxLength":60}},{"name":"service","in":"query","required":false,"description":"Service.","schema":{"type":"string","maxLength":60}},{"name":"buildYear","in":"query","required":false,"description":"Build year.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"vesselId","in":"query","required":false,"description":"Vessel ID.","schema":{"type":"string","pattern":"^\\d+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/markets/holiday":{"get":{"tags":["markets"],"summary":"Stock-exchange holiday calendar.","description":"Stock-exchange holiday calendar. Pass exchange (default US); returns the list of upcoming market holidays with the date, holiday name, whether the session is a full close or an early close, and the trading hours when partial. Use it to plan around non-trading days. Data by Finnhub.","operationId":"markets_holiday","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = market holidays for the exchange.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"eventName":{"type":"string","nullable":true},"atDate":{"type":"string","nullable":true,"description":"Holiday date (yyyy-mm-dd)."},"tradingHour":{"type":"string","nullable":true,"description":"Trading hours if an early close; empty when fully closed."}},"required":["eventName","atDate","tradingHour"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"exchange":{"type":"string"},"timezone":{"type":"string","nullable":true}},"required":["exchange","timezone"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"markets.holiday","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"exchange","in":"query","required":false,"description":"Exchange code (default US).","schema":{"type":"string","minLength":1,"maxLength":8,"pattern":"^[A-Za-z]+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/markets/status":{"get":{"tags":["markets"],"summary":"Is a stock exchange open right now?","description":"Is a stock exchange open right now? Pass exchange (default US); returns whether trading is open, the current session (pre-market, regular, post-market, or closed), whether today is a market holiday, the exchange timezone, and the server timestamp. Use it to gate time-sensitive logic to market hours. Data by Finnhub.","operationId":"markets_status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one exchange’s current open/session state]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"isOpen":{"type":"boolean","nullable":true},"session":{"type":"string","nullable":true,"description":"pre-market | regular | post-market | closed (or null)."},"holiday":{"type":"string","nullable":true,"description":"Holiday name if today is a market holiday."},"timezone":{"type":"string","nullable":true},"timestamp":{"type":"string","nullable":true,"description":"Server time (ISO 8601)."}},"required":["exchange","isOpen","session","holiday","timezone","timestamp"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"markets.status","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"exchange","in":"query","required":false,"description":"Exchange code (default US).","schema":{"type":"string","minLength":1,"maxLength":8,"pattern":"^[A-Za-z]+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/device-510k":{"get":{"tags":["medical"],"summary":"FDA 510(k) premarket clearances - the record of medical...","description":"FDA 510(k) premarket clearances — the record of medical devices cleared for US marketing by demonstrating substantial equivalence to a predicate device. Search by device name, applicant (manufacturer), or FDA product code, and get back each clearance with its K-number, device name, applicant, decision date and decision description, clearance type (traditional/special/abbreviated), product code, advisory committee, and date received — newest decision first. Free, public-domain US government data. Authoritative regulatory-status data for medical-device diligence; point-in-time public records, not regulatory advice.","operationId":"medical_device-510k","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"device":{"type":"string","nullable":true},"applicant":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["device","applicant","productCode","limit"],"additionalProperties":false},"totalCount":{"type":"number"},"returned":{"type":"number"},"clearances":{"type":"array","items":{"type":"object","properties":{"kNumber":{"type":"string","nullable":true},"deviceName":{"type":"string","nullable":true},"applicant":{"type":"string","nullable":true},"decisionDate":{"type":"string","nullable":true},"decisionDescription":{"type":"string","nullable":true},"clearanceType":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"advisoryCommittee":{"type":"string","nullable":true},"dateReceived":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["kNumber","deviceName","applicant","decisionDate","decisionDescription","clearanceType","productCode","advisoryCommittee","dateReceived","state","country"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","totalCount","returned","clearances","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.device-510k","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"device","in":"query","required":false,"description":"Device.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"applicant","in":"query","required":false,"description":"Applicant.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"productCode","in":"query","required":false,"description":"Product code.","schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/device-classification":{"get":{"tags":["medical"],"summary":"FDA medical device classification - the regulatory class...","description":"FDA medical device classification — the regulatory class and controls for a device type. Search by device name or FDA product code and get back the device class (I/II/III, mapping to regulatory risk and controls), CFR regulation number, medical specialty/review panel, the official definition, and flags for life-sustaining/supporting, implant, GMP-exempt, and third-party-review eligibility. Free, public-domain US government data. The authoritative answer to \"what FDA class is this device and what regulation governs it\" — for regulatory and medical-device diligence; point-in-time public records, not regulatory advice.","operationId":"medical_device-classification","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"device":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["device","productCode","limit"],"additionalProperties":false},"totalCount":{"type":"number"},"returned":{"type":"number"},"classifications":{"type":"array","items":{"type":"object","properties":{"deviceName":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"deviceClass":{"type":"string","nullable":true},"regulationNumber":{"type":"string","nullable":true},"medicalSpecialty":{"type":"string","nullable":true},"definition":{"type":"string","nullable":true},"reviewPanel":{"type":"string","nullable":true},"lifeSustainSupport":{"type":"boolean","nullable":true},"implant":{"type":"boolean","nullable":true},"gmpExempt":{"type":"boolean","nullable":true},"thirdPartyReview":{"type":"boolean","nullable":true},"submissionType":{"type":"string","nullable":true}},"required":["deviceName","productCode","deviceClass","regulationNumber","medicalSpecialty","definition","reviewPanel","lifeSustainSupport","implant","gmpExempt","thirdPartyReview","submissionType"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","totalCount","returned","classifications","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.device-classification","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"device","in":"query","required":false,"description":"Device.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"productCode","in":"query","required":false,"description":"Product code.","schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/device-recall":{"get":{"tags":["medical"],"summary":"FDA medical-device recalls - the enforcement record of...","description":"FDA medical-device recalls — the enforcement record of devices removed or corrected in the US market because they could pose a health risk. Search by device name (product description), recalling firm (manufacturer), recall classification (I = most serious / reasonable probability of serious health consequences, II, or III), status (Ongoing, Completed, Terminated, Pending), or state of the recalling firm — or omit all filters for the most recent recalls nationwide. Each record returns the FDA recall number, classification, status, product description and quantity, the reason for the recall, code/lot information, the recalling firm and location, distribution pattern, whether it was voluntary or FDA-mandated, and the recall-initiation, classification, and report dates — newest report first, with the total matching count. Free, public-domain US government data. Which devices are under recall right now is fresh post-training data with real patient-safety stakes; distinct from medical.device-510k (clearances), medical.device-classification (risk class), medical.device-udi (device identifiers), and medical.device-event (adverse-event reports). Point-in-time public records, not medical or regulatory advice.","operationId":"medical_device-recall","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"device":{"type":"string","nullable":true},"firm":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["device","firm","classification","status","state","limit"],"additionalProperties":false},"totalCount":{"type":"number"},"returned":{"type":"number"},"recalls":{"type":"array","items":{"type":"object","properties":{"recallNumber":{"type":"string"},"status":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"productType":{"type":"string","nullable":true},"productDescription":{"type":"string","nullable":true},"productQuantity":{"type":"string","nullable":true},"codeInfo":{"type":"string","nullable":true},"reasonForRecall":{"type":"string","nullable":true},"initialNotification":{"type":"string","nullable":true},"voluntaryMandated":{"type":"string","nullable":true},"recallingFirm":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"distributionPattern":{"type":"string","nullable":true},"recallInitiationDate":{"type":"string","nullable":true},"centerClassificationDate":{"type":"string","nullable":true},"reportDate":{"type":"string","nullable":true}},"required":["recallNumber","status","classification","productType","productDescription","productQuantity","codeInfo","reasonForRecall","initialNotification","voluntaryMandated","recallingFirm","city","state","country","distributionPattern","recallInitiationDate","centerClassificationDate","reportDate"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","totalCount","returned","recalls","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.device-recall","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"device","in":"query","required":false,"description":"Device name / product-description substring.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"firm","in":"query","required":false,"description":"Recalling firm (manufacturer) name substring.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"classification","in":"query","required":false,"description":"Recall classification: I, II, or III.","schema":{"type":"string","enum":["I","II","III"]}},{"name":"status","in":"query","required":false,"description":"Recall status.","schema":{"type":"string","enum":["Ongoing","Completed","Terminated","Pending"]}},{"name":"state","in":"query","required":false,"description":"2-letter state of the recalling firm.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/device-udi":{"get":{"tags":["medical"],"summary":"FDA GUDID (Global Unique Device Identification Database)...","description":"FDA GUDID (Global Unique Device Identification Database) lookup — identify a marketed medical device from its UDI or by brand/company. Search by UDI/device identifier, brand name, or company name and get back the device description, version/model number, prescription vs OTC, single-use/kit/combination-product flags, MRI safety, sterilization, commercial-distribution status, publish date, the device identifiers (with issuing agency — GS1/HIBCC/ICCBBA), FDA product codes, and GMDN terms. Free, public-domain US government data. The canonical \"what device is this UDI\" lookup for supply-chain, clinical, and recall-matching agents; point-in-time public records.","operationId":"medical_device-udi","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"device":{"type":"string","nullable":true},"company":{"type":"string","nullable":true},"udi":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["device","company","udi","limit"],"additionalProperties":false},"totalCount":{"type":"number"},"returned":{"type":"number"},"devices":{"type":"array","items":{"type":"object","properties":{"brandName":{"type":"string","nullable":true},"companyName":{"type":"string","nullable":true},"versionModelNumber":{"type":"string","nullable":true},"deviceDescription":{"type":"string","nullable":true},"isRx":{"type":"boolean","nullable":true},"isOtc":{"type":"boolean","nullable":true},"isSingleUse":{"type":"boolean","nullable":true},"isKit":{"type":"boolean","nullable":true},"isCombinationProduct":{"type":"boolean","nullable":true},"mriSafety":{"type":"string","nullable":true},"commercialDistributionStatus":{"type":"string","nullable":true},"publishDate":{"type":"string","nullable":true},"identifiers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"issuingAgency":{"type":"string","nullable":true}},"required":["id","type","issuingAgency"],"additionalProperties":false}},"productCodes":{"type":"array","items":{"type":"string"}},"gmdnTerms":{"type":"array","items":{"type":"string"}}},"required":["brandName","companyName","versionModelNumber","deviceDescription","isRx","isOtc","isSingleUse","isKit","isCombinationProduct","mriSafety","commercialDistributionStatus","publishDate","identifiers","productCodes","gmdnTerms"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","totalCount","returned","devices","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.device-udi","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"device","in":"query","required":false,"description":"Device.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"company","in":"query","required":false,"description":"Company.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"udi","in":"query","required":false,"description":"Udi.","schema":{"type":"string","minLength":4,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/drug-approval":{"get":{"tags":["medical"],"summary":"FDA drug approval history from Drugs@FDA - the official...","description":"FDA drug approval history from Drugs@FDA — the official record of FDA-approved drug applications. Give a drug name (brand or generic), an FDA application number (e.g. NDA021436), or a sponsor name, and get back each application with its products (brand name, active ingredients + strengths, dosage form, route, marketing status, therapeutic-equivalence code, reference-drug flag) and its full submission history (original approvals, supplements, status + status date, review priority). Free, public-domain US government data. The authoritative \"is this drug FDA-approved, by whom, when, and in what formulations\" record — point-in-time public records, not medical advice.","operationId":"medical_drug-approval","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"drug":{"type":"string","nullable":true},"applicationNumber":{"type":"string","nullable":true},"sponsor":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["drug","applicationNumber","sponsor","limit"],"additionalProperties":false},"totalCount":{"type":"number"},"returned":{"type":"number"},"applications":{"type":"array","items":{"type":"object","properties":{"applicationNumber":{"type":"string","nullable":true},"sponsorName":{"type":"string","nullable":true},"products":{"type":"array","items":{"type":"object","properties":{"productNumber":{"type":"string","nullable":true},"brandName":{"type":"string","nullable":true},"activeIngredients":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"strength":{"type":"string","nullable":true}},"required":["name","strength"],"additionalProperties":false}},"dosageForm":{"type":"string","nullable":true},"route":{"type":"string","nullable":true},"marketingStatus":{"type":"string","nullable":true},"referenceDrug":{"type":"string","nullable":true},"teCode":{"type":"string","nullable":true}},"required":["productNumber","brandName","activeIngredients","dosageForm","route","marketingStatus","referenceDrug","teCode"],"additionalProperties":false}},"submissions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","nullable":true},"number":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"statusDate":{"type":"string","nullable":true},"reviewPriority":{"type":"string","nullable":true},"classCode":{"type":"string","nullable":true}},"required":["type","number","status","statusDate","reviewPriority","classCode"],"additionalProperties":false}},"brandNames":{"type":"array","items":{"type":"string"}},"genericNames":{"type":"array","items":{"type":"string"}},"manufacturerNames":{"type":"array","items":{"type":"string"}}},"required":["applicationNumber","sponsorName","products","submissions","brandNames","genericNames","manufacturerNames"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","totalCount","returned","applications","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.drug-approval","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"drug","in":"query","required":false,"description":"Drug.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"applicationNumber","in":"query","required":false,"description":"Application number.","schema":{"type":"string","minLength":3,"maxLength":20}},{"name":"sponsor","in":"query","required":false,"description":"Sponsor.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/drug-label":{"get":{"tags":["medical"],"summary":"Authoritative FDA drug label (Structured Product Labeling).","description":"Authoritative FDA drug label (Structured Product Labeling). Give a drug name (brand, generic, or substance), or an exact NDC, RxCUI, or SPL set_id, and get back the FDA-approved label split into the sections agents need: boxed warning, indications and usage, dosage and administration, contraindications, warnings, adverse reactions, drug interactions, use in specific populations, pregnancy, mechanism of action, and active/inactive ingredients. Each record also carries identity metadata (brand/generic names, manufacturer, NDCs, RxCUIs, route, DEA schedule, OTC vs prescription) plus a hasBoxedWarning flag. Free, public-domain US government data. Point-in-time public records, not medical advice. Use for prescribing-support, pharmacy, and clinical agents that must read the real label rather than guess it.","operationId":"medical_drug-label","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"drug":{"type":"string","nullable":true},"ndc":{"type":"string","nullable":true},"rxcui":{"type":"string","nullable":true},"setId":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["drug","ndc","rxcui","setId","limit"],"additionalProperties":false},"totalCount":{"type":"number"},"returned":{"type":"number"},"hasBoxedWarning":{"type":"boolean"},"labels":{"type":"array","items":{"type":"object","properties":{"setId":{"type":"string","nullable":true},"splId":{"type":"string","nullable":true},"effectiveTime":{"type":"string","nullable":true},"brandNames":{"type":"array","items":{"type":"string"}},"genericNames":{"type":"array","items":{"type":"string"}},"substanceNames":{"type":"array","items":{"type":"string"}},"manufacturerNames":{"type":"array","items":{"type":"string"}},"productNdc":{"type":"array","items":{"type":"string"}},"routes":{"type":"array","items":{"type":"string"}},"productType":{"type":"string","nullable":true},"rxcui":{"type":"array","items":{"type":"string"}},"deaSchedule":{"type":"string","nullable":true},"isOtc":{"type":"boolean","nullable":true},"boxedWarning":{"type":"string","nullable":true},"indicationsAndUsage":{"type":"string","nullable":true},"dosageAndAdministration":{"type":"string","nullable":true},"contraindications":{"type":"string","nullable":true},"warnings":{"type":"string","nullable":true},"adverseReactions":{"type":"string","nullable":true},"drugInteractions":{"type":"string","nullable":true},"useInSpecificPopulations":{"type":"string","nullable":true},"pregnancy":{"type":"string","nullable":true},"mechanismOfAction":{"type":"string","nullable":true},"activeIngredient":{"type":"string","nullable":true},"inactiveIngredient":{"type":"string","nullable":true},"purpose":{"type":"string","nullable":true},"doNotUse":{"type":"string","nullable":true},"whenUsing":{"type":"string","nullable":true},"stopUse":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["setId","splId","effectiveTime","brandNames","genericNames","substanceNames","manufacturerNames","productNdc","routes","productType","rxcui","deaSchedule","isOtc","boxedWarning","indicationsAndUsage","dosageAndAdministration","contraindications","warnings","adverseReactions","drugInteractions","useInSpecificPopulations","pregnancy","mechanismOfAction","activeIngredient","inactiveIngredient","purpose","doNotUse","whenUsing","stopUse","description"],"additionalProperties":false}},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","totalCount","returned","hasBoxedWarning","labels","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.drug-label","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"drug","in":"query","required":false,"description":"Drug name — brand, generic, or substance.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"ndc","in":"query","required":false,"description":"Exact product NDC.","schema":{"type":"string","minLength":3,"maxLength":20}},{"name":"rxcui","in":"query","required":false,"description":"Exact RxNorm RxCUI.","schema":{"type":"string","pattern":"^\\d{1,9}$"}},{"name":"setId","in":"query","required":false,"description":"Exact SPL set_id.","schema":{"type":"string","minLength":8,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Max labels returned.","schema":{"type":"integer","minimum":1,"maximum":25,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/drug-price":{"get":{"tags":["medical"],"summary":"Look up US drug pricing from CMS NADAC (National Average...","description":"Look up US drug pricing from CMS NADAC (National Average Drug Acquisition Cost) — the benchmark per-unit acquisition cost CMS surveys from retail pharmacies and publishes weekly. Pass ndc (11-digit National Drug Code) for an exact product, or name (drug name/description keyword, e.g. 'atorvastatin 10 mg') to search. Returns rows with the NDC, description, nadacPerUnit (USD per pricing unit), pricingUnit (EA/ML/GM), effectiveDate, OTC flag, and brand/generic classification — most recent effective date first. Real surveyed acquisition costs instead of model-guessed prices. Public domain; the current-year dataset is resolved automatically. NADAC is an acquisition-cost benchmark, not a retail or insured price.","operationId":"medical_drug-price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NADAC price rows (newest effective date first); meta = query + dataset year + total matches.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ndc":{"type":"string"},"description":{"type":"string"},"nadacPerUnit":{"type":"number","nullable":true},"pricingUnit":{"type":"string","nullable":true},"effectiveDate":{"type":"string","nullable":true},"otc":{"type":"boolean","nullable":true},"classification":{"type":"string","nullable":true,"description":"G = generic, B = brand"},"asOfDate":{"type":"string","nullable":true}},"required":["ndc","description","nadacPerUnit","pricingUnit","effectiveDate","otc","classification","asOfDate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"ndc":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["ndc","name"],"additionalProperties":false},"datasetYear":{"type":"string"},"total":{"type":"integer"}},"required":["query","datasetYear","total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.drug-price","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ndc","in":"query","required":false,"description":"NDC.","schema":{"type":"string","minLength":3,"maxLength":20}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/drug-status":{"get":{"tags":["medical"],"summary":"One-call drug situational awareness.","description":"One-call drug situational awareness. Give a drug name (resolved to a canonical RxCUI via NIH RxNorm), or an exact rxcui or ndc you already hold, and get back: whether it is currently in FDA shortage, any open or recent FDA recalls, and FDA NDC-directory metadata (labeler, DEA schedule, pharmaceutical class, marketing status). Returns a resolved identity block plus hasCurrentShortage / hasOpenRecall booleans and one found/error block per source (shortages, ndc, recalls). Composition of NIH RxNorm + OpenFDA drug-shortages, NDC directory, and recall enforcement — all free, public-domain US government data; each source degrades independently. Point-in-time public records, not medical advice. Use for pharmacy/supply-chain triage, prescribing-support agents, and verifying a drug is real, scheduled, and available before acting.","operationId":"medical_drug-status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"drug":{"type":"string","nullable":true},"rxcui":{"type":"string","nullable":true},"ndc":{"type":"string","nullable":true}},"required":["drug","rxcui","ndc"],"additionalProperties":false},"resolved":{"type":"object","properties":{"rxcui":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"termType":{"type":"string","nullable":true},"matchScore":{"type":"number","nullable":true}},"required":["rxcui","name","termType","matchScore"],"additionalProperties":false},"hasCurrentShortage":{"type":"boolean","nullable":true},"hasOpenRecall":{"type":"boolean","nullable":true},"shortages":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"ndc":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"recalls":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"data":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","data"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"note":{"type":"string"}},"required":["query","resolved","hasCurrentShortage","hasOpenRecall","shortages","ndc","recalls","sources","note"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.drug-status","x-2s-version":null,"x-2s-price":{"usd":0.006},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"drug","in":"query","required":false,"description":"Drug.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"rxcui","in":"query","required":false,"description":"RXCUI.","schema":{"type":"string","pattern":"^\\d{1,9}$"}},{"name":"ndc","in":"query","required":false,"description":"NDC.","schema":{"type":"string","minLength":3,"maxLength":20}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/genetics":{"get":{"tags":["medical"],"summary":"MedlinePlus Genetics (US National Library of Medicine)...","description":"MedlinePlus Genetics (US National Library of Medicine) reference on a genetic condition or gene. Give a term (e.g. \"cystic fibrosis\", \"BRCA1\", \"sickle cell\") and get back the authoritative NLM record: the condition/gene name, a plain-language summary, the full set of sections (description, causes, frequency, inheritance, treatment), the inheritance pattern(s), related genes (with links), synonyms, and cross-references to other databases (OMIM, GTR, ICD-10-CM, …). Free, public-domain (NLM). Authoritative genetics reference an LLM cannot recite reliably — for clinical, patient-education, and research agents. Educational reference, not medical advice.","operationId":"medical_genetics","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one genetics record]; total = 1 (or 0 if no match).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"object","properties":{"term":{"type":"string"},"type":{"type":"string","enum":["condition","gene"],"nullable":true},"slug":{"type":"string","nullable":true}},"required":["term","type","slug"],"additionalProperties":false},"type":{"type":"string","enum":["condition","gene"],"nullable":true},"name":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"sections":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","nullable":true},"text":{"type":"string"}},"required":["role","text"],"additionalProperties":false}},"inheritancePatterns":{"type":"array","items":{"type":"string"}},"relatedGenes":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"url":{"type":"string","nullable":true}},"required":["symbol","url"],"additionalProperties":false}},"synonyms":{"type":"array","items":{"type":"string"}},"crossReferences":{"type":"array","items":{"type":"object","properties":{"db":{"type":"string"},"key":{"type":"string"}},"required":["db","key"],"additionalProperties":false}},"url":{"type":"string","nullable":true}},"required":["query","type","name","summary","sections","inheritancePatterns","relatedGenes","synonyms","crossReferences","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.genetics","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"term","in":"query","required":true,"description":"Condition or gene name.","schema":{"type":"string","minLength":2,"maxLength":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/icd10":{"get":{"tags":["medical"],"summary":"Verify and search ICD-10-CM diagnosis codes against the...","description":"Verify and search ICD-10-CM diagnosis codes against the official US code set (FY2026, ~98k entries). Pass code (with or without the dot, e.g. E11.9 or E119) to confirm the code exists and list its more-specific child codes, or q to keyword-search code descriptions (e.g. \"type 2 diabetes neuropathy\"). Optional billable_only=true restricts results to codes valid for claim submission; limit caps results (1-50, default 10). Returns a verified flag, the exact match if any, and matched codes with billable status plus short and long descriptions. Data: CMS/NCHS ICD-10-CM (public domain), refreshed each US fiscal year. Use to confirm diagnosis codes are real and current before placing them in claims, prior authorizations, or clinical documents.","operationId":"medical_icd10","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched ICD-10-CM codes (verify mode: the exact code + child codes; keyword mode: billable matches first); total = 1 when an exact code is verified, else null. meta.mode flags verify vs keyword and carries verified/exactMatch.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Storage form without the dot, e.g. E119."},"codeDotted":{"type":"string","description":"Conventional display form, e.g. E11.9."},"billable":{"type":"boolean","description":"True when valid for claim submission (leaf code); false for category headers."},"shortDescription":{"type":"string"},"longDescription":{"type":"string"}},"required":["code","codeDotted","billable","shortDescription","longDescription"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["verify","keyword"],"description":"verify = code lookup; keyword = q search."},"query":{"type":"object","properties":{"code":{"type":"string","nullable":true},"q":{"type":"string","nullable":true},"billableOnly":{"type":"boolean"},"limit":{"type":"integer"}},"required":["code","q","billableOnly","limit"],"additionalProperties":false},"verified":{"type":"boolean","nullable":true,"description":"Verify mode: true iff the exact code exists in the official set. null in keyword mode."},"exactMatch":{"type":"object","properties":{"code":{"type":"string","description":"Storage form without the dot, e.g. E119."},"codeDotted":{"type":"string","description":"Conventional display form, e.g. E11.9."},"billable":{"type":"boolean","description":"True when valid for claim submission (leaf code); false for category headers."},"shortDescription":{"type":"string"},"longDescription":{"type":"string"}},"required":["code","codeDotted","billable","shortDescription","longDescription"],"additionalProperties":false,"nullable":true,"description":"The exact code when verified, else null."},"fiscalYear":{"type":"integer","description":"US fiscal year of the loaded code set."}},"required":["mode","query","verified","exactMatch","fiscalYear"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.icd10","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"ICD-10-CM code to verify, with or without the dot (e.g. E11.9 or E119). Returns the exact match plus more-specific child codes. Provide either code or q, not both.","schema":{"type":"string","minLength":3,"maxLength":9,"pattern":"^[A-Za-z][0-9][0-9A-Za-z](\\.?[0-9A-Za-z]{0,4})$"}},{"name":"q","in":"query","required":false,"description":"Keyword search over official code descriptions (e.g. \"type 2 diabetes neuropathy\"). Every word must match. Provide either code or q, not both.","schema":{"type":"string","minLength":3,"maxLength":120}},{"name":"billable_only","in":"query","required":false,"description":"When true, only return codes valid for claim submission (excludes category headers).","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum codes returned (1-50, default 10).","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/npi":{"get":{"tags":["medical"],"summary":"Look up US healthcare providers in the CMS NPPES registry...","description":"Look up US healthcare providers in the CMS NPPES registry — the authoritative directory of National Provider Identifiers (NPIs). Give an exact 10-digit NPI, or search by provider last name (+ optional first name), or organization name, optionally narrowed by state and taxonomy/specialty. Returns each provider with NPI, entity type (individual vs organization), status, name/credential/gender or organization name, sole-proprietor flag, enumeration + last-updated dates, primary taxonomy, the full taxonomy list (code, description, primary flag, state license), and practice/mailing addresses with phone. Free, public-domain (CMS). The canonical \"who is this NPI / find this provider\" lookup for healthcare, claims, and credentialing agents.","operationId":"medical_npi","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching providers; total = NPPES match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"npi":{"type":"string","nullable":true},"enumerationType":{"type":"string","nullable":true},"entityType":{"type":"string","enum":["Individual","Organization"],"nullable":true},"status":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"credential":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"organizationName":{"type":"string","nullable":true},"soleProprietor":{"type":"string","nullable":true},"enumerationDate":{"type":"string","nullable":true},"lastUpdated":{"type":"string","nullable":true},"primaryTaxonomy":{"type":"string","nullable":true},"taxonomies":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primary":{"type":"boolean"},"state":{"type":"string","nullable":true},"license":{"type":"string","nullable":true}},"required":["code","description","primary","state","license"],"additionalProperties":false}},"addresses":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","nullable":true},"address1":{"type":"string","nullable":true},"address2":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"telephone":{"type":"string","nullable":true},"fax":{"type":"string","nullable":true}},"required":["purpose","address1","address2","city","state","postalCode","countryCode","telephone","fax"],"additionalProperties":false}}},"required":["npi","enumerationType","entityType","status","firstName","lastName","credential","gender","organizationName","soleProprietor","enumerationDate","lastUpdated","primaryTaxonomy","taxonomies","addresses"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.npi","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"npi","in":"query","required":false,"description":"NPI.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"name":"firstName","in":"query","required":false,"description":"First name to filter by.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"lastName","in":"query","required":false,"description":"Last name to filter by.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"organization","in":"query","required":false,"description":"Organization.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"taxonomy","in":"query","required":false,"description":"Taxonomy.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/provider-id-resolve":{"get":{"tags":["medical"],"summary":"Resolve a 10-digit NPI to the provider identity plus a...","description":"Resolve a 10-digit NPI to the provider identity plus a fully decoded specialty profile in one call: entity type, name/organization, status, the primary specialty (NUCC grouping + classification + display name), and every taxonomy on the record decoded the same way -- with primary flag, practice state, and license. Combines the NPPES lookup (medical.npi) with the NUCC specialty decode (medical.taxonomy-specialty) so a claims, credentialing, or referral agent gets \"who is this NPI and what do they actually do\" without a second call. Data: CMS NPPES + NUCC (US public domain). Note: the facility CCN (CMS Certification Number) requires a separate CMS enrollment crosswalk and is returned null (DEFERRED) rather than guessed.","operationId":"medical_provider-id-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one provider with decoded specialties]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"npi":{"type":"string"},"entityType":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"organizationName":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"primarySpecialty":{"type":"object","properties":{"code":{"type":"string","nullable":true},"grouping":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true}},"required":["code","grouping","classification","displayName"],"additionalProperties":false,"nullable":true},"taxonomies":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","nullable":true},"primary":{"type":"boolean"},"state":{"type":"string","nullable":true},"license":{"type":"string","nullable":true},"grouping":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"specialization":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true}},"required":["code","primary","state","license","grouping","classification","specialization","displayName"],"additionalProperties":false}},"ccn":{"enum":["null"],"nullable":true,"description":"DEFERRED: NPI<->CCN crosswalk needs a CMS enrollment ingest."}},"required":["npi","entityType","name","organizationName","status","primarySpecialty","taxonomies","ccn"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.provider-id-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"npi","in":"query","required":true,"description":"10-digit National Provider Identifier.","schema":{"type":"string","pattern":"^\\d{10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/rxnorm":{"get":{"tags":["medical"],"summary":"Normalize and verify drug names against RxNorm, the...","description":"Normalize and verify drug names against RxNorm, the canonical US drug vocabulary from the NIH. Two modes: term (\"tylenol 500mg\", brand or generic, typos tolerated) returns ranked RxCUI candidates with normalized names and match scores; rxcui returns the canonical concept (name, term type like IN=ingredient / SBD=branded drug / SCD=clinical drug, suppression flag) plus related concepts — active ingredients, brand names, and available dose forms. Use before writing prescriptions data, drug interactions queries, or pharmacy integrations: verify the drug exists and get its stable identifier instead of trusting model memory. Sibling: /api/medical/icd10 (diagnosis codes). Public-domain NIH data.","operationId":"medical_rxnorm","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked RxCUI candidates (term/search mode) or [the one canonical concept] (rxcui/detail mode); total = null in search mode, 1 or 0 in detail mode. meta.mode flags search vs detail; meta.concept + meta.related carry detail-mode extras.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["search","detail"]},"concept":{"type":"object","properties":{"rxcui":{"type":"string"},"name":{"type":"string"},"synonym":{"type":"string","nullable":true},"termType":{"type":"string","nullable":true,"description":"IN=ingredient, BN=brand, SBD=branded drug, SCD=clinical drug, …"},"suppressed":{"type":"boolean"}},"required":["rxcui","name","synonym","termType","suppressed"],"additionalProperties":false,"nullable":true,"description":"Canonical concept (detail mode). Null when the rxcui does not exist."},"related":{"type":"array","items":{"type":"object","properties":{"termType":{"type":"string"},"concepts":{"type":"array","items":{"type":"object","properties":{"rxcui":{"type":"string"},"name":{"type":"string"}},"required":["rxcui","name"],"additionalProperties":false}}},"required":["termType","concepts"],"additionalProperties":false},"nullable":true,"description":"Related concepts by term type: IN (ingredients), BN (brands), DF (dose forms). Detail mode only."}},"required":["mode","concept","related"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.rxnorm","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"term","in":"query","required":false,"description":"Free-text drug name. Provide term or rxcui, not both.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"rxcui","in":"query","required":false,"description":"RXCUI.","schema":{"type":"string","pattern":"^\\d{1,8}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/medical/taxonomy-specialty":{"get":{"tags":["medical"],"summary":"Resolve a NUCC Health Care Provider Taxonomy code -- the...","description":"Resolve a NUCC Health Care Provider Taxonomy code -- the specialty code returned by medical.npi and printed on every NPPES record -- into its human specialty: grouping (top level, e.g. \"Allopathic & Osteopathic Physicians\"), classification (e.g. \"Anesthesiology\"), specialization, the official display name, and the section (Individual vs Non-Individual). The decode step every claims, credentialing, and provider-directory agent needs to turn an opaque 10-char taxonomy code into a readable specialty. Data: NUCC code set (public domain), bundled and version-pinned. Note: the CMS Medicare 2-char physician-specialty crosswalk is published only as a PDF, so medicareSpecialty is returned null (DEFERRED) rather than guessed.","operationId":"medical_taxonomy-specialty","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one resolved taxonomy code with specialty grouping/classification/specialization/displayName]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"grouping":{"type":"string","nullable":true},"classification":{"type":"string","nullable":true},"specialization":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"section":{"type":"string","nullable":true},"medicareSpecialty":{"enum":["null"],"nullable":true,"description":"DEFERRED: CMS Medicare specialty crosswalk is PDF-only; not bundled."}},"required":["code","grouping","classification","specialization","displayName","section","medicareSpecialty"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"medical.taxonomy-specialty","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":true,"description":"NUCC taxonomy code, e.g. 207L00000X.","schema":{"type":"string","pattern":"^[0-9A-Za-z]{10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/music/artist":{"get":{"tags":["music"],"summary":"Resolve a music artist from MusicBrainz (CC0).","description":"Resolve a music artist from MusicBrainz (CC0). Pass a name (or free-text/Lucene query). Returns ranked artists with MusicBrainz ID (MBID), name, sort name, type (Person/Group), country, gender, life span (begin/end/ended), and disambiguation. Keyless, public-domain core data. Use to canonicalize an artist to its MBID.","operationId":"music_artist","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked artists; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mbid":{"type":"string"},"name":{"type":"string","nullable":true},"sortName":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"lifeSpanBegin":{"type":"string","nullable":true},"lifeSpanEnd":{"type":"string","nullable":true},"ended":{"type":"boolean","nullable":true},"disambiguation":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["mbid","name","sortName","type","country","gender","lifeSpanBegin","lifeSpanEnd","ended","disambiguation","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"music.artist","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","maxLength":200}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","maxLength":300}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/music/recording":{"get":{"tags":["music"],"summary":"Resolve a song/recording from MusicBrainz (the open, CC0...","description":"Resolve a song/recording from MusicBrainz (the open, CC0 music encyclopedia). Pass artist + title, or a free-text query (Lucene supported). Returns ranked recordings with MusicBrainz ID (MBID), title, primary artist, length (ms), first-release date, and disambiguation. Keyless, public-domain core data. Use to canonicalize a track to its MBID or cross-reference identity.","operationId":"music_recording","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked recordings; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mbid":{"type":"string"},"title":{"type":"string","nullable":true},"artist":{"type":"string","nullable":true},"lengthMs":{"type":"number","nullable":true},"firstReleaseDate":{"type":"string","nullable":true},"disambiguation":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["mbid","title","artist","lengthMs","firstReleaseDate","disambiguation","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"music.recording","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"artist","in":"query","required":false,"description":"Artist.","schema":{"type":"string","maxLength":200}},{"name":"title","in":"query","required":false,"description":"Title to search for.","schema":{"type":"string","maxLength":200}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","maxLength":300}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/music/release":{"get":{"tags":["music"],"summary":"Resolve an album/release from MusicBrainz (CC0).","description":"Resolve an album/release from MusicBrainz (CC0). Pass a barcode (UPC/EAN), or artist + album, or a free-text query. Returns ranked releases with MusicBrainz ID (MBID), title, primary artist, release date, country, barcode, status, track count, label, and catalog number. Keyless, public-domain core data. Barcode → album is the differentiated lookup (resolve a physical product to its metadata).","operationId":"music_release","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked releases; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mbid":{"type":"string"},"title":{"type":"string","nullable":true},"artist":{"type":"string","nullable":true},"date":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"barcode":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"trackCount":{"type":"number","nullable":true},"label":{"type":"string","nullable":true},"catalogNumber":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["mbid","title","artist","date","country","barcode","status","trackCount","label","catalogNumber","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"music.release","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"barcode","in":"query","required":false,"description":"Barcode.","schema":{"type":"string","pattern":"^\\d{6,14}$"}},{"name":"artist","in":"query","required":false,"description":"Artist.","schema":{"type":"string","maxLength":200}},{"name":"album","in":"query","required":false,"description":"Album.","schema":{"type":"string","maxLength":200}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","maxLength":300}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/net/asn":{"get":{"tags":["net"],"summary":"Look up an Autonomous System (BGP) by AS number.","description":"Look up an Autonomous System (BGP) by AS number. Pass asn as AS3333 or 3333. Returns the AS holder/operator name, the IANA/RIR allocation block it falls in, whether it is currently announced, and a live routing-status block: first/last seen prefixes, announced IPv4/IPv6 prefix + address counts, RIS peer visibility, and observed BGP neighbour count. Data: RIPEstat (RIPE NCC), free and public. Distinct from geo.ip (host geolocation) and dns/whois (name lookups) — this is who-owns-and-routes-this-AS, observed live from the global routing table. For network forensics, abuse/security triage, and infrastructure mapping.","operationId":"net_asn","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"asn":{"type":"number"},"resource":{"type":"string"},"holder":{"type":"string","nullable":true},"announced":{"type":"boolean","nullable":true},"block":{"type":"object","properties":{"resource":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["resource","name","description"],"additionalProperties":false,"nullable":true},"routing":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"firstSeen":{"type":"object","properties":{"prefix":{"type":"string"},"time":{"type":"string"}},"required":["prefix","time"],"additionalProperties":false,"nullable":true},"lastSeen":{"type":"object","properties":{"prefix":{"type":"string"},"time":{"type":"string"}},"required":["prefix","time"],"additionalProperties":false,"nullable":true},"announcedV4":{"type":"object","properties":{"prefixes":{"type":"number"},"ips":{"type":"number"}},"required":["prefixes","ips"],"additionalProperties":false,"nullable":true},"announcedV6":{"type":"object","properties":{"prefixes":{"type":"number"},"slash48s":{"type":"number"}},"required":["prefixes","slash48s"],"additionalProperties":false,"nullable":true},"visibilityV4":{"type":"object","properties":{"seeing":{"type":"number"},"total":{"type":"number"}},"required":["seeing","total"],"additionalProperties":false,"nullable":true},"visibilityV6":{"type":"object","properties":{"seeing":{"type":"number"},"total":{"type":"number"}},"required":["seeing","total"],"additionalProperties":false,"nullable":true},"observedNeighbours":{"type":"number","nullable":true}},"required":["found","error","firstSeen","lastSeen","announcedV4","announcedV6","visibilityV4","visibilityV6","observedNeighbours"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["asn","resource","holder","announced","block","routing","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"net.asn","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"asn","in":"query","required":true,"description":"AS number, e.g. AS3333 or 3333.","schema":{"type":"string","minLength":1,"maxLength":15}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/net/ip-resolve":{"get":{"tags":["net"],"summary":"Resolve a single IPv4/IPv6 address to its full network...","description":"Resolve a single IPv4/IPv6 address to its full network identity in one call: the Autonomous System number, the authoritative AS holder/operator (RIPEstat), the ISP + organization, whether the AS is currently announced, the RIR/IANA allocation block the AS sits in, and country/region/city + coordinates + timezone. One join that turns an IP into \"who runs this network and where\" -- the lookup network-forensics, abuse triage, and fraud agents otherwise stitch together from a geo API plus a separate BGP source. Composes geo IP data + RIPEstat (RIPE NCC, CC BY 4.0); the routing/holder block degrades independently, with per-source status returned. Distinct from net.asn (AS-number first) and geo.ip (geo only): this is IP-first and joins both.","operationId":"net_ip-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one IP resolved to ASN + holder + RIR allocation + geo, with per-source status]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"asn":{"type":"number","nullable":true},"asnHolder":{"type":"string","nullable":true},"org":{"type":"string","nullable":true},"isp":{"type":"string","nullable":true},"rir":{"type":"object","properties":{"resource":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["resource","name","description"],"additionalProperties":false,"nullable":true},"announced":{"type":"boolean","nullable":true},"country":{"type":"object","properties":{"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["code","name"],"additionalProperties":false},"region":{"type":"object","properties":{"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["code","name"],"additionalProperties":false},"city":{"type":"string","nullable":true},"coords":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"additionalProperties":false,"nullable":true},"timezone":{"type":"string","nullable":true},"sources":{"type":"object","properties":{"geo":{"type":"string"},"ripe":{"type":"string"}},"required":["geo","ripe"],"additionalProperties":false}},"required":["ip","asn","asnHolder","org","isp","rir","announced","country","region","city","coords","timezone","sources"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"net.ip-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ip","in":"query","required":true,"description":"IPv4 or IPv6 address, e.g. 8.8.8.8.","schema":{"type":"string","pattern":"^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|[0-9a-fA-F:]+)$","minLength":2,"maxLength":45}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/net/mac-vendor":{"get":{"tags":["net"],"summary":"Resolve a MAC address (or bare OUI prefix) to its...","description":"Resolve a MAC address (or bare OUI prefix) to its IEEE-registered hardware vendor. Accepts any common format — FC:FB:FB:01:02:03, fc-fb-fb-01-02-03, fcfb.fb01.0203, fcfbfb, or a 9-hex MA-S prefix. Uses longest-prefix matching across the IEEE MA-L (24-bit), MA-M (28-bit) and MA-S (36-bit) registries so blocks IEEE has subdivided resolve to the actual manufacturer. Returns the vendor name, the matched OUI prefix and which registry it came from, plus decoded address bits: whether the address is multicast/group, locally administered, or a randomized (privacy) MAC — for which no vendor exists by design. Authoritative bundled IEEE data.","operationId":"net_mac-vendor","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"mac":{"type":"string"}},"required":["mac"],"additionalProperties":false},"normalized":{"type":"string","nullable":true},"oui":{"type":"string","nullable":true},"registry":{"type":"string","enum":["MA-L","MA-M","MA-S"],"nullable":true},"vendor":{"type":"string","nullable":true},"found":{"type":"boolean"},"isMulticast":{"type":"boolean"},"isLocallyAdministered":{"type":"boolean"},"isRandomized":{"type":"boolean"},"source":{"$ref":"#/components/schemas/Source"}},"required":["query","normalized","oui","registry","vendor","found","isMulticast","isLocallyAdministered","isRandomized","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"net.mac-vendor","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"mac","in":"query","required":true,"description":"MAC address or OUI prefix, e.g. FC:FB:FB:01:02:03 or fcfbfb.","schema":{"type":"string","minLength":1,"maxLength":64}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/net/rpki-validity":{"get":{"tags":["net"],"summary":"RPKI Route Origin Validation for a (BGP origin AS, prefix)...","description":"RPKI Route Origin Validation for a (BGP origin AS, prefix) pair — answers whether an AS is legitimately authorized to originate a prefix. Pass asn (e.g. AS15169) and prefix (CIDR, e.g. 8.8.8.0/24). Returns status (valid = a ROA authorizes it; invalid = a ROA exists but does NOT authorize this origin — a possible hijack/route-leak that RPKI-enforcing networks will drop; unknown = no covering ROA), a hijackSignal boolean, the validating ROAs (origin, prefix, maxLength), and a plain-English description. Live RIR/RPKI data via RIPEstat (keyless) — un-derivable by an LLM. The core BGP-security check; complements net.asn.","operationId":"net_rpki-validity","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [RPKI validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"asn":{"type":"integer"},"prefix":{"type":"string"},"status":{"type":"string","description":"valid | invalid | unknown"},"hijackSignal":{"type":"boolean"},"validatingRoas":{"type":"array","items":{"type":"object","properties":{"origin":{"type":"number","nullable":true},"prefix":{"type":"string","nullable":true},"maxLength":{"type":"number","nullable":true},"validity":{"type":"string","nullable":true}},"required":["origin","prefix","maxLength","validity"],"additionalProperties":false}},"description":{"type":"string"}},"required":["asn","prefix","status","hijackSignal","validatingRoas","description"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"net.rpki-validity","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"asn","in":"query","required":true,"description":"ASN.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"prefix","in":"query","required":true,"description":"Prefix.","schema":{"type":"string","minLength":4,"maxLength":49}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/news/hn-item":{"get":{"tags":["news"],"summary":"Fetch a specific Hacker News item (story, comment, job...","description":"Fetch a specific Hacker News item (story, comment, job, poll) by its numeric ID. Returns id, type, author, time (unix + ISO), title, URL, text, score, descendant count, kid count, parent (for comments), dead/deleted flags, canonical news.ycombinator.com URL.","operationId":"news_hn-item","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [HN item] (story/comment/job/poll by id); total = 1, or items = [] / total = 0 when the id is unknown.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","nullable":true},"by":{"type":"string","nullable":true},"time":{"type":"integer","nullable":true},"timeIso":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"text":{"type":"string","nullable":true},"score":{"type":"integer","nullable":true},"descendantsCount":{"type":"integer","nullable":true},"kidsCount":{"type":"integer"},"parent":{"type":"integer","nullable":true},"deleted":{"type":"boolean"},"dead":{"type":"boolean"},"hnUrl":{"type":"string","format":"uri"}},"required":["id","type","by","time","timeIso","title","url","text","score","descendantsCount","kidsCount","parent","deleted","dead","hnUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"news.hn-item","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":true,"description":"Unique identifier of the record to fetch.","schema":{"type":"integer","minimum":1,"maximum":1000000000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/news/hn-search":{"get":{"tags":["news"],"summary":"Full-text search across all of Hacker News (via the Algolia...","description":"Full-text search across all of Hacker News (via the Algolia HN API). Search stories or comments by keyword, sorted by relevance or by date (newest first). Filter by tags (story/comment/ask_hn/show_hn/poll) and by author. Each hit: title, URL, author, points, comment count, story/comment text, created time, and canonical HN URL. Net-new vs news.hn-top (curated feeds) and news.search (general news).","operationId":"news_hn-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = search hits; meta.nbHits = total matches upstream.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"objectId":{"type":"string","nullable":true},"type":{"type":"string"},"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"author":{"type":"string","nullable":true},"points":{"type":"number","nullable":true},"numComments":{"type":"number","nullable":true},"storyText":{"type":"string","nullable":true},"commentText":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"storyId":{"type":"number","nullable":true},"hnUrl":{"type":"string"}},"required":["objectId","type","title","url","author","points","numComments","storyText","commentText","createdAt","storyId","hnUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string"},"nbHits":{"type":"number"}},"required":["query","nbHits"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"news.hn-search","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":false,"description":"Search keywords (may be empty when filtering by tags/author).","schema":{"type":"string","maxLength":400,"default":""}},{"name":"tags","in":"query","required":false,"description":"Tags.","schema":{"type":"string","enum":["story","comment","ask_hn","show_hn","poll"]}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["relevance","date"]}},{"name":"author","in":"query","required":false,"description":"Restrict to one HN author.","schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/news/hn-top":{"get":{"tags":["news"],"summary":"Hacker News feed of items.","description":"Hacker News feed of items. Pass kind = top (default) | new | best | ask | show | job to pick the feed. Returns each item's id, type, author, time (unix + ISO), title, URL, text (for self-posts), score, descendant + kid counts, parent (for comments), dead/deleted flags, and canonical news.ycombinator.com URL. Default limit = 30, max 100. Useful for tech-sentiment + topic tracking.","operationId":"news_hn-top","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Hacker News feed items; total = null (HN feeds report no true count); meta.kind echoes the requested feed.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","nullable":true},"by":{"type":"string","nullable":true},"time":{"type":"integer","nullable":true},"timeIso":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"text":{"type":"string","nullable":true},"score":{"type":"integer","nullable":true},"descendantsCount":{"type":"integer","nullable":true},"kidsCount":{"type":"integer"},"parent":{"type":"integer","nullable":true},"deleted":{"type":"boolean"},"dead":{"type":"boolean"},"hnUrl":{"type":"string","format":"uri"}},"required":["id","type","by","time","timeIso","title","url","text","score","descendantsCount","kidsCount","parent","deleted","dead","hnUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"kind":{"type":"string"}},"required":["kind"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"news.hn-top","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"kind","in":"query","required":false,"description":"Kind.","schema":{"type":"string","enum":["top","new","best","ask","show","job"],"default":"top"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/news/hn-user":{"get":{"tags":["news"],"summary":"Hacker News user profile by username.","description":"Hacker News user profile by username. Returns id, account creation time (unix + ISO), karma, the about/bio text, number of items submitted, and the canonical news.ycombinator.com profile URL. Unknown user returns an empty result.","operationId":"news_hn-user","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [HN user] or [] when unknown.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"createdIso":{"type":"string","nullable":true},"karma":{"type":"number","nullable":true},"about":{"type":"string","nullable":true},"submittedCount":{"type":"number","nullable":true},"hnUrl":{"type":"string","nullable":true}},"required":["id","created","createdIso","karma","about","submittedCount","hnUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"news.hn-user","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"username","in":"query","required":true,"description":"HN username, e.g. pg, dang.","schema":{"type":"string","minLength":1,"maxLength":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/news/search":{"get":{"tags":["news"],"summary":"Live news search. Returns recent headlines with title, URL...","description":"Live news search. Returns recent headlines with title, URL, snippet, publisher source, relative age, and a breaking-news flag — real-time coverage past any model training cutoff. Supports count (1-20), offset, country (2-letter), and freshness (pd=past day, pw=past week, pm=past month, py=past year). Use for current events, market-moving developments, monitoring, and \"what happened with X\" questions. For general web results see /api/search/web; for Hacker News specifically see /api/news/hn-top.","operationId":"news_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = recent news headlines (publisher, age, breaking flag); total = null (Brave reports no count); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"description":"Publisher hostname."},"age":{"type":"string","nullable":true,"description":"Relative recency, e.g. \"5 hours ago\"."},"breaking":{"type":"boolean"},"thumbnail":{"type":"string","nullable":true}},"required":["title","url","description","source","age","breaking","thumbnail"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"news.search","x-2s-version":null,"x-2s-price":{"usd":0.009},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.009000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"News query.","schema":{"type":"string","minLength":1,"maxLength":400}},{"name":"count","in":"query","required":false,"description":"Count.","schema":{"type":"integer","minimum":1,"maximum":20,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":9,"default":0}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^[a-zA-Z]{2}$"}},{"name":"freshness","in":"query","required":false,"description":"Freshness.","schema":{"type":"string","enum":["pd","pw","pm","py"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/nonprofit/screen":{"get":{"tags":["nonprofit"],"summary":"Look up US 501(c) nonprofits and screen each result against...","description":"Look up US 501(c) nonprofits and screen each result against the OFAC sanctions list in one call. Pass q (organization name) or ein; each matched organization returns its registry record (EIN, name, location, NTEE code, subsection) plus a sanctions block — flagged status, match count, and the matching SDN entries with confidence scores. Grant-making due diligence, donation compliance, and charity-fraud triage. Components also standalone: /api/nonprofit/search (registry only) and /api/law/sanctions-check (screen any name). Same composition family as /api/business/entity-screen.","operationId":"nonprofit_screen","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Nonprofits with a per-org OFAC sanctions block (flagged, matches, confidence).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"string"},"count":{"type":"number"},"organizations":{"type":"array","items":{"type":"object","properties":{"org":{"type":"object","additionalProperties":{},"description":"Nonprofit registry record (EIN, name, location, NTEE)."},"sanctions":{"type":"object","properties":{"found":{"type":"boolean","description":"True when the screen ran successfully."},"error":{"type":"string","nullable":true},"flagged":{"type":"boolean","description":"True when a high-confidence OFAC match exists."},"matchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","flagged","matchCount","matches"],"additionalProperties":false}},"required":["org","sanctions"],"additionalProperties":false}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["query","count","organizations","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"nonprofit.screen","x-2s-version":null,"x-2s-price":{"usd":0.00504},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005040"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Organization name. Provide q or ein, not both.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"ein","in":"query","required":false,"description":"EIN.","schema":{"type":"string","pattern":"^\\d{9}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/nonprofit/search":{"get":{"tags":["nonprofit"],"summary":"US 501(c) nonprofit organization search.","description":"US 501(c) nonprofit organization search. Lookup by 9-digit EIN (with or without hyphen), free-text name, 2-letter state, NTEE category code (e.g. 'B99' for education), or IRS subsection code (3 = 501(c)(3), 4 = 501(c)(4), etc.). Each record includes EIN, name, city/state, NTEE code, subsection code + human-readable subsection description (e.g. '501(c)(3) Charitable / Religious / Educational'), and relevance score. Sourced from ProPublica Nonprofit Explorer, which aggregates IRS Form 990 + BMF data; underlying IRS data is public domain.","operationId":"nonprofit_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching nonprofit organizations; total = upstream match count; page = 0-indexed pagination (100/page); meta.query echoes the search.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ein":{"type":"string"},"einFormatted":{"type":"string"},"name":{"type":"string"},"subName":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"nteeCode":{"type":"string","nullable":true},"subsectionCode":{"type":"integer","nullable":true},"subsectionDesc":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["ein","einFormatted","name","subName","city","state","nteeCode","subsectionCode","subsectionDesc","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"q":{"type":"string","nullable":true},"ein":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"nteeCode":{"type":"string","nullable":true},"subsectionCode":{"type":"integer","nullable":true},"page":{"type":"integer"}},"required":["q","ein","state","nteeCode","subsectionCode","page"],"additionalProperties":false},"returned":{"type":"integer"}},"required":["query","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"nonprofit.search","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"ein","in":"query","required":false,"description":"EIN.","schema":{"type":"string","minLength":9,"maxLength":11,"pattern":"^\\d{2}-?\\d{7}$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"nteeCode","in":"query","required":false,"description":"Ntee code.","schema":{"type":"string","pattern":"^[A-Za-z][0-9]{1,3}$"}},{"name":"subsectionCode","in":"query","required":false,"description":"Subsection code.","schema":{"type":"integer","minimum":2,"maximum":92}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":0,"maximum":99,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/nutrition/food":{"get":{"tags":["nutrition"],"summary":"USDA FoodData Central nutrition lookup.","description":"USDA FoodData Central nutrition lookup. Two modes: search (query=cheddar cheese) returns matching foods with fdcId, description, data type, category, and brand; detail (fdcId=328637) returns the full analyzed nutrient profile — energy, protein, fats, carbohydrates, vitamins, minerals — with USDA nutrient numbers, amounts, and units (per 100 g/ml unless serving fields indicate otherwise), plus ingredients for branded foods. Filter search by dataType: Foundation and SR Legacy are lab-analyzed generic foods, Branded is the packaged-food label corpus, Survey (FNDDS) is as-consumed dishes. Authoritative USDA data covering ~400k foods — use real analyzed values instead of model-estimated nutrition facts.","operationId":"nutrition_food","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = food search hits (meta.mode=\"search\", total = totalHits) OR one food’s full nutrient profile (meta.mode=\"detail\", total = 1) from USDA FoodData Central.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"fdcId":{"type":"number"},"description":{"type":"string"},"dataType":{"type":"string"},"foodCategory":{"type":"string","nullable":true},"brandOwner":{"type":"string","nullable":true},"brandName":{"type":"string","nullable":true},"servingSize":{"type":"number","nullable":true},"servingSizeUnit":{"type":"string","nullable":true},"publishedDate":{"type":"string","nullable":true}},"required":["fdcId","description","dataType","foodCategory","brandOwner","brandName","servingSize","servingSizeUnit","publishedDate"],"additionalProperties":false,"description":"Search-mode hit (meta.mode = \"search\")."},{"type":"object","properties":{"fdcId":{"type":"number"},"description":{"type":"string"},"dataType":{"type":"string"},"foodCategory":{"type":"string","nullable":true},"brandOwner":{"type":"string","nullable":true},"ingredients":{"type":"string","nullable":true},"servingSize":{"type":"number","nullable":true},"servingSizeUnit":{"type":"string","nullable":true},"publicationDate":{"type":"string","nullable":true},"nutrients":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string","description":"USDA nutrient number, e.g. \"208\" = Energy (kcal)."},"name":{"type":"string"},"amount":{"type":"number"},"unitName":{"type":"string"}},"required":["number","name","amount","unitName"],"additionalProperties":false}}},"required":["fdcId","description","dataType","foodCategory","brandOwner","ingredients","servingSize","servingSizeUnit","publicationDate","nutrients"],"additionalProperties":false,"description":"Detail-mode full nutrient profile (meta.mode = \"detail\"). Values per 100 g/ml unless serving fields indicate otherwise."}]}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string","enum":["search","detail"]}},"required":["mode"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"nutrition.food","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":false,"description":"Food name to search, e.g. \"cheddar cheese\". Provide query or fdcId, not both.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"fdcId","in":"query","required":false,"description":"FDC food id — returns the full nutrient profile.","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"name":"dataType","in":"query","required":false,"description":"Restrict search to one data type. Foundation/SR Legacy = analyzed generic foods, Branded = packaged labels, Survey (FNDDS) = as-consumed dishes.","schema":{"type":"string","enum":["Foundation","SR Legacy","Survey (FNDDS)","Branded"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/occupation/profile":{"get":{"tags":["occupation"],"summary":"Full occupation dossier from O*NET (US DOL) by SOC /...","description":"Full occupation dossier from O*NET (US DOL) by SOC / O*NET-SOC code (e.g. 15-1252 or 15-1252.00). Returns title, description, bright-outlook flag, sample reported job titles, and the top skills, knowledge areas, abilities, work tasks, and technology skills/tools. CC-BY (O*NET attribution in source). The canonical occupation reference an agent needs for résumé/JD reasoning, career mapping, and skills analysis — pair the code with labor.wages for pay.","operationId":"occupation_profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one occupation dossier]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"brightOutlook":{"type":"boolean"},"sampleJobTitles":{"type":"array","items":{"type":"string"}},"skills":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["name","description"],"additionalProperties":false}},"knowledge":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["name","description"],"additionalProperties":false}},"abilities":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["name","description"],"additionalProperties":false}},"tasks":{"type":"array","items":{"type":"string"}},"technologySkills":{"type":"array","items":{"type":"string"}}},"required":["code","title","description","brightOutlook","sampleJobTitles","skills","knowledge","abilities","tasks","technologySkills"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"occupation.profile","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":true,"description":"Code to look up.","schema":{"type":"string","minLength":6,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/occupation/related":{"get":{"tags":["occupation"],"summary":"Occupations related to a given O*NET occupation...","description":"Occupations related to a given O*NET occupation (career-adjacent roles), by SOC / O*NET-SOC code. Returns ranked related occupations with code + title. CC-BY (O*NET). For career-pathing, \"adjacent roles\", and transferable-skills reasoning.","operationId":"occupation_related","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked related occupations; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string","nullable":true}},"required":["code","title"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"occupation.related","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":true,"description":"Code to look up.","schema":{"type":"string","minLength":6,"maxLength":12}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/occupation/search":{"get":{"tags":["occupation"],"summary":"Find O*NET occupations by keyword (job title, skill, or...","description":"Find O*NET occupations by keyword (job title, skill, or activity). Returns ranked occupations with their SOC / O*NET-SOC code and title. CC-BY (O*NET). The \"what is the occupation code for this job/skill\" primitive — every other occupation.* and labor.wages call composes on the returned code.","operationId":"occupation_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked matching occupations; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string","nullable":true}},"required":["code","title"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"occupation.search","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"keyword","in":"query","required":true,"description":"Keyword.","schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/paper/doi-lookup":{"get":{"tags":["paper"],"summary":"Resolve a DOI to authoritative bibliographic metadata via...","description":"Resolve a DOI to authoritative bibliographic metadata via Crossref. Accepts bare DOI (10.1038/nature12373) or full DOI URL (https://doi.org/10.1038/nature12373). Returns work type, title, container (journal/conference), publisher, issued/published dates, abstract, authors (with ORCID + affiliations), page range, volume/issue, ISBN + ISSN lists, canonical URL, reference + citation counts, license blocks, and subject classifications. ~160M works in Crossref. Best authoritative DOI → bibliographic resolver. Metadata is CC0.","operationId":"paper_doi-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [Crossref bibliographic record] for the DOI; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"doi":{"type":"string"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"containerTitle":{"type":"string","nullable":true},"publisher":{"type":"string","nullable":true},"issued":{"type":"string","nullable":true},"publishedPrint":{"type":"string","nullable":true},"publishedOnline":{"type":"string","nullable":true},"abstract":{"type":"string","nullable":true},"authors":{"type":"array","items":{"type":"object","properties":{"given":{"type":"string","nullable":true},"family":{"type":"string","nullable":true},"orcid":{"type":"string","nullable":true},"affiliation":{"type":"array","items":{"type":"string"}}},"required":["given","family","orcid","affiliation"],"additionalProperties":false}},"pageRange":{"type":"string","nullable":true},"volume":{"type":"string","nullable":true},"issue":{"type":"string","nullable":true},"isbn":{"type":"array","items":{"type":"string"}},"issn":{"type":"array","items":{"type":"string"}},"url":{"type":"string","nullable":true},"referenceCount":{"type":"integer","nullable":true},"isReferencedByCount":{"type":"integer","nullable":true},"license":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"contentVersion":{"type":"string","nullable":true}},"required":["url","contentVersion"],"additionalProperties":false}},"subjects":{"type":"array","items":{"type":"string"}}},"required":["doi","type","title","containerTitle","publisher","issued","publishedPrint","publishedOnline","abstract","authors","pageRange","volume","issue","isbn","issn","url","referenceCount","isReferencedByCount","license","subjects"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"paper.doi-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"doi","in":"query","required":true,"description":"DOI.","schema":{"type":"string","minLength":7,"maxLength":300}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/papers/search":{"get":{"tags":["papers"],"summary":"Unified scientific literature search across arXiv...","description":"Unified scientific literature search across arXiv (preprints), PubMed (biomedical), and Semantic Scholar (cross-field, with citation counts). Returns a flat array of papers with stable schema: source, sourceId, doi, title, authors, abstract, year, publishedAt, citationCount, url, pdfUrl. Partial failures surface in the errors array rather than failing the whole call. Optional filters: since (YYYY-MM-DD), sources (subset), limit (max 20 per source).","operationId":"papers_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = papers (flat array across arXiv + PubMed + Semantic Scholar; source, sourceId, doi, title, authors, abstract, year, citationCount, url, pdfUrl); total = count returned across sources; meta.errors = degraded sources; meta.sources/attribution describe per-source coverage.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string","description":"Echo of the free-text query."},"sources":{"type":"array","items":{"type":"string"},"description":"Sources actually queried (after filtering)."},"errors":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"message":{"type":"string"}},"required":["source","message"],"additionalProperties":false},"description":"Per-source failures; empty when all sources succeeded."},"attribution":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"license":{"type":"string"},"url":{"type":"string"}},"required":["source","license","url"],"additionalProperties":false},"description":"Per-source license + terms."}},"required":["query","sources","errors","attribution"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"papers.search","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":500}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":10}},{"name":"since","in":"query","required":false,"description":"Since.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"sources","in":"query","required":false,"description":"Sources.","schema":{"type":"string"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/park/lookup":{"get":{"tags":["park"],"summary":"Unified read API over US National Park Service...","description":"Unified read API over US National Park Service developer.nps.gov. Pick a resource: parks (every NPS unit — historical parks, monuments, seashores, etc.), alerts (closures, dangers, info), campgrounds (NPS-operated campgrounds with reservation links), events (talks, walks, ranger programs), newsreleases (park news), thingstodo (activities by park), visitorcenters. Filter by parkCode (CSV — e.g. \"acad,yose,grca\"), state, or free-text query. Returns the upstream NPS payload verbatim (rich nested objects with images, addresses, operating hours, etc.).","operationId":"park_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched NPS records for the requested resource; total = upstream total available; meta echoes resource + pagination (limit, start).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"resource":{"type":"string","enum":["parks","alerts","campgrounds","events","newsreleases","thingstodo","visitorcenters"]},"limit":{"type":"number"},"start":{"type":"number"}},"required":["resource","limit","start"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"park.lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"resource","in":"query","required":true,"description":"Resource.","schema":{"type":"string","enum":["parks","alerts","campgrounds","events","newsreleases","thingstodo","visitorcenters"]}},{"name":"parkCode","in":"query","required":false,"description":"Park code.","schema":{"type":"string","pattern":"^[a-z]{2,4}(,[a-z]{2,4})*$"}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"start","in":"query","required":false,"description":"Start.","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/detail":{"get":{"tags":["patents"],"summary":"Full US patent application file-wrapper detail by...","description":"Full US patent application file-wrapper detail by application number. Returns bibliographic data (title, inventors, applicants, dates, status, examiner, art unit, docket #, confirmation #) plus the file-wrapper event timeline (filing, IDS, Office Actions, allowance, abandonment, …), continuity chain (parent / continuation / divisional / national stage), recorded assignments (assignor → assignee with reel/frame + conveyance text), and foreign priority claims under 35 USC § 119. Application number is the 6-10 digit USPTO ID (e.g. 18566276).","operationId":"patents_detail","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the one patent application file-wrapper record] (bibliography, status timeline, continuity, assignments, foreign priority); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.detail","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"applicationNumber","in":"query","required":true,"description":"Application number.","schema":{"type":"string","pattern":"^[0-9]{6,10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/documents":{"get":{"tags":["patents"],"summary":"List every document in the file wrapper for a US patent...","description":"List every document in the file wrapper for a US patent application. Returns each document with its USPTO code (e.g. CTNF non-final OA, CTFR final OA, IDS, WCLM claims worksheet, NOA notice of allowance), human-readable description, official date, direction (INTERNAL/INCOMING/OUTGOING), and available formats with page counts. Includes patentCenterUrl pointing at the public USPTO Patent Center documents page for direct PDF download. Application number is the 6-10 digit USPTO ID.","operationId":"patents_documents","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = file-wrapper documents (code, description, date, direction, formats); total = upstream document count; meta.applicationNumber + meta.patentCenterUrl identify the application.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"applicationNumber":{"type":"string"},"patentCenterUrl":{"type":"string","description":"Public USPTO Patent Center documents page for direct PDF download."}},"required":["applicationNumber","patentCenterUrl"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.documents","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"applicationNumber","in":"query","required":true,"description":"Application number.","schema":{"type":"string","pattern":"^[0-9]{6,10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/epo-biblio":{"get":{"tags":["patents"],"summary":"Bibliographic record for a patent publication via EPO OPS...","description":"Bibliographic record for a patent publication via EPO OPS: invention titles (multiple languages), applicants, inventors, IPC classifications, application number, and the abstract. Worldwide coverage by publication number (e.g. EP1000000, US6093011). Net-new vs US-only patents.detail.","operationId":"patents_epo-biblio","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [bibliographic record].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"publicationNumber":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"applicationNumber":{"type":"string","nullable":true},"titles":{"type":"array","items":{"type":"object","properties":{"lang":{"type":"string","nullable":true},"text":{"type":"string","nullable":true}},"required":["lang","text"],"additionalProperties":false}},"applicants":{"type":"array","items":{"type":"string"}},"inventors":{"type":"array","items":{"type":"string"}},"ipcClasses":{"type":"array","items":{"type":"string"}},"abstract":{"type":"string","nullable":true}},"required":["publicationNumber","country","kind","applicationNumber","titles","applicants","inventors","ipcClasses","abstract"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.epo-biblio","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"number","in":"query","required":true,"description":"Publication number, e.g. EP1000000 or US6093011.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"format","in":"query","required":false,"description":"Number format (default epodoc, e.g. EP1000000 or US20260170385).","schema":{"type":"string","enum":["epodoc","docdb","original"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/epo-family":{"get":{"tags":["patents"],"summary":"INPADOC patent family for a publication via EPO OPS - every...","description":"INPADOC patent family for a publication via EPO OPS — every worldwide equivalent of the same invention (same priority), each with country, document number, kind code, and combined publication number. Use it to find where a patent was also filed/granted globally. Net-new (no US-only equivalent).","operationId":"patents_epo-family","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = family members (worldwide equivalents).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"publicationNumber":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"docNumber":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true}},"required":["publicationNumber","country","docNumber","kind"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.epo-family","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"number","in":"query","required":true,"description":"Publication number, e.g. EP1000000.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"format","in":"query","required":false,"description":"Number format (default epodoc, e.g. EP1000000 or US20260170385).","schema":{"type":"string","enum":["epodoc","docdb","original"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/epo-legal":{"get":{"tags":["patents"],"summary":"INPADOC legal-status events for a patent publication via...","description":"INPADOC legal-status events for a patent publication via EPO OPS: the timeline of procedural events (examination, grant, designations, national-phase entries, lapses, withdrawals) each with an event code, description, and date. For tracking whether a patent is in force, granted, or lapsed. Net-new.","operationId":"patents_epo-legal","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = legal-status events (chronological).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"date":{"type":"string","nullable":true}},"required":["code","description","date"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.epo-legal","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"number","in":"query","required":true,"description":"Publication number, e.g. EP1000000.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"format","in":"query","required":false,"description":"Number format (default epodoc, e.g. EP1000000 or US20260170385).","schema":{"type":"string","enum":["epodoc","docdb","original"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/epo-search":{"get":{"tags":["patents"],"summary":"Search worldwide patent publications via the European...","description":"Search worldwide patent publications via the European Patent Office's Open Patent Services (OPS). Pass a CQL query (e.g. ti=quantum computing, in=tesla, pa=siemens, cpc=H01M, pn=EP1000000) and get matching publications with country, document number, kind code, and a combined publication number, plus the total result count. Covers EP + 100+ patent authorities worldwide — net-new vs our US-only patents.search.","operationId":"patents_epo-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = publications; meta.total = upstream total result count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"publicationNumber":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"docNumber":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true}},"required":["publicationNumber","country","docNumber","kind"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total":{"type":"number"}},"required":["total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.epo-search","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"CQL query, e.g. \"ti=quantum computing\" or \"pa=siemens and cpc=H01M\".","schema":{"type":"string","minLength":2,"maxLength":400}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/patents/search":{"get":{"tags":["patents"],"summary":"Search US patent applications and grants via the USPTO Open...","description":"Search US patent applications and grants via the USPTO Open Data Portal. Query: q (required, 2+ chars), yearFrom / yearTo (optional filing-year bounds), applicationType (optional: Utility|Design|Plant|Reissue), limit (1-100, default 10), offset (0-based, default 0). Returns { total, returned, offset, limit, hits[{ applicationNumber, title, applicationType, firstInventor, inventors[], applicants[], filingDate, effectiveFilingDate, status:{ code, description, updatedAt }, cpcSymbols[], uspcSymbol, url }] }. URLs link to USPTO Patent Center for the public file wrapper.","operationId":"patents_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched patent applications/grants; total = upstream total hit count; meta echoes the query + returned (this page).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"q":{"type":"string"},"yearFrom":{"type":"integer","nullable":true},"yearTo":{"type":"integer","nullable":true},"applicationType":{"type":"string","nullable":true},"offset":{"type":"integer"},"limit":{"type":"integer"}},"required":["q","yearFrom","yearTo","applicationType","offset","limit"],"additionalProperties":false},"returned":{"type":"integer","description":"Hits returned on this page."}},"required":["query","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"patents.search","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":500}},{"name":"yearFrom","in":"query","required":false,"description":"Year from.","schema":{"type":"integer","minimum":1790,"maximum":2100}},{"name":"yearTo","in":"query","required":false,"description":"Year to.","schema":{"type":"integer","minimum":1790,"maximum":2100}},{"name":"applicationType","in":"query","required":false,"description":"Application type.","schema":{"type":"string","enum":["Utility","Design","Plant","Reissue"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/person/cross-registry":{"get":{"tags":["person"],"summary":"Sweep a person's name across five US public registries in...","description":"Sweep a person's name across five US public registries in one call: FINRA securities brokers, federal-court attorneys (CourtListener), federal inmates (BOP), Texas trade licenses (TDLR), and Texas real-estate licenses (TREC). Returns one block per registry with found/error status, match count, and the matching records — name-matched CANDIDATES, deliberately not merged into one identity (same name does not mean same person; verify with each registry's identifier before acting). Due-diligence, KYC screening triage, and background-research staple. Each registry is also a standalone endpoint (/api/license/broker, /api/law/attorney-lookup, /api/gov/inmate-locator, /api/license/trades, /api/license/real-estate) for follow-up by identifier.","operationId":"person_cross-registry","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Per-registry candidate blocks (found/error/count/matches) for one person name across 5 registries.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"name":{"type":"string"},"note":{"type":"string","description":"Identity-resolution disclaimer — matches are candidates, not confirmed identities."},"brokers":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","matches"],"additionalProperties":false},"attorneys":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","matches"],"additionalProperties":false},"inmates":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","matches"],"additionalProperties":false},"txTrades":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","matches"],"additionalProperties":false},"txRealEstate":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number"},"matches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","matches"],"additionalProperties":false},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["name","note","brokers","attorneys","inmates","txTrades","txRealEstate","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"person.cross-registry","x-2s-version":null,"x-2s-price":{"usd":0.0072},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.007200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Person full name. \"First Last\" works best (the inmate registry needs split names).","schema":{"type":"string","minLength":3,"maxLength":120,"pattern":"^[\\p{L}][\\p{L} .,'-]+$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/phone/normalize":{"get":{"tags":["phone"],"summary":"Parse, validate and canonicalize a phone number using...","description":"Parse, validate and canonicalize a phone number using Google's libphonenumber metadata. Query: number (required; E.164 like \"+14155552671\" or national like \"(415) 555-2671\"), country (optional ISO 3166-1 alpha-2 like US/GB/JP — required when number is not E.164). Returns {input, valid (matches a real number range), possible (right shape/length), e164, national, international, rfc3966, country, countryCallingCode, type (mobile|fixed_line|fixed_line_or_mobile|toll_free|premium_rate|shared_cost|voip|personal_number|pager|uan|voicemail|unknown), possibleCountries[]}. Returns valid:false (not an error) for unparseable input.","operationId":"phone_normalize","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [parsed phone number] (valid/possible flags, e164/national/international/rfc3966, country, type); total = 1. Returns valid:false (not a 4xx) for unparseable input.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string","description":"The exact input string we received."},"valid":{"type":"boolean","description":"True if the number matches a real, in-use number range for its country."},"possible":{"type":"boolean","description":"True if the number is the right length/shape, even if not necessarily assigned."},"e164":{"type":"string","nullable":true,"description":"E.164 canonical form (e.g. +14155552671). Null if unparseable."},"national":{"type":"string","nullable":true,"description":"Country-local format (e.g. \"(415) 555-2671\"). Null if unparseable."},"international":{"type":"string","nullable":true,"description":"Pretty international format (e.g. \"+1 415 555 2671\"). Null if unparseable."},"rfc3966":{"type":"string","nullable":true,"description":"RFC 3966 tel: URI form (e.g. \"tel:+14155552671\"). Null if unparseable."},"country":{"type":"string","nullable":true,"description":"ISO 3166-1 alpha-2 country code, or null when ambiguous across +cc."},"countryCallingCode":{"type":"string","nullable":true,"description":"Country calling code with leading + (e.g. \"+1\"). Null if unparseable."},"type":{"type":"string","enum":["fixed_line","mobile","fixed_line_or_mobile","toll_free","premium_rate","shared_cost","voip","personal_number","pager","uan","voicemail","unknown"],"description":"Number type. \"unknown\" when libphonenumber cannot classify."},"possibleCountries":{"type":"array","items":{"type":"string"},"description":"All ISO 3166-1 alpha-2 codes this number could belong to."}},"required":["input","valid","possible","e164","national","international","rfc3966","country","countryCallingCode","type","possibleCountries"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"phone.normalize","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"number","in":"query","required":true,"description":"Phone number to normalize. E.164 (+15555551234) or a national format if country is provided.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 country code (e.g. US, GB, JP). Required when number is not in E.164 form.","schema":{"type":"string","pattern":"^[A-Z]{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/poi/near":{"get":{"tags":["poi"],"summary":"Find points of interest near a coordinate.","description":"Find points of interest near a coordinate. Backed by OpenStreetMap via the Overpass API (free, public, ODbL). Returns name, OSM id (e.g. node/123 — deep-linkable to openstreetmap.org), latitude, longitude, distance in meters, composed street address (when present), phone, website, opening hours, brand, and cuisine tags. Results sorted nearest-first. Supported categories: restaurant, cafe, bar, fast_food, gas_station, ev_charging, parking, atm, bank, hospital, pharmacy, clinic, doctor, dentist, police, fire_station, post_office, library, toilets, school, university, supermarket, convenience, hotel, hostel, museum, attraction, park, playground. Query: lat (-90..90), lon (-180..180), category (one of the supported names), radius_m (1-10000, default 1000), limit (1-100, default 20).","operationId":"poi_near","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = POIs near the coordinate (name, OSM id, lat/lon, distanceM, address, phone, website, openingHours, brand, cuisine, url), sorted nearest-first; total = null (query-bounded set); meta.query echoes the request, meta.nearestM is the closest distance.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"category":{"type":"string"},"radiusM":{"type":"integer"},"limit":{"type":"integer"}},"required":["latitude","longitude","category","radiusM","limit"],"additionalProperties":false},"nearestM":{"type":"number","nullable":true}},"required":["query","nearestM"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"poi.near","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"category","in":"query","required":true,"description":"Filter results by category.","schema":{"type":"string","enum":["restaurant","cafe","bar","fast_food","gas_station","ev_charging","parking","atm","bank","hospital","pharmacy","clinic","doctor","dentist","police","fire_station","post_office","library","toilets","school","university","supermarket","convenience","hotel","hostel","museum","attraction","park","playground"]}},{"name":"radius_m","in":"query","required":false,"description":"Radius m.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1000}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/activity":{"get":{"tags":["predict"],"summary":"A wallet's Polymarket on-chain activity feed: trades...","description":"A wallet's Polymarket on-chain activity feed: trades, merges, splits, redeems, conversions and rewards, newest first. Pass the wallet (proxy) address; optionally filter by type (TRADE/MERGE/SPLIT/REDEEM/REWARD/CONVERSION) and cap with limit. Each entry returns type, side, outcome, share size, price, USD value, timestamp, the market title/slug, conditionId, and tx hash. Read-only from Polymarket's Data API.","operationId":"predict_activity","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = activity events, newest first.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","nullable":true},"side":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"price":{"type":"number","nullable":true},"usd":{"type":"number","nullable":true},"timestamp":{"type":"number","nullable":true},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"eventSlug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"txHash":{"type":"string","nullable":true}},"required":["type","side","outcome","size","price","usd","timestamp","title","slug","eventSlug","conditionId","txHash"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"address":{"type":"string"},"count":{"type":"integer"}},"required":["address","count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.activity","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet (proxy) address.","schema":{"type":"string","minLength":8,"maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Max events (default 50).","schema":{"type":"integer","minimum":1,"maximum":500}},{"name":"type","in":"query","required":false,"description":"Filter by activity type.","schema":{"type":"string","enum":["TRADE","MERGE","SPLIT","REDEEM","REWARD","CONVERSION"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/crypto-updown":{"get":{"tags":["predict"],"summary":"Polymarket crypto up-or-down markets - the recurring 'Will...","description":"Polymarket crypto up-or-down markets — the recurring 'Will <asset> be up or down by <time>?' series for BTC, ETH, SOL, SPX and more (hourly/daily). Each event returns its question, dates, USD volume, and the nested Up/Down markets with live outcome prices (implied probability the asset closes higher). Filter count with limit. Read-only mirror of Polymarket's up-or-down tag.","operationId":"predict_crypto-updown","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = Polymarket crypto up/down events.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"volumeUsd":{"type":"number","nullable":true},"volume24hrUsd":{"type":"number","nullable":true},"liquidityUsd":{"type":"number","nullable":true},"active":{"type":"boolean","nullable":true},"closed":{"type":"boolean","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"marketCount":{"type":"number","nullable":true},"markets":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"string"}},"outcomePrices":{"type":"array","items":{"type":"number"}},"clobTokenIds":{"type":"array","items":{"type":"string"}},"volumeUsd":{"type":"number","nullable":true},"closed":{"type":"boolean","nullable":true}},"required":["question","slug","conditionId","outcomes","outcomePrices","clobTokenIds","volumeUsd","closed"],"additionalProperties":false}},"url":{"type":"string","nullable":true}},"required":["id","ticker","title","slug","description","volumeUsd","volume24hrUsd","liquidityUsd","active","closed","startDate","endDate","tags","marketCount","markets","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer"}},"required":["count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.crypto-updown","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Max events (default 20).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/events":{"get":{"tags":["predict"],"summary":"Browse Polymarket events (an event groups related markets...","description":"Browse Polymarket events (an event groups related markets — e.g. an election, a tournament, a price ladder). Optional keyword q, closed filter, order (volume/volume24hr/liquidity), and limit/offset. Each event returns its title, tags, USD volume + 24h volume, liquidity, dates, and the nested markets with their outcomes + live outcome prices (implied probabilities) and CLOB token ids. Read-only mirror of Polymarket's Gamma events.","operationId":"predict_events","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = Polymarket events with nested markets.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"volumeUsd":{"type":"number","nullable":true},"volume24hrUsd":{"type":"number","nullable":true},"liquidityUsd":{"type":"number","nullable":true},"active":{"type":"boolean","nullable":true},"closed":{"type":"boolean","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"marketCount":{"type":"number","nullable":true},"markets":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"string"}},"outcomePrices":{"type":"array","items":{"type":"number"}},"clobTokenIds":{"type":"array","items":{"type":"string"}},"volumeUsd":{"type":"number","nullable":true},"closed":{"type":"boolean","nullable":true}},"required":["question","slug","conditionId","outcomes","outcomePrices","clobTokenIds","volumeUsd","closed"],"additionalProperties":false}},"url":{"type":"string","nullable":true}},"required":["id","ticker","title","slug","description","volumeUsd","volume24hrUsd","liquidityUsd","active","closed","startDate","endDate","tags","marketCount","markets","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer"}},"required":["count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.events","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Keyword filter on event title/description.","schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0}},{"name":"closed","in":"query","required":false,"description":"Closed.","schema":{"type":"boolean"}},{"name":"order","in":"query","required":false,"description":"Sort direction: asc or desc.","schema":{"type":"string","enum":["volume","volume24hr","liquidity","startDate","endDate"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/holders":{"get":{"tags":["predict"],"summary":"Top holders of a Polymarket market, grouped by outcome...","description":"Top holders of a Polymarket market, grouped by outcome token (conditionId). Each holder: wallet, trader name, position size, outcome index, and verified flag. Reveals concentration and smart-money positioning per outcome — the holder-side complement to predict.trades (flow) and predict.whales (large trades). Read-only from Polymarket's Data API.","operationId":"predict_holders","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = one group per outcome token, each with ranked holders.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"token":{"nullable":true},"holders":{"type":"array","items":{"type":"object","properties":{"wallet":{"nullable":true},"name":{"nullable":true},"amount":{"type":"number","nullable":true},"outcomeIndex":{"type":"number","nullable":true},"verified":{"type":"boolean"},"bio":{"type":"string","nullable":true}},"required":["amount","outcomeIndex","verified","bio"],"additionalProperties":false}}},"required":["holders"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.holders","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"market","in":"query","required":true,"description":"Market conditionId (0x…) — from predict.markets / predict.market.","schema":{"type":"string","minLength":8,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Top holders per outcome (default 20).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/kalshi-events":{"get":{"tags":["predict"],"summary":"Browse Kalshi events (an event groups related markets, e.g.","description":"Browse Kalshi events (an event groups related markets, e.g. an election or a game). Filter by status / series_ticker; page with limit + cursor. Returns event ticker, series, title, category, and market count. Read-only (no Kalshi key needed).","operationId":"predict_kalshi-events","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = Kalshi events; meta.cursor = next page.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"eventTicker":{"nullable":true},"seriesTicker":{"nullable":true},"title":{"nullable":true},"subTitle":{"nullable":true},"category":{"nullable":true},"marketCount":{"type":"number","nullable":true}},"required":["marketCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.kalshi-events","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque pagination cursor returned by a previous response.","schema":{"type":"string","maxLength":400}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["unopened","open","closed","settled"]}},{"name":"seriesTicker","in":"query","required":false,"description":"Series ticker.","schema":{"type":"string","maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/kalshi-market":{"get":{"tags":["predict"],"summary":"A single Kalshi market by ticker.","description":"A single Kalshi market by ticker. Returns yes/no bid+ask and last price (dollars, implied probability), volume, liquidity, open interest, open/close times, and settled result. Read-only (no Kalshi key needed).","operationId":"predict_kalshi-market","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [Kalshi market].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string","nullable":true},"eventTicker":{"type":"string","nullable":true},"marketType":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"yesSubTitle":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"yesBid":{"type":"number","nullable":true},"yesAsk":{"type":"number","nullable":true},"noBid":{"type":"number","nullable":true},"noAsk":{"type":"number","nullable":true},"lastPrice":{"type":"number","nullable":true},"volume":{"type":"number","nullable":true},"volume24h":{"type":"number","nullable":true},"liquidity":{"type":"number","nullable":true},"openInterest":{"type":"number","nullable":true},"openTime":{"type":"string","nullable":true},"closeTime":{"type":"string","nullable":true},"result":{"type":"string","nullable":true}},"required":["ticker","eventTicker","marketType","title","yesSubTitle","status","yesBid","yesAsk","noBid","noAsk","lastPrice","volume","volume24h","liquidity","openInterest","openTime","closeTime","result"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.kalshi-market","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"Ticker.","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/kalshi-markets":{"get":{"tags":["predict"],"summary":"Browse Kalshi regulated prediction markets.","description":"Browse Kalshi regulated prediction markets. Filter by status (open/closed/settled), event_ticker, series_ticker, or specific tickers; page with limit + cursor. Each market returns yes/no bid+ask and last price (in dollars, 0-1 = implied probability), 24h + total volume, liquidity, open interest, open/close times, and result if settled. Read-only mirror of Kalshi's market list (no Kalshi key needed).","operationId":"predict_kalshi-markets","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = Kalshi markets; meta.cursor = next page.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string","nullable":true},"eventTicker":{"type":"string","nullable":true},"marketType":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"yesSubTitle":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"yesBid":{"type":"number","nullable":true},"yesAsk":{"type":"number","nullable":true},"noBid":{"type":"number","nullable":true},"noAsk":{"type":"number","nullable":true},"lastPrice":{"type":"number","nullable":true},"volume":{"type":"number","nullable":true},"volume24h":{"type":"number","nullable":true},"liquidity":{"type":"number","nullable":true},"openInterest":{"type":"number","nullable":true},"openTime":{"type":"string","nullable":true},"closeTime":{"type":"string","nullable":true},"result":{"type":"string","nullable":true}},"required":["ticker","eventTicker","marketType","title","yesSubTitle","status","yesBid","yesAsk","noBid","noAsk","lastPrice","volume","volume24h","liquidity","openInterest","openTime","closeTime","result"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.kalshi-markets","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque pagination cursor returned by a previous response.","schema":{"type":"string","maxLength":400}},{"name":"eventTicker","in":"query","required":false,"description":"Event ticker.","schema":{"type":"string","maxLength":120}},{"name":"seriesTicker","in":"query","required":false,"description":"Series ticker.","schema":{"type":"string","maxLength":120}},{"name":"status","in":"query","required":false,"description":"Filter results by status.","schema":{"type":"string","enum":["unopened","open","closed","settled"]}},{"name":"tickers","in":"query","required":false,"description":"Comma-separated tickers.","schema":{"type":"string","maxLength":400}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/kalshi-orderbook":{"get":{"tags":["predict"],"summary":"Order book for a Kalshi market by ticker: resting yes and...","description":"Order book for a Kalshi market by ticker: resting yes and no bids with price (dollars) and size (contracts). Optional depth. Read-only (no Kalshi key needed).","operationId":"predict_kalshi-orderbook","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [Kalshi order book].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"yes":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","nullable":true},"size":{"type":"number","nullable":true}},"required":["price","size"],"additionalProperties":false}},"no":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","nullable":true},"size":{"type":"number","nullable":true}},"required":["price","size"],"additionalProperties":false}}},"required":["ticker","yes","no"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.kalshi-orderbook","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"Ticker.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"depth","in":"query","required":false,"description":"Depth.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/kalshi-trades":{"get":{"tags":["predict"],"summary":"Recent trades on Kalshi, optionally filtered to one market...","description":"Recent trades on Kalshi, optionally filtered to one market ticker. Returns each trade's ticker, contract count, taker side, yes/no price (dollars), and time. Page with limit + cursor. Read-only (no Kalshi key needed).","operationId":"predict_kalshi-trades","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = Kalshi trades; meta.cursor = next page.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"nullable":true},"count":{"type":"number","nullable":true},"takerSide":{"nullable":true},"yesPrice":{"type":"number","nullable":true},"noPrice":{"type":"number","nullable":true},"createdTime":{"nullable":true},"tradeId":{"nullable":true}},"required":["count","yesPrice","noPrice"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.kalshi-trades","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":false,"description":"Ticker.","schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque pagination cursor returned by a previous response.","schema":{"type":"string","maxLength":400}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/leaderboard":{"get":{"tags":["predict"],"summary":"Polymarket smart-wallet leaderboard: top traders ranked by...","description":"Polymarket smart-wallet leaderboard: top traders ranked by realized volume or profit (P&L). Choose the time window (1d/7d/30d/all) and rankBy (vol/pnl); cap with limit. Each entry returns rank, wallet (proxy) address, trader name, X handle, verified badge, total USD volume, and USD P&L — for tracking smart money. Pair the wallet with predict.positions / predict.activity / predict.wallet. Read-only from Polymarket's Data API.","operationId":"predict_leaderboard","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = ranked traders.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"number","nullable":true},"wallet":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"xUsername":{"type":"string","nullable":true},"verified":{"type":"boolean"},"volumeUsd":{"type":"number","nullable":true},"pnlUsd":{"type":"number","nullable":true}},"required":["rank","wallet","name","xUsername","verified","volumeUsd","pnlUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"window":{"type":"string"},"rankBy":{"type":"string"}},"required":["window","rankBy"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.leaderboard","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"window","in":"query","required":false,"description":"Time window (default all).","schema":{"type":"string","enum":["1d","7d","30d","all"]}},{"name":"rankBy","in":"query","required":false,"description":"Rank by volume or P&L (default vol).","schema":{"type":"string","enum":["vol","pnl"]}},{"name":"limit","in":"query","required":false,"description":"Max traders (default 20).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/limitless-markets":{"get":{"tags":["predict"],"summary":"Active prediction markets on Limitless Exchange (on-chain...","description":"Active prediction markets on Limitless Exchange (on-chain, Base; keyless). Each market: conditionId, title, slug, description, status, live YES/NO prices, volume, liquidity, collateral token, expiration, and categories/tags. A second venue alongside the Polymarket (predict.markets) and Kalshi (predict.kalshi-markets) clusters — for cross-venue prediction-market coverage.","operationId":"predict_limitless-markets","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = active Limitless markets; meta.total = total active count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"conditionId":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"yesPrice":{"type":"number","nullable":true},"noPrice":{"type":"number","nullable":true},"volume":{"type":"number","nullable":true},"liquidity":{"type":"number","nullable":true},"collateralSymbol":{"type":"string","nullable":true},"expirationDate":{"type":"string","nullable":true},"categories":{"type":"array","items":{}},"tags":{"type":"array","items":{}}},"required":["conditionId","slug","title","description","status","yesPrice","noPrice","volume","liquidity","collateralSymbol","expirationDate","categories","tags"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total":{"type":"number"}},"required":["total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.limitless-markets","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Max markets (default 20).","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/market":{"get":{"tags":["predict"],"summary":"A single Polymarket market by conditionId, slug, or id.","description":"A single Polymarket market by conditionId, slug, or id. Returns the question, outcomes + live prices (implied probabilities), CLOB token ids, USD volume + liquidity, dates, description, and URL. Pass one of conditionId / slug / id.","operationId":"predict_market","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [market].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"question":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"string"}},"outcomePrices":{"type":"array","items":{"type":"number"}},"clobTokenIds":{"type":"array","items":{"type":"string"}},"volumeUsd":{"type":"number","nullable":true},"liquidityUsd":{"type":"number","nullable":true},"active":{"type":"boolean","nullable":true},"closed":{"type":"boolean","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["id","question","slug","conditionId","outcomes","outcomePrices","clobTokenIds","volumeUsd","liquidityUsd","active","closed","startDate","endDate","description","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.market","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"conditionId","in":"query","required":false,"description":"Condition ID.","schema":{"type":"string","maxLength":80}},{"name":"slug","in":"query","required":false,"description":"Slug.","schema":{"type":"string","maxLength":200}},{"name":"id","in":"query","required":false,"description":"Unique identifier of the record to fetch.","schema":{"type":"string","maxLength":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/markets":{"get":{"tags":["predict"],"summary":"Browse Polymarket prediction markets.","description":"Browse Polymarket prediction markets. Filter by active/closed, order by volume/liquidity/endDate, page with limit/offset. Each market returns its question, outcomes + live outcome prices (implied probabilities), CLOB token ids (use with predict.price / predict.orderbook / predict.price-history), USD volume + liquidity, open/close dates, and the Polymarket URL. Read-only mirror of Polymarket's public market list.","operationId":"predict_markets","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = markets.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"question":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"outcomes":{"type":"array","items":{"type":"string"}},"outcomePrices":{"type":"array","items":{"type":"number"}},"clobTokenIds":{"type":"array","items":{"type":"string"}},"volumeUsd":{"type":"number","nullable":true},"liquidityUsd":{"type":"number","nullable":true},"active":{"type":"boolean","nullable":true},"closed":{"type":"boolean","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["id","question","slug","conditionId","outcomes","outcomePrices","clobTokenIds","volumeUsd","liquidityUsd","active","closed","startDate","endDate","description","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer"}},"required":["count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.markets","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0}},{"name":"active","in":"query","required":false,"description":"Active.","schema":{"type":"boolean"}},{"name":"closed","in":"query","required":false,"description":"Closed.","schema":{"type":"boolean"}},{"name":"order","in":"query","required":false,"description":"Sort direction: asc or desc.","schema":{"type":"string","enum":["volume","liquidity","endDate","startDate"]}},{"name":"ascending","in":"query","required":false,"description":"Ascending.","schema":{"type":"boolean"}},{"name":"tagId","in":"query","required":false,"description":"Tag ID.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/matched-pairs":{"get":{"tags":["predict"],"summary":"Cross-venue equivalent-market pairs for arbitrage /...","description":"Cross-venue equivalent-market pairs for arbitrage / relative-value spotting. We fuzzy-match open Polymarket vs Kalshi markets by title-token overlap and return candidate pairs with both venues' YES prices and the implied-probability spread (Polymarket YES minus Kalshi YES). Tune with minScore (0-1 title-similarity floor) and limit. Heuristic — a high score is a strong candidate, not a guaranteed identical contract. Read-only, keyless. No public source maps these directly; the pairing is derived by 2s.io.","operationId":"predict_matched-pairs","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = candidate cross-venue pairs, score desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"score":{"type":"number"},"polymarket":{"type":"object","properties":{"title":{"type":"string","nullable":true},"yesPrice":{"type":"number","nullable":true},"volumeUsd":{"type":"number","nullable":true},"ref":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["title","yesPrice","volumeUsd","ref","url"],"additionalProperties":false},"kalshi":{"type":"object","properties":{"title":{"type":"string","nullable":true},"yesPrice":{"type":"number","nullable":true},"volumeUsd":{"type":"number","nullable":true},"ref":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["title","yesPrice","volumeUsd","ref","url"],"additionalProperties":false},"yesSpread":{"type":"number","nullable":true}},"required":["score","polymarket","kalshi","yesSpread"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer"},"note":{"type":"string"}},"required":["count","note"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.matched-pairs","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Max pairs (default 20).","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"minScore","in":"query","required":false,"description":"Minimum title-similarity score 0-1 (default 0.3).","schema":{"type":"number","minimum":0,"maximum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/orderbook":{"get":{"tags":["predict"],"summary":"Full CLOB order book (bids + asks with price and size) for...","description":"Full CLOB order book (bids + asks with price and size) for a Polymarket outcome token. Use the clobTokenIds from predict.markets. Read-only depth snapshot from Polymarket's CLOB.","operationId":"predict_orderbook","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [order book].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"tokenId":{"type":"string"},"bids":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","nullable":true},"size":{"type":"number","nullable":true}},"required":["price","size"],"additionalProperties":false}},"asks":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","nullable":true},"size":{"type":"number","nullable":true}},"required":["price","size"],"additionalProperties":false}},"timestamp":{"nullable":true}},"required":["tokenId","bids","asks"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.orderbook","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tokenId","in":"query","required":true,"description":"CLOB token id (outcome token).","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/positions":{"get":{"tags":["predict"],"summary":"A wallet's open Polymarket positions.","description":"A wallet's open Polymarket positions. Pass the wallet (proxy) address; cap with limit. Each position returns the market title + outcome, share size, average vs current price, initial vs current USD value, unrealized USD P&L and percent P&L, whether it's redeemable, and the conditionId/slug. For inspecting any trader's live book (e.g. a wallet from predict.leaderboard or predict.whales). Read-only from Polymarket's Data API.","operationId":"predict_positions","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = open positions, current value desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"avgPrice":{"type":"number","nullable":true},"curPrice":{"type":"number","nullable":true},"initialValueUsd":{"type":"number","nullable":true},"valueUsd":{"type":"number","nullable":true},"pnlUsd":{"type":"number","nullable":true},"percentPnl":{"type":"number","nullable":true},"redeemable":{"type":"boolean"},"conditionId":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true}},"required":["title","outcome","size","avgPrice","curPrice","initialValueUsd","valueUsd","pnlUsd","percentPnl","redeemable","conditionId","slug"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"address":{"type":"string"},"count":{"type":"integer"}},"required":["address","count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.positions","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet (proxy) address.","schema":{"type":"string","minLength":8,"maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Max positions (default 50).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/price":{"get":{"tags":["predict"],"summary":"Live best bid, best ask, and midpoint for a Polymarket...","description":"Live best bid, best ask, and midpoint for a Polymarket outcome token (CLOB token id — get it from predict.markets clobTokenIds). The midpoint is the market's implied probability for that outcome. Read-only from Polymarket's CLOB.","operationId":"predict_price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{tokenId,bid,ask,mid}].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"tokenId":{"type":"string"},"bid":{"type":"number","nullable":true},"ask":{"type":"number","nullable":true},"mid":{"type":"number","nullable":true}},"required":["tokenId","bid","ask","mid"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.price","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tokenId","in":"query","required":true,"description":"CLOB token id (outcome token).","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/price-history":{"get":{"tags":["predict"],"summary":"Time-series price (implied-probability) history for a...","description":"Time-series price (implied-probability) history for a Polymarket outcome token. Pass the CLOB token id and an interval (1h, 6h, 1d, 1w, 1m, max). Returns timestamped price points — for charting how a market's odds moved. Read-only from Polymarket's CLOB.","operationId":"predict_price-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{tokenId, points[]}].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"tokenId":{"type":"string"},"points":{"type":"array","items":{"type":"object","properties":{"t":{},"p":{"type":"number","nullable":true}},"required":["p"],"additionalProperties":false}}},"required":["tokenId","points"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.price-history","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tokenId","in":"query","required":true,"description":"Token ID.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"interval","in":"query","required":false,"description":"Interval.","schema":{"type":"string","enum":["1h","6h","1d","1w","1m","max"]}},{"name":"fidelity","in":"query","required":false,"description":"Fidelity.","schema":{"type":"integer","minimum":1,"maximum":1440}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/search":{"get":{"tags":["predict"],"summary":"Cross-venue prediction-market keyword search across...","description":"Cross-venue prediction-market keyword search across Polymarket, Kalshi, and Limitless Exchange in one call. Pass q (required); filter by status (open/closed) and cap per-venue with limit. Each hit is tagged with its venue and returns the question, live YES/NO price (0-1 implied probability), USD volume, close date, and the venue URL — for finding the same real-world question wherever it trades. Read-only, keyless.","operationId":"predict_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = cross-venue market hits, each tagged with venue.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"venue":{"type":"string","enum":["polymarket","kalshi","limitless"]},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"yesPrice":{"type":"number","nullable":true},"noPrice":{"type":"number","nullable":true},"volumeUsd":{"type":"number","nullable":true},"closed":{"type":"boolean","nullable":true},"endDate":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["venue","title","slug","yesPrice","noPrice","volumeUsd","closed","endDate","ticker","conditionId","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"q":{"type":"string"},"byVenue":{"type":"object","additionalProperties":{"type":"number"}}},"required":["q","byVenue"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.search","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Keyword(s) to search market questions for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Max results per venue (default 15).","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"status","in":"query","required":false,"description":"Filter by market status.","schema":{"type":"string","enum":["open","closed"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/sports":{"get":{"tags":["predict"],"summary":"Sports prediction markets across Polymarket and Kalshi in...","description":"Sports prediction markets across Polymarket and Kalshi in one call — game lines, futures, and props (NFL/NBA/MLB/NHL/soccer/tennis/etc). Optionally narrow with league (a tag/category keyword, e.g. nfl, soccer, world-cup) and cap with limit. Each hit is tagged with its venue and returns the question, live YES/NO price (implied probability), USD volume, close date, and the venue URL. Read-only, keyless.","operationId":"predict_sports","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = sports markets across Polymarket + Kalshi.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"venue":{"type":"string","enum":["polymarket","kalshi"]},"title":{"type":"string","nullable":true},"yesPrice":{"type":"number","nullable":true},"noPrice":{"type":"number","nullable":true},"volumeUsd":{"type":"number","nullable":true},"endDate":{"type":"string","nullable":true},"ticker":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"url":{"type":"string","nullable":true}},"required":["venue","title","yesPrice","noPrice","volumeUsd","endDate","ticker","slug","conditionId","tags","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"byVenue":{"type":"object","additionalProperties":{"type":"number"}}},"required":["byVenue"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.sports","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"league","in":"query","required":false,"description":"League/category keyword (e.g. nfl, nba, soccer, world-cup).","schema":{"type":"string","maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Max results per venue (default 20).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/trades":{"get":{"tags":["predict"],"summary":"Recent Polymarket trades.","description":"Recent Polymarket trades. Filter by market (conditionId) and/or user (wallet address); page with limit (max 500). Each trade returns wallet, trader name, side (buy/sell), outcome, size, price, USD notional, timestamp, market title, and tx hash. Read-only from Polymarket's Data API.","operationId":"predict_trades","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = trades.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"side":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"price":{"type":"number","nullable":true},"usd":{"type":"number","nullable":true},"timestamp":{"type":"number","nullable":true},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"txHash":{"type":"string","nullable":true}},"required":["wallet","name","side","outcome","size","price","usd","timestamp","title","slug","conditionId","txHash"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.trades","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"market","in":"query","required":false,"description":"Market conditionId.","schema":{"type":"string","maxLength":80}},{"name":"user","in":"query","required":false,"description":"Wallet address.","schema":{"type":"string","maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/wallet":{"get":{"tags":["predict"],"summary":"A Polymarket trader's portfolio by wallet address: total...","description":"A Polymarket trader's portfolio by wallet address: total portfolio USD value plus open positions (market title, outcome, size, average vs current price, current value, and unrealized PnL). For tracking a wallet's prediction-market book. Read-only from Polymarket's Data API.","operationId":"predict_wallet","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{address, portfolioValueUsd, positions[]}].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"portfolioValueUsd":{"type":"number","nullable":true},"positions":{"type":"array","items":{"type":"object","properties":{"title":{"nullable":true},"outcome":{"nullable":true},"size":{"type":"number","nullable":true},"avgPrice":{"type":"number","nullable":true},"curPrice":{"type":"number","nullable":true},"valueUsd":{"type":"number","nullable":true},"pnlUsd":{"type":"number","nullable":true},"conditionId":{"nullable":true}},"required":["size","avgPrice","curPrice","valueUsd","pnlUsd"],"additionalProperties":false}}},"required":["address","portfolioValueUsd","positions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.wallet","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet (proxy) address.","schema":{"type":"string","minLength":8,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/predict/whales":{"get":{"tags":["predict"],"summary":"Polymarket whale radar: the largest recent trades by USD...","description":"Polymarket whale radar: the largest recent trades by USD notional across all markets, ranked. Optional minUsd floor and limit. Each entry includes wallet, trader name, market, side, outcome, size, price, USD value, and tx hash — for tracking smart-money / large positioning. Read-only from Polymarket's Data API.","operationId":"predict_whales","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = whale trades, USD-desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"side":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"price":{"type":"number","nullable":true},"usd":{"type":"number","nullable":true},"timestamp":{"type":"number","nullable":true},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"conditionId":{"type":"string","nullable":true},"txHash":{"type":"string","nullable":true}},"required":["wallet","name","side","outcome","size","price","usd","timestamp","title","slug","conditionId","txHash"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"count":{"type":"integer"}},"required":["count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"predict.whales","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"minUsd","in":"query","required":false,"description":"Only trades at/above this USD notional.","schema":{"type":"number","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/product/gtin":{"get":{"tags":["product"],"summary":"Decode and validate a product barcode (GTIN / UPC-A /...","description":"Decode and validate a product barcode (GTIN / UPC-A / EAN-13 / EAN-8 / GTIN-14 / ISBN-13 / ISSN). Returns the GS1 mod-10 check-digit validation (valid flag + expected digit — an LLM can't reliably compute this), the symbology, the zero-padded GTIN-14 canonical form, and the GS1 prefix decoded to the issuing GS1 member organisation and its country (NOTE: that's the country of the org that issued the prefix, not necessarily where the item was made). Flags restricted-distribution (in-store/variable-measure) prefixes and Bookland (ISBN) / serial (ISSN) ranges. Also attempts a FRESH best-effort product-identity lookup (name, brand, category, image) across the open Open Food/Beauty/Products/Pet Food Facts federation (ODbL) — reliable for food, beverage, and beauty items, sparse for general retail (electronics/apparel), and may be null. Always live (no caching). Set identity=false to skip the lookup and decode only.","operationId":"product_gtin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one decoded GTIN + best-effort live identity]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"gtin":{"type":"string","nullable":true},"gtin14":{"type":"string","nullable":true},"valid":{"type":"boolean"},"symbology":{"type":"string"},"checkDigit":{"type":"object","properties":{"given":{"type":"number","nullable":true},"expected":{"type":"number","nullable":true}},"required":["given","expected"],"additionalProperties":false},"gs1Prefix":{"type":"string","nullable":true},"issuingOrg":{"type":"string","nullable":true},"issuingCountry":{"type":"string","nullable":true},"isbn":{"type":"string","nullable":true},"restrictedDistribution":{"type":"boolean"},"note":{"type":"string"},"identity":{"type":"object","properties":{"found":{"type":"boolean"},"dataset":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"brand":{"type":"string","nullable":true},"categories":{"type":"array","items":{"type":"string"}},"quantity":{"type":"string","nullable":true},"imageUrl":{"type":"string","nullable":true},"source":{"$ref":"#/components/schemas/Source"}},"required":["found","dataset","name","brand","categories","quantity","imageUrl","source"],"additionalProperties":false}},"required":["input","gtin","gtin14","valid","symbology","checkDigit","gs1Prefix","issuingOrg","issuingCountry","isbn","restrictedDistribution","note","identity"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"product.gtin","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"gtin","in":"query","required":true,"description":"GTIN.","schema":{"type":"string","minLength":6,"maxLength":20}},{"name":"identity","in":"query","required":false,"description":"Identity.","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/property/nyc-deed-history":{"get":{"tags":["property"],"summary":"NYC deed + mortgage history for a tax lot via ACRIS...","description":"NYC deed + mortgage history for a tax lot via ACRIS (Automated City Register Information System) legals dataset, keyed by BBL. Each row carries a unique documentId you can use to drill into the ACRIS master dataset (the master URL pattern is included in the response) for full details: parties, consideration amount, document type (DEED, MORTGAGE, ASSIGNMENT OF MORTGAGE, etc.). Use `property.nyc-parcel-lookup` first to convert an address to a BBL. Returns most-recent records first.","operationId":"property_nyc-deed-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ACRIS legals records for the BBL.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"bbl":{"type":"string"},"masterDatasetForDocIds":{"type":"string"}},"required":["bbl","masterDatasetForDocIds"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"property.nyc-deed-history","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bbl","in":"query","required":true,"description":"Bbl.","schema":{"type":"string","pattern":"^[1-5][- 0-9]{9,19}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/property/nyc-parcel-lookup":{"get":{"tags":["property"],"summary":"NYC tax-lot lookup via PLUTO (Primary Land Use Tax Lot...","description":"NYC tax-lot lookup via PLUTO (Primary Land Use Tax Lot Output) — every tax lot in the city with owner, zoning, lot/building area, year built, classification, lat/lon, community + school + council + police districts. Pass `bbl` (10-digit Borough-Block-Lot composite, e.g. 1010110001 for the Empire State Building) for an exact lookup, OR pass `address` (partial-match) optionally constrained by `borough` (name or 2-letter code MN/BX/BK/QN/SI). The BBL returned here is the universal join key for all other property.nyc-* endpoints — fetch parcels first, then chain into deed-history, permits, or violations.","operationId":"property_nyc-parcel-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NYC parcels.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"property.nyc-parcel-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bbl","in":"query","required":false,"description":"Bbl.","schema":{"type":"string","pattern":"^[1-5][- 0-9]{9,19}$"}},{"name":"address","in":"query","required":false,"description":"Street address or full address string.","schema":{"type":"string","minLength":3,"maxLength":120}},{"name":"borough","in":"query","required":false,"description":"Borough.","schema":{"type":"string","pattern":"^([A-Za-z ]{2,15})$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/property/nyc-permits":{"get":{"tags":["property"],"summary":"NYC Department of Buildings permit issuance - every...","description":"NYC Department of Buildings permit issuance — every construction, alteration, or demolition permit ever issued. Search by `bbl` (10-digit) or `address` (street_name substring). Filter by jobType (A1=Major Alteration, A2=Minor Alteration, A3=Minor Cosmetic, NB=New Building, DM=Demolition, etc.) or permitStatus (ISSUED, IN PROCESS, RE-ISSUED, REVOKED, etc.). Each row carries job + permit numbers, work type, building type, residential flag, filing/issuance/expiration dates, estimated fee. Use for construction-history agents, code-enforcement research, and zoning compliance checks.","operationId":"property_nyc-permits","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = nyc dob permit records.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"property.nyc-permits","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bbl","in":"query","required":false,"description":"Bbl.","schema":{"type":"string","pattern":"^[1-5][- 0-9]{9,19}$"}},{"name":"address","in":"query","required":false,"description":"Street address or full address string.","schema":{"type":"string","minLength":3,"maxLength":120}},{"name":"jobType","in":"query","required":false,"description":"Job type.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{1,5}$"}},{"name":"permitStatus","in":"query","required":false,"description":"Permit status.","schema":{"type":"string","pattern":"^[A-Za-z _-]{2,30}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/property/nyc-violations":{"get":{"tags":["property"],"summary":"NYC Housing Preservation & Development (HPD) violations...","description":"NYC Housing Preservation & Development (HPD) violations — every notice of violation issued at a multi-family building. Search by `bbl` (10-digit) or `address` (street_name substring). Filter by `classCode` (A=least severe, B=hazardous, C=immediately hazardous) and `currentStatusOnly=true` to limit to open violations. Each row carries violation id, building id, full address + apartment + story, inspection + approved + certify-by + correct-by dates, current status + status date, and the narrative NOV description. Use for landlord-history, code-enforcement, and tenant-rights agents.","operationId":"property_nyc-violations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = nyc hpd violation records.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"property.nyc-violations","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bbl","in":"query","required":false,"description":"Bbl.","schema":{"type":"string","pattern":"^[1-5][- 0-9]{9,19}$"}},{"name":"address","in":"query","required":false,"description":"Street address or full address string.","schema":{"type":"string","minLength":3,"maxLength":120}},{"name":"classCode","in":"query","required":false,"description":"Class code.","schema":{"type":"string","enum":["A","B","C"]}},{"name":"currentStatusOnly","in":"query","required":false,"description":"Current status only.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/pubsub/create-topic":{"post":{"tags":["pubsub"],"summary":"PUBSUB: create a topic you own, scoped to YOUR wallet.","description":"PUBSUB: create a topic you own, scoped to YOUR wallet. Returns a topicId — share it so other agents can pubsub.subscribe; only you (the owner) can pubsub.publish to it. The coordination backbone for multi-agent systems. Idempotent per name (re-creating returns the same id and extends its 90-day life). No account or API key — pay per call with x402.","operationId":"pubsub_create-topic","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the topic].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"topicId":{"type":"string"},"name":{"type":"string"}},"required":["topicId","name"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"pubsub.create-topic","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Topic name, 1-64 chars of [A-Za-z0-9._:-]. e.g. \"price-alerts\"."}},"required":["name"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/pubsub/publish":{"post":{"tags":["pubsub"],"summary":"PUBSUB: publish a message to a topic YOU own, fanning out a...","description":"PUBSUB: publish a message to a topic YOU own, fanning out a signed callback to every CONFIRMED subscriber. Returns the number of subscribers it was delivered to. Only the topic owner (the x402 payer who created it) can publish. Message is arbitrary JSON (≤64 KB). Priced by confirmed-subscriber count (a small base + per subscriber), so you pay for the fan-out you request. Delivery is at-least-once with retry + signature.","operationId":"pubsub_publish","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ delivered }] — subscriber count fanned to.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"topicId":{"type":"string"},"delivered":{"type":"number"}},"required":["topicId","delivered"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"pubsub.publish","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.002000","max":"50.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topicId":{"type":"string","description":"The topic you own (from pubsub.create-topic)."},"message":{"description":"The payload to fan out — any JSON, up to 64 KB."}},"required":["topicId"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/pubsub/subscribe":{"post":{"tags":["pubsub"],"summary":"PUBSUB: subscribe a callbackUrl to a topic by its topicId...","description":"PUBSUB: subscribe a callbackUrl to a topic by its topicId (the topic can belong to any wallet — you just need the id). CONFIRMATION REQUIRED: we immediately POST a one-time challenge to your callbackUrl with header X-2s-Confirmation-Token (and {type:\"2s_subscription_confirmation\", token} in the JSON body); to be CONFIRMED your endpoint must reply 2xx with the response body set to exactly that token, or JSON {\"token\":\"<token>\"}. Only confirmed subscribers receive published messages (this prevents subscribing a non-consenting URL). Response field \"confirmed\" tells you if it worked; re-call to retry. When the owner publishes, we POST the message to your callbackUrl, EIP-191-signed (verify with X-2s-Signature) and retried with backoff; a subscriber that repeatedly fails delivery is auto-disabled. Returns a subscriptionId for pubsub.unsubscribe. Up to 100 subscribers per topic, one per URL. Pay per call with x402.","operationId":"pubsub_subscribe","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the subscription]. confirmed=false means your URL did not echo the challenge token; fix it and re-call.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"subscriptionId":{"type":"string"},"confirmed":{"type":"boolean"},"callbackSigner":{"type":"string"}},"required":["subscriptionId","confirmed","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"pubsub.subscribe","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topicId":{"type":"string","description":"The topicId to subscribe to (from pubsub.create-topic)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST published messages. Any http(s) URL; must echo the confirmation token to activate; body is signed."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["topicId","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/pubsub/unsubscribe":{"post":{"tags":["pubsub"],"summary":"PUBSUB: remove one of YOUR subscriptions by its...","description":"PUBSUB: remove one of YOUR subscriptions by its subscriptionId — you stop receiving that topic's messages. Returns removed:false if it isn't yours or is already gone. Private to your wallet (the x402 payer).","operationId":"pubsub_unsubscribe","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the unsubscribe result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"subscriptionId":{"type":"string"},"removed":{"type":"boolean"}},"required":["subscriptionId","removed"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"pubsub.unsubscribe","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subscriptionId":{"type":"string","description":"The subscriptionId from pubsub.subscribe."}},"required":["subscriptionId"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/quakes/recent":{"get":{"tags":["quakes"],"summary":"Recent earthquakes near a coordinate.","description":"Recent earthquakes near a coordinate. Returns each quake with magnitude, place name, time (ISO), latitude/longitude/depth, tsunami flag, USGS event URL, and distance-from-query in km — sorted by time descending. Real-time data, post-LLM-training-cutoff. Backed by USGS FDSN event API (public domain). Query: lat (-90..90), lon (-180..180), radius_km (1-1000, default 500), hours (1-720, default 24), min_magnitude (0-10, default 2.0).","operationId":"quakes_recent","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = recent earthquakes (magnitude, place, time, lat/lon/depth, tsunami, url, distanceKm), newest-first; total = null (query-bounded set); meta.query echoes the request, meta.largestMagnitude + meta.nearestKm summarize the set.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"radiusKm":{"type":"number"},"hours":{"type":"number"},"minMagnitude":{"type":"number"}},"required":["latitude","longitude","radiusKm","hours","minMagnitude"],"additionalProperties":false},"largestMagnitude":{"type":"number","nullable":true},"nearestKm":{"type":"number","nullable":true}},"required":["query","largestMagnitude","nearestKm"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"quakes.recent","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius_km","in":"query","required":false,"description":"Search radius in kilometers.","schema":{"type":"number","minimum":1,"maximum":1000,"default":500}},{"name":"hours","in":"query","required":false,"description":"Look-back window, in hours.","schema":{"type":"number","minimum":1,"maximum":720,"default":24}},{"name":"min_magnitude","in":"query","required":false,"description":"Minimum magnitude to include.","schema":{"type":"number","minimum":0,"maximum":10,"default":2}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/queue/ack":{"post":{"tags":["queue"],"summary":"QUEUE: confirm a leased message is processed - deletes it...","description":"QUEUE: confirm a leased message is processed — deletes it so it isn't redelivered, scoped to YOUR wallet. Pass the message id + the leaseToken from queue.lease. Returns acked:false if the lease expired or the token doesn't match (the message will be redelivered to a future lease). Private to your wallet (the x402 payer).","operationId":"queue_ack","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the ack result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"acked":{"type":"boolean"}},"required":["id","acked"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"queue.ack","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"queue":{"type":"string","description":"Queue the message came from."},"id":{"type":"string","description":"Message id from queue.lease."},"leaseToken":{"type":"string","description":"leaseToken from queue.lease."}},"required":["queue","id","leaseToken"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/queue/enqueue":{"post":{"tags":["queue"],"summary":"QUEUE: append a message to a durable, wallet-scoped queue.","description":"QUEUE: append a message to a durable, wallet-scoped queue. Workers pull it later with queue.lease and confirm with queue.ack. Use it to buffer tasks, hand work between agent runs, or fan work to a consumer. Body is arbitrary JSON (≤256 KB). Optional maxAttempts before a message dead-letters. Kept on a rolling 90-day window. No account or API key — pay per call with x402.","operationId":"queue_enqueue","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ id }] of the enqueued message.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"queue.enqueue","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"queue":{"type":"string","description":"Queue name, 1-64 chars of [A-Za-z0-9._:-]. e.g. \"jobs\"."},"body":{"description":"The message payload — any JSON, up to 256 KB."},"maxAttempts":{"type":"integer","minimum":1,"maximum":100,"description":"Deliveries before the message moves to the dead-letter status. Default 10."}},"required":["queue"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/queue/lease":{"post":{"tags":["queue"],"summary":"QUEUE: atomically claim up to `count` messages for...","description":"QUEUE: atomically claim up to `count` messages for processing, scoped to YOUR wallet. Each comes with a leaseToken; the messages are hidden from other workers for visibilitySeconds. Process them, then queue.ack each with its leaseToken — if you don't ack in time, the message is redelivered. Concurrent workers never get the same message (FOR UPDATE SKIP LOCKED). Private to your wallet (the x402 payer).","operationId":"queue_lease","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = leased messages (each with its leaseToken).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"body":{},"attempts":{"type":"number"},"leaseToken":{"type":"string"}},"required":["id","attempts","leaseToken"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"queue.lease","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"queue":{"type":"string","description":"Queue to pull from."},"count":{"type":"integer","minimum":1,"maximum":100,"description":"How many to claim. Default 1, max 100."},"visibilitySeconds":{"type":"integer","minimum":1,"maximum":3600,"description":"How long claimed messages stay hidden before redelivery. Default 30, max 3600."}},"required":["queue"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/queue/stats":{"post":{"tags":["queue"],"summary":"QUEUE: depth of a queue, scoped to YOUR wallet - counts of...","description":"QUEUE: depth of a queue, scoped to YOUR wallet — counts of ready (available now), leased (in flight), and dlq (dead-lettered) messages, plus total. Use it to monitor backlog and decide whether to scale workers. Private to your wallet (the x402 payer).","operationId":"queue_stats","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the queue depth].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ready":{"type":"number"},"leased":{"type":"number"},"dlq":{"type":"number"},"total":{"type":"number"}},"required":["ready","leased","dlq","total"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"queue.stats","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"queue":{"type":"string","description":"Queue to inspect."}},"required":["queue"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/recreation/search":{"get":{"tags":["recreation"],"summary":"Search the Recreation Information Database (RIDB) - the...","description":"Search the Recreation Information Database (RIDB) — the single source of truth for federal recreation lands and programs across NPS, USFS, BLM, USACE, BOR, FWS, NARA. Pick a resource: recareas (designated recreation areas), facilities (individual sites — campgrounds, day-use, visitor centers), campsites (individual reservable campsites with attributes), permits (special-use permits, lotteries), tours, events, activities (taxonomy lookup). Filter by free-text query, state, activity ID, or lat/lon + radius (miles, max 50). Used by every federal-recreation-related agent: trip planning, permit chasers, fishing/hunting locator, campground availability tools.","operationId":"recreation_search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched RIDB records for the requested resource; total = upstream total match count; meta echoes resource + currentCount (this page).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"resource":{"type":"string","enum":["recareas","facilities","campsites","permits","tours","events","activities"]},"currentCount":{"type":"number","description":"Records returned on this page."}},"required":["resource","currentCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"recreation.search","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"resource","in":"query","required":true,"description":"Resource.","schema":{"type":"string","enum":["recareas","facilities","campsites","permits","tours","events","activities"]}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"state","in":"query","required":false,"description":"US state — two-letter postal abbreviation (e.g. CA) or full name.","schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[A-Za-z]{2}$"}},{"name":"activity","in":"query","required":false,"description":"Activity.","schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"latitude","in":"query","required":false,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"longitude","in":"query","required":false,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius","in":"query","required":false,"description":"Search radius around the given point.","schema":{"type":"number","minimum":0.1,"maximum":50}},{"name":"lastUpdated","in":"query","required":false,"description":"Last updated.","schema":{"type":"string","pattern":"^\\d{2}-\\d{2}-\\d{4}$"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/registry/npm-lookup":{"get":{"tags":["registry"],"summary":"Look up an npm package by name (supports scoped packages...","description":"Look up an npm package by name (supports scoped packages like @sentry/node). Returns description, homepage, repository, license, author + maintainers list, keywords, distTags (latest/beta/rc/etc.), latest version + publication date, and the 50 most recent versions with their publish dates + deprecation status. ~3M JavaScript/TypeScript packages. npm public registry.","operationId":"registry_npm-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [npm package metadata] (license, maintainers, distTags, recent versions); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"homepage":{"type":"string","nullable":true},"repository":{"type":"object","properties":{"type":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["type","url"],"additionalProperties":false,"nullable":true},"license":{"type":"string","nullable":true},"author":{"type":"string","nullable":true},"maintainers":{"type":"array","items":{"type":"string"}},"keywords":{"type":"array","items":{"type":"string"}},"distTags":{"type":"object","additionalProperties":{"type":"string"}},"latestVersion":{"type":"string","nullable":true},"latestPublished":{"type":"string","nullable":true},"versions":{"type":"array","items":{"type":"object","properties":{"version":{"type":"string"},"published":{"type":"string","nullable":true},"deprecated":{"type":"string","nullable":true}},"required":["version","published","deprecated"],"additionalProperties":false}}},"required":["name","description","homepage","repository","license","author","maintainers","keywords","distTags","latestVersion","latestPublished","versions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"registry.npm-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":214}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/registry/pypi-lookup":{"get":{"tags":["registry"],"summary":"Look up a Python package on PyPI by name.","description":"Look up a Python package on PyPI by name. Returns version, summary + long description, content-type, project URLs (Homepage, Source, Bug Tracker, Docs, etc.), license, author + maintainer (with emails), keywords, classifiers (top 30), requires-python spec, requires-dist (top 100 runtime deps), the 50 most recent releases with publish dates, and any yanked versions in that window. PyPI public registry.","operationId":"registry_pypi-lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [PyPI package metadata] (version, project URLs, classifiers, deps, recent releases); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"summary":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"descriptionContentType":{"type":"string","nullable":true},"homePage":{"type":"string","nullable":true},"projectUrls":{"type":"object","additionalProperties":{"type":"string"}},"license":{"type":"string","nullable":true},"author":{"type":"string","nullable":true},"authorEmail":{"type":"string","nullable":true},"maintainer":{"type":"string","nullable":true},"maintainerEmail":{"type":"string","nullable":true},"keywords":{"type":"array","items":{"type":"string"}},"classifiers":{"type":"array","items":{"type":"string"}},"requiresPython":{"type":"string","nullable":true},"requiresDist":{"type":"array","items":{"type":"string"}},"releaseDates":{"type":"object","additionalProperties":{"type":"string","nullable":true}},"yankedVersions":{"type":"array","items":{"type":"string"}}},"required":["name","version","summary","description","descriptionContentType","homePage","projectUrls","license","author","authorEmail","maintainer","maintainerEmail","keywords","classifiers","requiresPython","requiresDist","releaseDates","yankedVersions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"registry.pypi-lookup","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/research/author":{"get":{"tags":["research"],"summary":"Resolve a researcher by ORCID iD.","description":"Resolve a researcher by ORCID iD. Pass orcid (e.g. 0000-0002-1825-0097, with or without the https://orcid.org/ prefix). Returns the researcher name, affiliations (employments and educations with organization, role, department, years, and a current flag), a total works count, and a works summary (title, type, year, DOI when present). Data: ORCID Public API, free and keyless; per-record visibility is set by the record holder. The canonical author key in scholarly metadata — pair with /api/papers/search, /api/paper/doi-lookup, and /api/research/org (ROR institutions). Use to verify an author identity, current institution, or publication record before citing.","operationId":"research_author","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"orcid":{"type":"string"},"url":{"type":"string"},"name":{"type":"object","properties":{"given":{"type":"string","nullable":true},"family":{"type":"string","nullable":true},"credit":{"type":"string","nullable":true}},"required":["given","family","credit"],"additionalProperties":false},"affiliations":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["employment","education"]},"organization":{"type":"string","nullable":true},"roleTitle":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"startYear":{"type":"number","nullable":true},"endYear":{"type":"number","nullable":true},"current":{"type":"boolean"},"country":{"type":"string","nullable":true}},"required":["type","organization","roleTitle","department","startYear","endYear","current","country"],"additionalProperties":false}},"worksCount":{"type":"number"},"works":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"doi":{"type":"string","nullable":true}},"required":["title","type","year","doi"],"additionalProperties":false}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["orcid","url","name","affiliations","worksCount","works","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"research.author","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"orcid","in":"query","required":true,"description":"ORCID iD, e.g. 0000-0002-1825-0097.","schema":{"type":"string","minLength":16,"maxLength":60}},{"name":"worksLimit","in":"query","required":false,"description":"Works limit.","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/research/funding":{"get":{"tags":["research"],"summary":"Search US federal biomedical research grants via NIH RePORTER.","description":"Search US federal biomedical research grants via NIH RePORTER. Filter by term (free-text over project title, terms, and abstract), org (funded institution name), pi (principal-investigator name), and/or fiscalYear; page with limit (1-50) and offset. Returns each award with project number, title, fiscal year, award amount (USD), contact PI, organization (name, city, state, country, department), funding agency/institute, and project start/end dates — newest fiscal year first, with a total match count. Data: NIH RePORTER, free and public-domain. Fresh post-training award data agents cannot know; pair with /api/research/org (ROR) and /api/research/author (ORCID). Use for funding landscape research, competitor/lab tracking, and grant-opportunity context.","operationId":"research_funding","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"term":{"type":"string","nullable":true},"org":{"type":"string","nullable":true},"pi":{"type":"string","nullable":true},"fiscalYear":{"type":"number","nullable":true},"limit":{"type":"number"},"offset":{"type":"number"}},"required":["term","org","pi","fiscalYear","limit","offset"],"additionalProperties":false},"total":{"type":"number","nullable":true},"count":{"type":"number"},"awards":{"type":"array","items":{"type":"object","properties":{"projectNum":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"fiscalYear":{"type":"number","nullable":true},"awardAmount":{"type":"number","nullable":true},"piName":{"type":"string","nullable":true},"organization":{"type":"string","nullable":true},"orgCity":{"type":"string","nullable":true},"orgState":{"type":"string","nullable":true},"orgCountry":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"agency":{"type":"string","nullable":true},"agencyName":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true}},"required":["projectNum","title","fiscalYear","awardAmount","piName","organization","orgCity","orgState","orgCountry","department","agency","agencyName","startDate","endDate"],"additionalProperties":false}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["query","total","count","awards","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"research.funding","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"term","in":"query","required":false,"description":"Term.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"org","in":"query","required":false,"description":"Org.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"pi","in":"query","required":false,"description":"Pi.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"fiscalYear","in":"query","required":false,"description":"Fiscal year.","schema":{"type":"integer","minimum":1985,"maximum":2100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":14000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/research/org":{"get":{"tags":["research"],"summary":"Resolve a research organization via the Research...","description":"Resolve a research organization via the Research Organization Registry (ROR). Pass id (a ROR id like 056y0v115 or its full URL) to fetch one org, or name to search by free text. Returns the canonical ROR id and name, organization type, status, founding year, location (city, country, GeoNames coordinates), website, Wikipedia link, external identifiers (GRID, ISNI, Wikidata, Crossref Funder), parent/child relationships, and aliases/acronyms. Data: ROR, free and CC0. The canonical institution key in scholarly metadata — pair with /api/papers/search and /api/paper/doi-lookup (author affiliations) and /api/research/author (ORCID). Use to disambiguate an institution name to a stable id before joining datasets.","operationId":"research_org","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"query":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["id","name"],"additionalProperties":false},"total":{"type":"number","nullable":true},"count":{"type":"number"},"organizations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"established":{"type":"number","nullable":true},"status":{"type":"string","nullable":true},"types":{"type":"array","items":{"type":"string"}},"location":{"type":"object","properties":{"city":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"countryName":{"type":"string","nullable":true},"subdivision":{"type":"string","nullable":true},"lat":{"type":"number","nullable":true},"lng":{"type":"number","nullable":true},"geonamesId":{"type":"number","nullable":true}},"required":["city","countryCode","countryName","subdivision","lat","lng","geonamesId"],"additionalProperties":false,"nullable":true},"website":{"type":"string","nullable":true},"wikipedia":{"type":"string","nullable":true},"externalIds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"preferred":{"type":"string","nullable":true},"all":{"type":"array","items":{"type":"string"}}},"required":["type","preferred","all"],"additionalProperties":false}},"relationships":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"label":{"type":"string","nullable":true}},"required":["type","id","label"],"additionalProperties":false}},"aliases":{"type":"array","items":{"type":"string"}}},"required":["id","name","established","status","types","location","website","wikipedia","externalIds","relationships","aliases"],"additionalProperties":false}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["query","total","count","organizations","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"research.org","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":false,"description":"Unique identifier of the record to fetch.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":20,"default":5}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/schedule/cancel":{"post":{"tags":["schedule"],"summary":"SCHEDULE: stop an active schedule immediately, scoped to...","description":"SCHEDULE: stop an active schedule immediately, scoped to YOUR wallet. No more callbacks will fire. Returns cancelled:false if it was already done/cancelled or isn't yours. No refund of the unused window. Private to your wallet (the x402 payer).","operationId":"schedule_cancel","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the cancel result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"scheduleId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["scheduleId","cancelled"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"schedule.cancel","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scheduleId":{"type":"string","description":"The scheduleId from schedule.create."}},"required":["scheduleId"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/schedule/create":{"post":{"tags":["schedule"],"summary":"SCHEDULE: arm a time-driven callback, scoped to YOUR wallet...","description":"SCHEDULE: arm a time-driven callback, scoped to YOUR wallet — the time-based twin of watchers. We POST your payload to callbackUrl either once at a future time (`at`) or repeatedly (`everySeconds`, ≥60). Each push is EIP-191-signed by our published key (verify offline) and retried with backoff. Pay once; bounded by maxFires + a 90-day window. Gives a stateless agent a cron without a server. No account or API key — pay per call with x402.","operationId":"schedule_create","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed schedule].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"scheduleId":{"type":"string"},"status":{"type":"string"},"nextFire":{"type":"string","nullable":true},"everySeconds":{"type":"number","nullable":true},"maxFires":{"type":"number"},"expiresAt":{"type":"string"},"callbackSigner":{"type":"string"}},"required":["scheduleId","status","nextFire","everySeconds","maxFires","expiresAt","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"schedule.create","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST when it fires. Any http(s) URL; the JSON body is signed (verify with X-2s-Signature)."},"at":{"type":"string","description":"ISO-8601 timestamp for a ONE-SHOT fire. e.g. \"2026-07-01T14:00:00Z\". Provide this OR everySeconds, not both."},"everySeconds":{"type":"integer","minimum":60,"description":"Recurring interval in seconds (≥60). Provide this OR at."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed in every callback (plus scheduleId, fireNumber, firedAt). e.g. {\"job\":\"digest\"}."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many fires (recurring only). Default 25, max 1000."},"expiresInSeconds":{"type":"integer","minimum":60,"description":"Auto-expire the schedule after this long. Default + max 90 days."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag to recognize this schedule later."}},"required":["callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/schedule/status":{"post":{"tags":["schedule"],"summary":"SCHEDULE: check a schedule's state, scoped to YOUR wallet...","description":"SCHEDULE: check a schedule's state, scoped to YOUR wallet — status, next fire time, fires used vs max, expiry, and its recent delivery attempts (including any that failed/retried). 404 if it isn't yours or doesn't exist. Private to your wallet (the x402 payer).","operationId":"schedule_status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the schedule state].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"scheduleId":{"type":"string"},"status":{"type":"string"},"nextFire":{"type":"string","nullable":true},"firesUsed":{"type":"number"},"maxFires":{"type":"number"},"recentDeliveries":{"type":"array","items":{}}},"required":["scheduleId","status","nextFire","firesUsed","maxFires","recentDeliveries"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"schedule.status","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scheduleId":{"type":"string","description":"The scheduleId from schedule.create."}},"required":["scheduleId"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/search/ai":{"get":{"tags":["search"],"summary":"AI web search optimized for agents.","description":"AI web search optimized for agents. Returns ranked results with the relevant extracted content of each page (not just a link + blurb), plus a relevance score. topic=news for recent reporting. Distinct from search.web (raw SERP) — this returns clean, LLM-ready page content per result.","operationId":"search_ai","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = ranked results with extracted content.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"content":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["title","url","content","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"search.ai","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string","minLength":2,"maxLength":400}},{"name":"maxResults","in":"query","required":false,"description":"Max results.","schema":{"type":"integer","minimum":1,"maximum":10}},{"name":"topic","in":"query","required":false,"description":"Topic.","schema":{"type":"string","enum":["general","news"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/search/crawl":{"post":{"tags":["search"],"summary":"Crawl a site and return clean page content.","description":"Crawl a site and return clean page content. POST { url, limit?, maxDepth?, instructions? }. Follows links from the start URL (up to 10 pages, depth ≤2) and returns each page's extracted content. Optional natural-language instructions steer which pages to follow (e.g. \"only pricing and docs pages\"). For ingesting a small site/section in one call.","operationId":"search_crawl","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = crawled pages with content; meta.baseUrl = start URL.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","nullable":true},"content":{"type":"string","nullable":true}},"required":["url","content"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"baseUrl":{"type":"string"}},"required":["baseUrl"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"search.crawl","x-2s-version":null,"x-2s-price":{"usd":0.048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.048000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Start URL to crawl."},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"Max pages (≤10)."},"maxDepth":{"type":"integer","minimum":1,"maximum":2,"description":"Max depth."},"instructions":{"type":"string","maxLength":300,"description":"Natural-language steering for which pages to follow."}},"required":["url"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/search/endpoints":{"get":{"tags":["search"],"summary":"Find the right 2s endpoint for a task using natural language.","description":"Find the right 2s endpoint for a task using natural language. Pass q (e.g. 'check if a domain can be spoofed', 'is this CVE being exploited', 'screen a company for sanctions', 'decode a VIN') and get back the catalog's most relevant endpoints, ranked, each with its id, API path, method, group, description, and price. Deterministic keyword + synonym matching over the live endpoint registry (no LLM, no external calls) — a self-routing index so an agent (or its planner) can discover which paid call answers a question instead of reading the whole 290+ endpoint catalog. Returns the path you then call directly.","operationId":"search_endpoints","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked matching endpoints (call the .path directly); meta.total = total matches.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"path":{"type":"string"},"method":{"type":"string"},"group":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"priceUsd":{"type":"number"},"score":{"type":"number"}},"required":["id","path","method","group","name","description","priceUsd","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string"},"total":{"type":"integer"}},"required":["query","total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"search.endpoints","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/search/extract":{"post":{"tags":["search"],"summary":"Extract clean, LLM-ready content from up to 5 URLs in one call.","description":"Extract clean, LLM-ready content from up to 5 URLs in one call. POST { urls[], depth? }. Returns the main text content of each page (JS-rendered, boilerplate stripped) plus a list of any URLs that failed. For feeding web pages to an agent without running your own headless browser.","operationId":"search_extract","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = extracted pages; meta.failed = URLs that could not be extracted.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","nullable":true},"content":{"type":"string","nullable":true}},"required":["url","content"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"failed":{"type":"array","items":{}}},"required":["failed"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"search.extract","x-2s-version":null,"x-2s-price":{"usd":0.018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048},"minItems":1,"maxItems":5,"description":"1-5 URLs to extract."},"depth":{"type":"string","enum":["basic","advanced"],"description":"Depth."}},"required":["urls"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/search/web":{"get":{"tags":["search"],"summary":"Live web search. Returns ranked results with title, URL...","description":"Live web search. Returns ranked results with title, URL, snippet description, site name, and page age — fresh information past any model training cutoff. Supports count (1-20), offset for paging, country (2-letter, e.g. US), freshness (pd=past day, pw=past week, pm=past month, py=past year, or a YYYY-MM-DDtoYYYY-MM-DD range), and safesearch (off/moderate/strict). Use for current events, fact verification, finding documentation, and research. Independent search index. For news-specific results with sources and timestamps see /api/news/search.","operationId":"search_web","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked live web results (title, url, snippet, site, age); total = null (Brave reports no count); meta.query echoes the search, meta.moreAvailable signals another offset page.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string","nullable":true},"siteName":{"type":"string","nullable":true},"age":{"type":"string","nullable":true,"description":"Relative page age when known, e.g. \"2 days ago\"."},"language":{"type":"string","nullable":true}},"required":["title","url","description","siteName","age","language"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"string"},"moreAvailable":{"type":"boolean","description":"True when another offset page exists."}},"required":["query","moreAvailable"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"search.web","x-2s-version":null,"x-2s-price":{"usd":0.009},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.009000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string","minLength":1,"maxLength":400}},{"name":"count","in":"query","required":false,"description":"Count.","schema":{"type":"integer","minimum":1,"maximum":20,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":9,"default":0}},{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^[a-zA-Z]{2}$"}},{"name":"freshness","in":"query","required":false,"description":"Freshness.","schema":{"type":"string","pattern":"^(pd|pw|pm|py|\\d{4}-\\d{2}-\\d{2}to\\d{4}-\\d{2}-\\d{2})$"}},{"name":"safesearch","in":"query","required":false,"description":"Safesearch.","schema":{"type":"string","enum":["off","moderate","strict"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/attack":{"get":{"tags":["security"],"summary":"Authoritative MITRE ATT&CK (Enterprise) technique lookup.","description":"Authoritative MITRE ATT&CK (Enterprise) technique lookup. Pass id (e.g. T1059 or sub-technique T1059.001) for the canonical technique — name, tactics (kill-chain phases), description, platforms, sub-technique flag + parent, mitigations, and detection guidance — or query for a keyword search returning ranked techniques. Bundled current ATT&CK matrix (~700 techniques), zero external calls. Agents cite T-numbers and tactic names that must be exact; this returns version-pinned, citeable data instead of hallucinated IDs. For threat modeling, detection engineering, and report enrichment.","operationId":"security_attack","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items=[{mode:lookup,item}] or search results.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.attack","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":false,"description":"Unique identifier of the record to fetch.","schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/capec":{"get":{"tags":["security"],"summary":"Authoritative MITRE CAPEC (Common Attack Pattern...","description":"Authoritative MITRE CAPEC (Common Attack Pattern Enumeration) lookup. Pass id (e.g. CAPEC-66, or just 66) for the canonical attack pattern — name, abstraction, description, typical likelihood + severity, mapped CWE weaknesses (with names), and related patterns (with names) — or query for a keyword search. Bundled catalog (~615 patterns), zero external calls. The attacker's-eye complement to security.cwe (the defender's weakness view) — the CAPEC↔CWE cross-links let an agent pivot between how an attack works and the weakness it exploits, with exact citeable IDs.","operationId":"security_capec","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items=[{mode:lookup,item}] or search results.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.capec","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":false,"description":"Unique identifier of the record to fetch.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/cve":{"get":{"tags":["security"],"summary":"Look up a CVE by id (e.g.","description":"Look up a CVE by id (e.g. CVE-2021-44228) across three authoritative vulnerability feeds in one call. Query: cve (CVE-YYYY-NNNN). Returns the canonical record — description, CVSS base score + severity + vector, CWE weakness ids, published/modified dates, reference links — plus whether it is on the US CISA Known Exploited Vulnerabilities catalog (with remediation due date and known-ransomware flag) and its EPSS exploit-probability score and percentile. The exploited and EPSS sections report independently, so one feed being unavailable does not fail the call. 404 if the CVE id is unknown. For triage, prioritization, and anti-hallucination on vulnerability claims.","operationId":"security_cve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"cve":{"type":"string"},"published":{"type":"string","nullable":true},"lastModified":{"type":"string","nullable":true},"vulnStatus":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"cvss":{"type":"object","additionalProperties":{},"nullable":true},"cwes":{"type":"array","items":{"type":"string"}},"references":{"type":"array","items":{"type":"object","additionalProperties":{}}},"knownExploited":{"type":"object","additionalProperties":{}},"knownExploitedError":{"type":"string","nullable":true},"epss":{"type":"object","additionalProperties":{},"nullable":true},"epssError":{"type":"string","nullable":true},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["cve","published","lastModified","vulnStatus","description","cvss","cwes","references","knownExploited","knownExploitedError","epss","epssError","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.cve","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"cve","in":"query","required":true,"description":"CVE identifier in the form CVE-YYYY-NNNN (e.g. CVE-2021-44228).","schema":{"type":"string","minLength":6,"maxLength":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/cve-changes":{"get":{"tags":["security"],"summary":"CVE change feed - the CVE records MODIFIED within a time...","description":"CVE change feed — the CVE records MODIFIED within a time window, so an agent can incrementally maintain a vulnerability view instead of re-scanning. Pass since (YYYY-MM-DD or ISO datetime); until defaults to now (window must be ≤ 120 days, the NVD limit). Optionally narrow by keyword (product/text) or cpe (exact CPE). Returns each changed CVE with its id, published + lastModified timestamps, current vulnStatus (e.g. Modified, Analyzed, Rejected), best-available CVSS score/severity, description, and kevListed — whether it is now on the CISA Known-Exploited Vulnerabilities catalog (the high-signal flag for a poller). Newest modification first. Sourced live from NVD (NIST) + CISA KEV, free/keyless. Pair with security.cve for full per-CVE detail.","operationId":"security_cve-changes","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = CVEs modified in the window (newest first, KEV-flagged); meta.window + total.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"published":{"type":"string","nullable":true},"lastModified":{"type":"string","nullable":true},"vulnStatus":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"cvss":{"type":"object","additionalProperties":{},"nullable":true},"kevListed":{"type":"boolean"}},"required":["id","published","lastModified","vulnStatus","description","cvss","kevListed"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"window":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"}},"required":["since","until"],"additionalProperties":false},"total":{"type":"integer"}},"required":["window","total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.cve-changes","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"since","in":"query","required":true,"description":"Since.","schema":{"type":"string","minLength":8,"maxLength":30}},{"name":"until","in":"query","required":false,"description":"Until.","schema":{"type":"string","minLength":8,"maxLength":30}},{"name":"keyword","in":"query","required":false,"description":"Keyword.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"cpe","in":"query","required":false,"description":"Cpe.","schema":{"type":"string","minLength":3,"maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/cve-search":{"get":{"tags":["security"],"summary":"Find vulnerabilities affecting a product by searching the...","description":"Find vulnerabilities affecting a product by searching the NIST National Vulnerability Database. Pass product (free-text keyword, e.g. \"apache log4j\", \"openssl\", \"wordpress plugin contact-form-7\") or cpe (an exact CPE 2.3 name, e.g. cpe:2.3:a:apache:log4j:2.14.1:*:*:*:*:*:*:*). Returns matching CVEs newest-first, each with its id, description, CVSS base score/severity/vector, and dates. Optional limit (1–50). For \"what CVEs affect X\" / surveying a product's vulnerability history — distinct from security.cve, which resolves a single CVE id across NVD + CISA KEV + EPSS. Free, keyless.","operationId":"security_cve-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching CVEs (newest first); meta.total = full match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string","nullable":true},"cvss":{"type":"object","additionalProperties":{},"nullable":true,"description":"Best-available CVSS (base score, severity, vector)."},"published":{"type":"string","nullable":true},"lastModified":{"type":"string","nullable":true}},"required":["id","description","cvss","published","lastModified"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total":{"type":"integer"},"query":{"type":"string"}},"required":["total","query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.cve-search","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"product","in":"query","required":false,"description":"Free-text product/keyword (e.g. \"apache log4j\").","schema":{"type":"string","minLength":2,"maxLength":200}},{"name":"cpe","in":"query","required":false,"description":"Exact CPE 2.3 name (e.g. cpe:2.3:a:apache:log4j:2.14.1:*:*:*:*:*:*:*).","schema":{"type":"string","minLength":5,"maxLength":300}},{"name":"limit","in":"query","required":false,"description":"Max CVEs to return (1–50, default 20).","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/cwe":{"get":{"tags":["security"],"summary":"Authoritative MITRE CWE (Common Weakness Enumeration) lookup.","description":"Authoritative MITRE CWE (Common Weakness Enumeration) lookup. Pass id (e.g. CWE-79, or just 79) for the canonical weakness — name, abstraction, description, extended description, ChildOf/ParentOf relationships (with names), and mapped CAPEC attack patterns (with names) — or query for a keyword search returning ranked matches. Bundled catalog (~970 weaknesses), zero external calls. Agents hallucinate CWE IDs and names constantly; this returns exact, citeable, version-pinned data. Pairs with security.cve (which returns CWE ids) and security.capec.","operationId":"security_cwe","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items=[{mode:lookup,item}] or search results.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.cwe","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":false,"description":"Unique identifier of the record to fetch.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/exploit-availability":{"get":{"tags":["security"],"summary":"Does public exploit code exist for a CVE, and where?","description":"Does public exploit code exist for a CVE, and where? Pass cve (e.g. CVE-2021-44228). Returns hasPublicExploit, the count, hasMetasploitModule and hasVerifiedExploit flags, and the Exploit-DB entries (id, description, type, platform, date, verified, Metasploit flag, link). Bundled inverted index from the Exploit-DB archive (~25k CVEs). This is the triage signal BEYOND security.cve's KEV (exploited in the wild) + EPSS (exploit probability): is the vulnerability actually weaponized with available code? Use the trio together to decide how urgently to patch. Absence is not proof no exploit exists (private/other archives not covered).","operationId":"security_exploit-availability","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [exploit-availability result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"cve":{"type":"string"},"hasPublicExploit":{"type":"boolean"},"exploitCount":{"type":"integer"},"hasMetasploitModule":{"type":"boolean"},"hasVerifiedExploit":{"type":"boolean"},"exploits":{"type":"array","items":{"type":"object","properties":{"edbId":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"platform":{"type":"string"},"date":{"type":"string"},"verified":{"type":"boolean"},"metasploit":{"type":"boolean"},"url":{"type":"string"}},"required":["edbId","description","type","platform","date","verified","metasploit","url"],"additionalProperties":false}},"note":{"type":"string"}},"required":["cve","hasPublicExploit","exploitCount","hasMetasploitModule","hasVerifiedExploit","exploits","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.exploit-availability","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"cve","in":"query","required":true,"description":"CVE.","schema":{"type":"string","minLength":6,"maxLength":30}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/http-headers":{"get":{"tags":["security"],"summary":"Fetch a URL and grade its HTTP security headers.","description":"Fetch a URL and grade its HTTP security headers. Pass url (scheme optional — defaults to https). Returns an overall letter grade + score, the list of present/missing headers, and a per-header analysis with the live value and specific issues for: Strict-Transport-Security (HSTS max-age/includeSubDomains), Content-Security-Policy (flags 'unsafe-inline'/'unsafe-eval'/missing default-src), X-Frame-Options or CSP frame-ancestors (clickjacking), X-Content-Type-Options (nosniff), Referrer-Policy, Permissions-Policy, and Cross-Origin-Opener/Resource-Policy. Also flags Server/X-Powered-By info disclosure. Analyzed from the target's LIVE response headers through an SSRF-guarded fetch (private/loopback targets refused) — an LLM cannot see a site's current headers. For web-app security review, vendor assessment, and CI gates.","operationId":"security_http-headers","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [header report with grade + per-header analysis]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"finalUrl":{"type":"string"},"status":{"type":"integer"},"grade":{"type":"string"},"score":{"type":"number"},"maxScore":{"type":"number"},"present":{"type":"array","items":{"type":"string"}},"missing":{"type":"array","items":{"type":"string"}},"headers":{"type":"array","items":{"type":"object","properties":{"header":{"type":"string"},"present":{"type":"boolean"},"value":{"type":"string","nullable":true},"weight":{"type":"number"},"issues":{"type":"array","items":{"type":"string"}}},"required":["header","present","value","weight","issues"],"additionalProperties":false}},"infoDisclosure":{"type":"object","properties":{"server":{"type":"string","nullable":true},"xPoweredBy":{"type":"string","nullable":true}},"required":["server","xPoweredBy"],"additionalProperties":false},"note":{"type":"string"}},"required":["url","finalUrl","status","grade","score","maxScore","present","missing","headers","infoDisclosure","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.http-headers","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to process.","schema":{"type":"string","minLength":3,"maxLength":2048}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/ics-advisories":{"get":{"tags":["security"],"summary":"CISA Industrial Control Systems (ICS) advisories...","description":"CISA Industrial Control Systems (ICS) advisories — vulnerabilities in operational-technology gear (SCADA, PLCs, building automation, energy/manufacturing/transportation systems, and medical devices), from the official CISA advisory RSS feed. Each item is normalized to the canonical advisory id (ICSA-YY-DDD-NN, or ICSMA-YY-DDD-NN for medical), title, link to the full advisory, publication date (ISO), and a plain-text summary. Optionally filter by keyword (e.g. a vendor like \"Siemens\") and cap the count. Returned newest-first. Free, public-domain (CISA).","operationId":"security_ics-advisories","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ICS advisories (newest-first, sliced to limit); total = matching advisories; meta carries the query.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"advisoryId":{"type":"string","nullable":true},"title":{"type":"string"},"link":{"type":"string","nullable":true},"published":{"type":"string","nullable":true},"summary":{"type":"string"}},"required":["advisoryId","title","link","published","summary"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.ics-advisories","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Case-insensitive keyword filter on title + summary, e.g. a vendor like \"Siemens\".","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Max advisories to return (1-100, default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/ioc-reputation":{"get":{"tags":["security"],"summary":"Threat-intelligence reputation for an indicator of...","description":"Threat-intelligence reputation for an indicator of compromise (IOC) — pass ioc as an IP, domain, URL, or file hash (md5/sha1/sha256) and the type is auto-detected. Returns a malicious boolean plus a per-source breakdown: abuse.ch ThreatFox (IOC→malware/threat mapping), URLhaus (malicious URLs on a host/URL), MalwareBazaar (known malware samples by hash), Feodo Tracker (active botnet C2 IPs), Tor exit-node membership, and Spamhaus DROP (hijacked/criminal netblocks). Each source reports listed + a detail. Sourced from live, hourly-rotating threat feeds an LLM cannot know — a ground-truth liveness check for SOC alert triage, log enrichment, and blocklist decisions. Absence of a match is not proof of safety.","operationId":"security_ioc-reputation","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [IOC reputation verdict with per-source breakdown]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ioc":{"type":"string"},"type":{"type":"string","description":"ip | domain | url | hash"},"malicious":{"type":"boolean"},"sourcesChecked":{"type":"integer"},"hits":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"listed":{"type":"boolean"},"detail":{"type":"string","nullable":true}},"required":["source","listed","detail"],"additionalProperties":false}},"note":{"type":"string"}},"required":["ioc","type","malicious","sourcesChecked","hits","results","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.ioc-reputation","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ioc","in":"query","required":true,"description":"Ioc.","schema":{"type":"string","minLength":3,"maxLength":2048}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/ip-abuse":{"get":{"tags":["security"],"summary":"AbuseIPDB abuse report for a single IP - the crowd-sourced...","description":"AbuseIPDB abuse report for a single IP — the crowd-sourced abuse-confidence score (0-100) the fail2ban / SSH-scanner / web-attack ecosystem reports into. Pass ip (IPv4 or IPv6). Returns abuseConfidenceScore, totalReports, numDistinctUsers, lastReportedAt, usageType (e.g. Data Center / Residential), ISP, domain, hostnames, isTor, isWhitelisted, and country. Set verbose=true for the individual report records (categories + reporter country). Optional maxAgeInDays (1-365, default 90) bounds the reporting window. Live crowd data an LLM cannot know — SOC alert triage, login-abuse blocking, and firewall decisions.","operationId":"security_ip-abuse","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [AbuseIPDB check for the IP]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ipAddress":{"type":"string","nullable":true},"isPublic":{"type":"boolean","nullable":true},"ipVersion":{"type":"integer","nullable":true},"isWhitelisted":{"type":"boolean","nullable":true},"abuseConfidenceScore":{"type":"integer","nullable":true},"countryCode":{"type":"string","nullable":true},"usageType":{"type":"string","nullable":true},"isp":{"type":"string","nullable":true},"domain":{"type":"string","nullable":true},"hostnames":{"type":"array","items":{"type":"string"}},"isTor":{"type":"boolean","nullable":true},"totalReports":{"type":"integer","nullable":true},"numDistinctUsers":{"type":"integer","nullable":true},"lastReportedAt":{"type":"string","nullable":true},"reports":{"type":"array","items":{"type":"object","properties":{"reportedAt":{"type":"string","nullable":true},"comment":{"type":"string","nullable":true},"categories":{"type":"array","items":{"type":"integer"}},"reporterId":{"type":"integer","nullable":true},"reporterCountryCode":{"type":"string","nullable":true}},"required":["reportedAt","comment","categories","reporterId","reporterCountryCode"],"additionalProperties":false}}},"required":["ipAddress","isPublic","ipVersion","isWhitelisted","abuseConfidenceScore","countryCode","usageType","isp","domain","hostnames","isTor","totalReports","numDistinctUsers","lastReportedAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.ip-abuse","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ip","in":"query","required":true,"description":"IP.","schema":{"type":"string","minLength":3,"maxLength":45}},{"name":"maxAgeInDays","in":"query","required":false,"description":"Max age in days.","schema":{"type":"integer","minimum":1,"maximum":365,"default":90}},{"name":"verbose","in":"query","required":false,"description":"Verbose.","schema":{"type":"boolean","default":false}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/ip-blacklist":{"get":{"tags":["security"],"summary":"AbuseIPDB bulk blacklist - the most-reported abusive IPs...","description":"AbuseIPDB bulk blacklist — the most-reported abusive IPs above a confidence threshold, the canonical fail2ban / firewall block-feed. Returns ipAddress, countryCode, abuseConfidenceScore, and lastReportedAt for each entry, plus the list's generatedAt timestamp. Tune confidenceMinimum (25-100, default 90), limit (1-10000, default 100), ipVersion (4 or 6), and onlyCountries / exceptCountries (comma-separated ISO-2). Live crowd-sourced threat feed for populating drop lists, WAF rules, and edge blocklists.","operationId":"security_ip-blacklist","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = blacklist entries; total = count; meta = {generatedAt, confidenceMinimum, count}.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ipAddress":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"abuseConfidenceScore":{"type":"integer","nullable":true},"lastReportedAt":{"type":"string","nullable":true}},"required":["ipAddress","countryCode","abuseConfidenceScore","lastReportedAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"generatedAt":{"type":"string","nullable":true},"confidenceMinimum":{"type":"integer"},"count":{"type":"integer"}},"required":["generatedAt","confidenceMinimum","count"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.ip-blacklist","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"confidenceMinimum","in":"query","required":false,"description":"Confidence minimum.","schema":{"type":"integer","minimum":25,"maximum":100,"default":90}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":100}},{"name":"ipVersion","in":"query","required":false,"description":"IP version.","schema":{"type":"integer"}},{"name":"onlyCountries","in":"query","required":false,"description":"Only countries.","schema":{"type":"string","maxLength":400}},{"name":"exceptCountries","in":"query","required":false,"description":"Except countries.","schema":{"type":"string","maxLength":400}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/ip-block":{"get":{"tags":["security"],"summary":"AbuseIPDB subnet (CIDR) check - which IPs inside a network...","description":"AbuseIPDB subnet (CIDR) check — which IPs inside a network block have been reported for abuse. Pass network as a CIDR (e.g. 118.25.0.0/24; AbuseIPDB supports up to /16 for IPv4, /112 for IPv6). Returns the block metadata (network/netmask/min-max addresses, possible hosts, address-space description) plus reportedAddress: each flagged IP with numReports, abuseConfidenceScore, mostRecentReport, and country. Optional maxAgeInDays (1-365, default 30) and limit. Use to vet a hosting range, score a customer's netblock, or sweep your own allocation.","operationId":"security_ip-block","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [block summary with reportedAddress list]; total = 1; meta = {network}.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"networkAddress":{"type":"string","nullable":true},"netmask":{"type":"string","nullable":true},"minAddress":{"type":"string","nullable":true},"maxAddress":{"type":"string","nullable":true},"numPossibleHosts":{"type":"integer","nullable":true},"addressSpaceDesc":{"type":"string","nullable":true},"reportedAddress":{"type":"array","items":{"type":"object","properties":{"ipAddress":{"type":"string","nullable":true},"numReports":{"type":"integer","nullable":true},"mostRecentReport":{"type":"string","nullable":true},"abuseConfidenceScore":{"type":"integer","nullable":true},"countryCode":{"type":"string","nullable":true}},"required":["ipAddress","numReports","mostRecentReport","abuseConfidenceScore","countryCode"],"additionalProperties":false}}},"required":["networkAddress","netmask","minAddress","maxAddress","numPossibleHosts","addressSpaceDesc","reportedAddress"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"network":{"type":"string"}},"required":["network"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.ip-block","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network.","schema":{"type":"string","minLength":5,"maxLength":50}},{"name":"maxAgeInDays","in":"query","required":false,"description":"Max age in days.","schema":{"type":"integer","minimum":1,"maximum":365,"default":30}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/ip-reputation":{"get":{"tags":["security"],"summary":"Multi-source IP reputation with one combined authority...","description":"Multi-source IP reputation with one combined authority score (0-100). Polls four independent reputation sources in parallel and blends them: AbuseIPDB (crowd-sourced abuse confidence), abuse.ch threat-lists (Feodo botnet C2 + ThreatFox + Spamhaus DROP + Tor exit nodes), blocklist.de (fail2ban attack-report network), and StopForumSpam. Returns combinedScore, a verdict (clean / low / suspicious / malicious), which sources flagged it, per-source opinions (score + weight + detail), and enrichment (ISP, usage type, country, ASN, Tor). An authoritative threat-list hit (botnet/malware/hijacked netblock) hard-floors the verdict at malicious. Per-source isolation: a down feed degrades that opinion only. The one-call answer for 'should I trust this IP?' instead of trusting a single feed.","operationId":"security_ip-reputation","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [combined multi-source IP reputation]; total = 1; meta = {verdict, combinedScore, sourcesAvailable, sourcesFlagged, partial}.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"ipVersion":{"type":"integer"},"combinedScore":{"type":"integer"},"verdict":{"type":"string","enum":["clean","low","suspicious","malicious"]},"flaggedBy":{"type":"array","items":{"type":"string"}},"sourcesAvailable":{"type":"integer"},"sourcesFlagged":{"type":"integer"},"enrichment":{"type":"object","properties":{"isp":{"type":"string","nullable":true},"usageType":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"domain":{"type":"string","nullable":true},"asn":{"type":"integer","nullable":true},"isTor":{"type":"boolean","nullable":true}},"required":["isp","usageType","countryCode","domain","asn","isTor"],"additionalProperties":false},"opinions":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"available":{"type":"boolean"},"malicious":{"type":"boolean"},"score":{"type":"number","nullable":true},"weight":{"type":"number"},"detail":{"type":"string","nullable":true}},"required":["source","available","malicious","score","weight","detail"],"additionalProperties":false}},"partial":{"type":"array","items":{"type":"string"}}},"required":["ip","ipVersion","combinedScore","verdict","flaggedBy","sourcesAvailable","sourcesFlagged","enrichment","opinions","partial"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"verdict":{"type":"string"},"combinedScore":{"type":"integer"},"sourcesAvailable":{"type":"integer"},"sourcesFlagged":{"type":"integer"},"partial":{"type":"array","items":{"type":"string"}}},"required":["verdict","combinedScore","sourcesAvailable","sourcesFlagged","partial"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.ip-reputation","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ip","in":"query","required":true,"description":"IP.","schema":{"type":"string","minLength":3,"maxLength":45}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/package":{"get":{"tags":["security"],"summary":"Security and provenance for an open-source package...","description":"Security and provenance for an open-source package, composed live from three authoritative sources in one call. Pass ecosystem (npm, pypi, go, maven, cargo, nuget) + name (+ optional version; defaults to latest). Returns: known vulnerabilities from OSV (osv.dev — aggregates GitHub Security Advisories, PyPA, RustSec, Go vuln DB, etc.) each with its id, CVE aliases, summary, severity, and references; the resolved license and deprecation status (deps.dev); and the source repo's OpenSSF Scorecard health score (overall + per-check) plus stars/forks/open-issues. All live — newly-disclosed advisories appear within hours. Distinct from registry.npm-lookup / pypi-lookup (metadata only): this answers \"is this dependency safe to add, what license does it carry, and how well-maintained is it.\"","operationId":"security_package","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items[0] = the package security composite (vulns + license + scorecard).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"package":{"type":"object","properties":{"ecosystem":{"type":"string"},"name":{"type":"string"},"version":{"type":"string","nullable":true}},"required":["ecosystem","name","version"],"additionalProperties":false},"vulnerabilityCount":{"type":"integer"},"vulnerabilities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true,"description":"Advisory id (e.g. GHSA-…)."},"aliases":{"type":"array","items":{"type":"string"},"description":"Aliases incl. CVE ids."},"summary":{"type":"string","nullable":true},"severity":{"type":"string","nullable":true,"description":"Severity label or CVSS vector."},"published":{"type":"string","nullable":true},"modified":{"type":"string","nullable":true},"references":{"type":"array","items":{"type":"string"}}},"required":["id","aliases","summary","severity","published","modified","references"],"additionalProperties":false}},"license":{"type":"string","nullable":true},"deprecated":{"type":"boolean"},"deprecatedReason":{"type":"string","nullable":true},"publishedAt":{"type":"string","nullable":true},"sourceRepo":{"type":"string","nullable":true},"scorecard":{"type":"object","properties":{"overallScore":{"type":"number","nullable":true},"date":{"type":"string","nullable":true},"checks":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"score":{"type":"number","nullable":true}},"required":["name","score"],"additionalProperties":false}}},"required":["overallScore","date","checks"],"additionalProperties":false,"nullable":true,"description":"OpenSSF Scorecard repo-health score (0–10)."},"repo":{"type":"object","properties":{"stars":{"type":"number","nullable":true},"forks":{"type":"number","nullable":true},"openIssues":{"type":"number","nullable":true}},"required":["stars","forks","openIssues"],"additionalProperties":false,"nullable":true},"errors":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-source errors (a degraded source does not fail the call)."}},"required":["package","vulnerabilityCount","vulnerabilities","license","deprecated","deprecatedReason","publishedAt","sourceRepo","scorecard","repo"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"sources":{"type":"array","items":{"type":"string"}}},"required":["sources"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.package","x-2s-version":null,"x-2s-price":{"usd":0.00216},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002160"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ecosystem","in":"query","required":true,"description":"Package ecosystem: npm, pypi, go, maven, cargo, or nuget.","schema":{"type":"string","enum":["npm","pypi","go","maven","cargo","nuget"]}},{"name":"name","in":"query","required":true,"description":"Package name (e.g. lodash, requests, github.com/gin-gonic/gin).","schema":{"type":"string","minLength":1,"maxLength":214}},{"name":"version","in":"query","required":false,"description":"Specific version (defaults to the latest/default version).","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/security/password-exposure":{"post":{"tags":["security"],"summary":"Check whether a password has appeared in known data...","description":"Check whether a password has appeared in known data breaches, using Have I Been Pwned's Pwned Passwords k-anonymity model — only the first 5 characters of the password's SHA-1 hash are ever sent upstream, so the service never sees the password or the full hash. POST { password } (hashed server-side) OR { sha1 } (the 40-hex SHA-1, for true zero-knowledge — hash it client-side and send only that). Returns breached (boolean), count (how many times it appears in breach corpora), and the sha1Prefix used. Backed by a 900M+ breached-credential corpus an LLM cannot know. For signup/password-policy enforcement and credential-hygiene checks. Absence is not a guarantee of strength.","operationId":"security_password-exposure","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [exposure result]; total = 1. Only the 5-char SHA-1 prefix is sent upstream.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"breached":{"type":"boolean"},"count":{"type":"integer"},"sha1Prefix":{"type":"string"},"inputMode":{"type":"string"},"note":{"type":"string"}},"required":["breached","count","sha1Prefix","inputMode","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"security.password-exposure","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","minLength":1,"maxLength":512,"description":"Password."},"sha1":{"type":"string","minLength":40,"maxLength":40,"description":"Sha1."}},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/soil/hardiness-zone":{"get":{"tags":["soil"],"summary":"USDA Plant Hardiness Zone for a US ZIP code - the standard...","description":"USDA Plant Hardiness Zone for a US ZIP code — the standard planting zone (e.g. \"9b\") plus its average annual minimum-temperature range (°F) and the ZIP centroid. Keyless, public-domain (USDA PHZM). The \"what grows where\" primitive for gardening, landscaping, nursery, and agronomy agents.","operationId":"soil_hardiness-zone","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one hardiness reading for the ZIP]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"zip":{"type":"string"},"zone":{"type":"string","nullable":true},"temperatureRangeF":{"type":"string","nullable":true},"lat":{"type":"number","nullable":true},"lon":{"type":"number","nullable":true}},"required":["zip","zone","temperatureRangeF","lat","lon"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"soil.hardiness-zone","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"zip","in":"query","required":true,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/soil/profile":{"get":{"tags":["soil"],"summary":"Ground-truth soil profile for any US latitude/longitude...","description":"Ground-truth soil profile for any US latitude/longitude from the USDA-NRCS SSURGO survey (Soil Data Access). Returns the soil map unit plus its component soil types ranked by composition percent, each with taxonomic order/class, drainage class, hydrologic group, and representative slope. Keyless, public-domain. Use for agronomy, land assessment, hydrology, septic/foundation suitability, and crop-fit reasoning. Coordinates over water or outside surveyed areas return an empty component list.","operationId":"soil_profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one soil profile for the point] (map unit + ranked components); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"mapUnitKey":{"type":"string","nullable":true},"mapUnitName":{"type":"string","nullable":true},"components":{"type":"array","items":{"type":"object","properties":{"componentName":{"type":"string","nullable":true},"componentPercent":{"type":"number","nullable":true},"taxonomicOrder":{"type":"string","nullable":true},"taxonomicClass":{"type":"string","nullable":true},"drainageClass":{"type":"string","nullable":true},"hydrologicGroup":{"type":"string","nullable":true},"slopePct":{"type":"number","nullable":true}},"required":["componentName","componentPercent","taxonomicOrder","taxonomicClass","drainageClass","hydrologicGroup","slopePct"],"additionalProperties":false}}},"required":["lat","lon","mapUnitKey","mapUnitName","components"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"soil.profile","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/body":{"get":{"tags":["space"],"summary":"Look up any asteroid or comet in NASA JPL's Small-Body...","description":"Look up any asteroid or comet in NASA JPL's Small-Body Database by designation, number, or name (e.g. \"433\", \"Eros\", \"433 Eros\", \"1P/Halley\", \"2024 YR4\"). Returns full name + kind + orbit class (e.g. Amor, Apollo, Jupiter-family comet), NEO and potentially-hazardous-asteroid flags, physical params (absolute magnitude H, diameter, extent, rotation period, albedo, density, spectral type), and orbital elements (eccentricity, semi-major axis, perihelion/aphelion, inclination, period, Earth MOID, observation arc). Astronomy, planetary-defense, and mission-planning research. Public-domain NASA/JPL data; for a body's near-Earth close approaches see /api/space/close-approaches.","operationId":"space_body","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ body }] (one small-body: identity, NEO/PHA flags, orbit class, physical + orbital params); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"body":{"type":"object","properties":{"fullName":{"type":"string","nullable":true},"shortName":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"neo":{"type":"boolean","nullable":true},"pha":{"type":"boolean","nullable":true},"orbitClass":{"type":"object","properties":{"code":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}},"required":["code","name"],"additionalProperties":false,"nullable":true},"physical":{"type":"object","additionalProperties":{}},"orbit":{"type":"object","additionalProperties":{}}},"required":["fullName","shortName","kind","neo","pha","orbitClass","physical","orbit"],"additionalProperties":false}},"required":["body"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.body","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/close-approaches":{"get":{"tags":["space"],"summary":"List near-Earth asteroid/comet close approaches to Earth...","description":"List near-Earth asteroid/comet close approaches to Earth within a date window and maximum distance, from NASA JPL's Close-Approach Data API. Filter by dateMin / dateMax (YYYY-MM-DD) and distMaxAu (max approach distance in AU; default 0.05 AU ≈ 19.5 lunar distances). Each approach: object designation, close-approach date (UTC), nominal + minimum distance in AU and lunar distances, relative velocity (km/s), and absolute magnitude H (a size proxy). Sorted nearest-first. Planetary-defense, observation planning, and \"what's passing by this month\" queries. Public-domain NASA/JPL data; for full physical/orbital params of a listed object see /api/space/body.","operationId":"space_close-approaches","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = close approaches (object, date, distance in AU + lunar distances, relative velocity, H); total = upstream match count in the window (before the limit cap).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"designation":{"type":"string","nullable":true},"date":{"type":"string","nullable":true},"julianDate":{"type":"number","nullable":true},"distanceAu":{"type":"number","nullable":true},"distanceMinAu":{"type":"number","nullable":true},"distanceLd":{"type":"number","nullable":true},"relativeVelocityKmS":{"type":"number","nullable":true},"absoluteMagnitudeH":{"type":"number","nullable":true}},"required":["designation","date","julianDate","distanceAu","distanceMinAu","distanceLd","relativeVelocityKmS","absoluteMagnitudeH"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.close-approaches","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"dateMin","in":"query","required":false,"description":"Date min.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dateMax","in":"query","required":false,"description":"Date max.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"distMaxAu","in":"query","required":false,"description":"Dist max au.","schema":{"type":"number","minimum":0.0001,"maximum":1,"default":0.05}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/exoplanet":{"get":{"tags":["space"],"summary":"Search confirmed exoplanets in the NASA Exoplanet Archive...","description":"Search confirmed exoplanets in the NASA Exoplanet Archive (~6,000, updated weekly — past any LLM training cutoff). Filter by name (planet, partial), hostStar (partial), discoveryYear, or method (e.g. \"Transit\", \"Radial Velocity\", \"Microlensing\"). Each planet: name, host star + how many stars/planets in the system, discovery method/year/facility, orbital period, semi-major axis, radius (Earth radii), mass (Earth masses), equilibrium temperature, insolation; host-star spectral type/temperature/radius/mass; distance in parsecs + light-years; and RA/dec. Astronomy, habitability research, science education. Public-domain NASA data.","operationId":"space_exoplanet","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matched confirmed exoplanets (name, host star, discovery, orbit, radius/mass, distance); total = null (the archive caps rows at limit with no true match total); meta.query echoes the filters.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"name":{"type":"string","nullable":true},"hostStar":{"type":"string","nullable":true},"discoveryYear":{"type":"number","nullable":true},"method":{"type":"string","nullable":true},"limit":{"type":"number"}},"required":["name","hostStar","discoveryYear","method","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.exoplanet","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":false,"description":"Name to search for.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"hostStar","in":"query","required":false,"description":"Host star.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"discoveryYear","in":"query","required":false,"description":"Discovery year.","schema":{"type":"integer","minimum":1989,"maximum":2030}},{"name":"method","in":"query","required":false,"description":"Method.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/launches":{"get":{"tags":["space"],"summary":"Upcoming or recent orbital rocket launches from The Space...","description":"Upcoming or recent orbital rocket launches from The Space Devs' Launch Library 2 — the live manifest behind most launch-tracking apps. `when`=upcoming (default) or previous. Optional `search` filters by rocket, provider, or mission text (e.g. \"Starship\", \"SpaceX\", \"Artemis\"). Each launch: name, status (Go/TBD/Success/Failure), NET launch time + window (UTC), launch provider, rocket configuration, pad + location, mission name/type/orbit/description, and whether a webcast is live. Real-time data agents can't get from training. Public CC-BY data (attribute The Space Devs).","operationId":"space_launches","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = launches (name, status, NET, provider, rocket, pad, mission); total = upstream match count (Launch Library `count`); meta.when echoes upcoming/previous.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"object","properties":{"abbrev":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["abbrev","description"],"additionalProperties":false,"nullable":true},"net":{"type":"string","nullable":true},"windowStart":{"type":"string","nullable":true},"windowEnd":{"type":"string","nullable":true},"provider":{"type":"string","nullable":true},"rocket":{"type":"string","nullable":true},"pad":{"type":"object","properties":{"name":{"type":"string","nullable":true},"location":{"type":"string","nullable":true}},"required":["name","location"],"additionalProperties":false,"nullable":true},"mission":{"type":"object","properties":{"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"orbit":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["name","type","orbit","description"],"additionalProperties":false,"nullable":true},"webcastLive":{"type":"boolean","nullable":true},"image":{"type":"string","nullable":true}},"required":["id","name","status","net","windowStart","windowEnd","provider","rocket","pad","mission","webcastLive","image"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"when":{"type":"string"}},"required":["when"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.launches","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"when","in":"query","required":false,"description":"When.","schema":{"type":"string","enum":["upcoming","previous"],"default":"upcoming"}},{"name":"search","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/observe":{"get":{"tags":["space"],"summary":"Compute where any asteroid or comet is in the sky and...","description":"Compute where any asteroid or comet is in the sky and whether you can see it. Give a body (designation/number/name, e.g. \"433 Eros\", \"Ceres\", \"2024 YR4\") and optionally your lat/lon and a time (ISO, default now). Returns the body's identity (NEO/PHA flags, orbit class, absolute magnitude H), its geocentric right ascension + declination, the constellation it's in, geocentric + heliocentric distance (AU), solar phase angle, and its apparent visual magnitude (IAU H-G model — how bright it appears now). With lat/lon it adds altitude/azimuth, whether it's above your horizon, a visible-now flag (up AND sky dark), and the best viewing window in the next 24 hours (when it's highest during darkness). Orbital position is computed locally from JPL elements — VALIDATED against JPL Horizons to <0.1 arcminute. Stargazing, astrophotography planning, occultation/observation prep. For the body's static physical + orbital params see /api/space/body.","operationId":"space_observe","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ body, at, position, observer }] (one observability snapshot; RA/Dec validated against JPL Horizons; observer block null without lat/lon); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"body":{"type":"object","properties":{"fullName":{"type":"string","nullable":true},"neo":{"type":"boolean","nullable":true},"pha":{"type":"boolean","nullable":true},"orbitClass":{"type":"string","nullable":true},"absoluteMagnitudeH":{"type":"number","nullable":true}},"required":["fullName","neo","pha","orbitClass","absoluteMagnitudeH"],"additionalProperties":false},"at":{"type":"string"},"position":{"type":"object","properties":{"rightAscensionHours":{"type":"number"},"declinationDeg":{"type":"number"},"constellation":{"type":"string","nullable":true},"geocentricDistanceAu":{"type":"number"},"heliocentricDistanceAu":{"type":"number"},"phaseAngleDeg":{"type":"number"},"apparentMagnitude":{"type":"number","nullable":true}},"required":["rightAscensionHours","declinationDeg","constellation","geocentricDistanceAu","heliocentricDistanceAu","phaseAngleDeg","apparentMagnitude"],"additionalProperties":false},"observer":{"type":"object","properties":{"altitudeDeg":{"type":"number"},"azimuthDeg":{"type":"number"},"aboveHorizon":{"type":"boolean"},"visibleNow":{"type":"boolean"},"bestViewing":{"type":"object","properties":{"at":{"type":"string"},"altitudeDeg":{"type":"number"}},"required":["at","altitudeDeg"],"additionalProperties":false,"nullable":true}},"required":["altitudeDeg","azimuthDeg","aboveHorizon","visibleNow","bestViewing"],"additionalProperties":false,"nullable":true}},"required":["body","at","position","observer"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.observe","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"body","in":"query","required":true,"description":"Body.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"lat","in":"query","required":false,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":false,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"altKm","in":"query","required":false,"description":"Alt km.","schema":{"type":"number","minimum":-0.5,"maximum":9}},{"name":"at","in":"query","required":false,"description":"At.","schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/satellite":{"get":{"tags":["space"],"summary":"Compute the current position of any cataloged...","description":"Compute the current position of any cataloged Earth-orbiting satellite by NORAD catalog number (e.g. 25544 = ISS, 20580 = Hubble), using fresh Celestrak orbital elements propagated with SGP4. Returns sub-point latitude/longitude, altitude (km), and speed (km/s) for the requested instant (default: now; pass `at` as an ISO timestamp for any time within a few days of the elements' epoch). Supply observer `lat`/`lon` (and optional altKm) to also get look angles — azimuth, elevation, slant range, and whether the satellite is above your horizon — for visual/antenna pointing. Satellite tracking, pass prediction, ground-station planning. Public-domain orbital data; physical/mission metadata is not included.","operationId":"space_satellite","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ position }] (one satellite sub-point + velocity + optional observer look angles); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"object","properties":{"noradId":{"type":"number"},"name":{"type":"string","nullable":true},"internationalDesignator":{"type":"string","nullable":true},"epoch":{"type":"string","nullable":true},"at":{"type":"string"},"geodetic":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"altitudeKm":{"type":"number"}},"required":["latitude","longitude","altitudeKm"],"additionalProperties":false},"velocityKmS":{"type":"number"},"look":{"type":"object","properties":{"azimuthDeg":{"type":"number"},"elevationDeg":{"type":"number"},"rangeKm":{"type":"number"},"aboveHorizon":{"type":"boolean"}},"required":["azimuthDeg","elevationDeg","rangeKm","aboveHorizon"],"additionalProperties":false,"nullable":true}},"required":["noradId","name","internationalDesignator","epoch","at","geodetic","velocityKmS","look"],"additionalProperties":false}},"required":["position"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.satellite","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"noradId","in":"query","required":true,"description":"Norad ID.","schema":{"type":"integer","minimum":1,"maximum":999999}},{"name":"lat","in":"query","required":false,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":false,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"altKm","in":"query","required":false,"description":"Alt km.","schema":{"type":"number","minimum":-0.5,"maximum":9}},{"name":"at","in":"query","required":false,"description":"At.","schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/satellites":{"get":{"tags":["space"],"summary":"Search the catalog of every cataloged Earth-orbiting object...","description":"Search the catalog of every cataloged Earth-orbiting object — ~69,000 satellites, rocket bodies, and debris tracked by US Space Force / 18 SDS (via CelesTrak SATCAT). Filter by name (q, e.g. \"starlink\"), owner/launching country (owner — code like US/PRC/CIS or a name like \"china\"), object type (type = payload | rocket body | debris | unknown), launch-year range (launchYearFrom/launchYearTo), international/COSPAR designator prefix (intlDesignator, e.g. \"2024-\"), on-orbit vs decayed (onOrbit), or exact NORAD number (noradId). Each result carries the NORAD id, name, international designator, object type, owner + resolved country, launch date + site, decay date (null = still in orbit), and orbital parameters (period, inclination, apogee, perigee). The envelope total is the full count matching your filter — so onOrbit=true&type=payload answers \"how many active satellites are up there\", and owner=PRC tells you who launched them. For a satellite's live sub-point position, pass its noradId to /api/space/satellite.","operationId":"space_satellites","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching catalog rows; total = full count matching the filter (use it for \"how many\" queries).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"noradId":{"type":"number"},"name":{"type":"string","nullable":true},"intlDesignator":{"type":"string","nullable":true},"objectType":{"type":"string","nullable":true},"opsStatus":{"type":"string","nullable":true},"owner":{"type":"string","nullable":true},"ownerName":{"type":"string","nullable":true},"launchDate":{"type":"string","nullable":true},"launchSite":{"type":"string","nullable":true},"decayDate":{"type":"string","nullable":true},"onOrbit":{"type":"boolean"},"orbit":{"type":"object","properties":{"periodMin":{"type":"number","nullable":true},"inclinationDeg":{"type":"number","nullable":true},"apogeeKm":{"type":"number","nullable":true},"perigeeKm":{"type":"number","nullable":true},"orbitType":{"type":"string","nullable":true}},"required":["periodMin","inclinationDeg","apogeeKm","perigeeKm","orbitType"],"additionalProperties":false},"rcsM2":{"type":"number","nullable":true}},"required":["noradId","name","intlDesignator","objectType","opsStatus","owner","ownerName","launchDate","launchSite","decayDate","onOrbit","orbit","rcsM2"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.satellites","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"owner","in":"query","required":false,"description":"Owner.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"type","in":"query","required":false,"description":"Filter results by type.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"noradId","in":"query","required":false,"description":"Norad ID.","schema":{"type":"integer","minimum":1,"maximum":999999}},{"name":"intlDesignator","in":"query","required":false,"description":"Intl designator.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"launchYearFrom","in":"query","required":false,"description":"Launch year from.","schema":{"type":"integer","minimum":1957,"maximum":2100}},{"name":"launchYearTo","in":"query","required":false,"description":"Launch year to.","schema":{"type":"integer","minimum":1957,"maximum":2100}},{"name":"onOrbit","in":"query","required":false,"description":"On orbit.","schema":{"type":"string","enum":["true","false"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/sky-tonight":{"get":{"tags":["space"],"summary":"Observer-local sky almanac for any lat/lon and time...","description":"Observer-local sky almanac for any lat/lon and time (default now). Returns the Sun's next rise/set + current altitude/azimuth; the Moon's rise/set, current alt/az, phase angle, phase name (New → Full → Waning Crescent), illuminated fraction, and next moon quarter; and for all seven non-Earth planets (Mercury→Neptune): altitude, azimuth, RA/dec, distance (AU), apparent magnitude, and whether each is currently above the horizon. Computed from first principles (astronomy-engine, sub-arcminute) — no external service, no key. Stargazing, astrophotography planning, 'what's up right now', is-it-dark-yet. `at` accepts any ISO timestamp.","operationId":"space_sky-tonight","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ sky }] (one observer-local almanac; the sun/moon/planets blocks live inside this single item); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"sky":{"type":"object","properties":{"at":{"type":"string"},"observer":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"altitudeM":{"type":"number"}},"required":["lat","lon","altitudeM"],"additionalProperties":false},"sun":{"type":"object","additionalProperties":{}},"moon":{"type":"object","additionalProperties":{}},"planets":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["at","observer","sun","moon","planets"],"additionalProperties":false}},"required":["sky"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.sky-tonight","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"altitudeM","in":"query","required":false,"description":"Altitude m.","schema":{"type":"number","minimum":-500,"maximum":9000,"default":0}},{"name":"at","in":"query","required":false,"description":"At.","schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/skywatch":{"get":{"tags":["space"],"summary":"One call what's notable in YOUR sky right now, for a lat/lon.","description":"One call → what's notable in YOUR sky right now, for a lat/lon. Synthesizes three sources: (1) the live almanac — sun up/down, moon phase + illumination, and which of the 7 naked-eye planets are currently above your horizon with their altitude/azimuth/magnitude; (2) near-Earth asteroid close approaches over the next 7 days (designation, date, distance in lunar distances); and (3) the ISS — its current sub-point, and whether it is above your horizon right now with look angles. Each section reports found/error independently. The \"is it dark, what's up, anything passing\" digest for stargazers and astrophotographers. For the raw almanac alone see /api/space/sky-tonight.","operationId":"space_skywatch","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"at":{"type":"string"},"observer":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"altitudeM":{"type":"number"}},"required":["lat","lon","altitudeM"],"additionalProperties":false},"sky":{"type":"object","properties":{"isDark":{"type":"boolean"},"sun":{"type":"object","additionalProperties":{}},"moon":{"type":"object","additionalProperties":{}},"planetsUp":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["isDark","sun","moon","planetsUp"],"additionalProperties":false},"closeApproaches":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number","nullable":true},"approaches":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","approaches"],"additionalProperties":false},"iss":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"aboveHorizon":{"type":"boolean","nullable":true},"geodetic":{"type":"object","additionalProperties":{},"nullable":true},"look":{"type":"object","additionalProperties":{},"nullable":true}},"required":["found","error","aboveHorizon","geodetic","look"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["at","observer","sky","closeApproaches","iss","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.skywatch","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"altitudeM","in":"query","required":false,"description":"Altitude m.","schema":{"type":"number","minimum":-500,"maximum":9000,"default":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/system":{"get":{"tags":["space"],"summary":"Profile a confirmed exoplanetary system by host-star name (e.g.","description":"Profile a confirmed exoplanetary system by host-star name (e.g. \"TRAPPIST-1\", \"Kepler-90\", \"TOI-700\"). Groups all the star's known planets into one view, summarizes the host star (spectral type, temperature, radius, mass, distance in light-years), and COMPUTES the star's habitable (\"Goldilocks\") zone — inner and outer boundary in AU, derived from the stellar luminosity (effective temperature + radius vs. the Sun) — then flags which planets orbit within it. Each planet: radius/mass (Earth units), orbital period, semi-major axis, equilibrium temperature, and in-habitable-zone flag. Astronomy, habitability research, education. Built from the NASA Exoplanet Archive (the same data as /api/space/exoplanet) plus the computed HZ. Public-domain NASA data.","operationId":"space_system","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"system":{"type":"object","properties":{"hostStar":{"type":"string"},"planetCount":{"type":"number"},"star":{"type":"object","properties":{"spectralType":{"type":"string","nullable":true},"effectiveTempK":{"type":"number","nullable":true},"radiusSolar":{"type":"number","nullable":true},"massSolar":{"type":"number","nullable":true},"luminositySolar":{"type":"number","nullable":true},"distanceLightYears":{"type":"number","nullable":true}},"required":["spectralType","effectiveTempK","radiusSolar","massSolar","luminositySolar","distanceLightYears"],"additionalProperties":false},"habitableZone":{"type":"object","properties":{"innerAu":{"type":"number"},"outerAu":{"type":"number"}},"required":["innerAu","outerAu"],"additionalProperties":false,"nullable":true},"planets":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["hostStar","planetCount","star","habitableZone","planets"],"additionalProperties":false},"source":{"$ref":"#/components/schemas/Source"}},"required":["system","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.system","x-2s-version":null,"x-2s-price":{"usd":0.00288},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002880"},"protocols":[{"x402":{}}]},"parameters":[{"name":"hostStar","in":"query","required":true,"description":"Host star.","schema":{"type":"string","minLength":1,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/space/weather":{"get":{"tags":["space"],"summary":"Current space weather from NOAA SWPC public feeds.","description":"Current space weather from NOAA SWPC public feeds. Returns the latest planetary K-index (3-hour geomagnetic activity), solar wind plasma (density / speed / temperature from ACE/DSCOVR at L1), GOES X-ray flux with NOAA flare class (A/B/C/M/X), and the current NOAA R (radio blackout) / S (solar radiation) / G (geomagnetic storm) scales plus a 24-hour forecast in 6-hour windows. All timestamps are ISO 8601 UTC. No parameters. Useful for aurora forecasting, HF-radio propagation, satellite-operations planning, and GPS-degradation alerts. Data is public domain (NOAA / US government work).","operationId":"space_weather","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ kp, solarWind, xray, scales }] (one current space-weather snapshot; all four blocks live inside this single item); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"kp":{"type":"object","properties":{"latest":{"type":"object","properties":{"time":{"type":"string","description":"ISO 8601 UTC timestamp of the 3-hour interval."},"kp":{"type":"number","description":"Planetary K-index, 0..9."},"gScale":{"type":"integer","description":"Derived NOAA G-storm scale (0..5)."},"gLabel":{"type":"string","description":"Plain-English label: none / minor / moderate / strong / severe / extreme."}},"required":["time","kp","gScale","gLabel"],"additionalProperties":false},"recent":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string"},"kp":{"type":"number"},"gScale":{"type":"integer"},"gLabel":{"type":"string"}},"required":["time","kp","gScale","gLabel"],"additionalProperties":false},"description":"Last ~24 hours of Kp samples (up to 8 entries, oldest first)."}},"required":["latest","recent"],"additionalProperties":false},"solarWind":{"type":"object","properties":{"time":{"type":"string"},"densityPerCm3":{"type":"number","nullable":true,"description":"Proton density at L1 (n/cm³)."},"speedKmPerSec":{"type":"number","nullable":true,"description":"Bulk speed (km/s). Quiet ~350-450, fast > 600."},"temperatureK":{"type":"number","nullable":true,"description":"Proton temperature (K)."}},"required":["time","densityPerCm3","speedKmPerSec","temperatureK"],"additionalProperties":false},"xray":{"type":"object","properties":{"time":{"type":"string"},"fluxLongWm2":{"type":"number","nullable":true,"description":"GOES long-band (0.1-0.8 nm) flux in W/m²."},"flareClass":{"type":"string","nullable":true,"description":"NOAA flare class derived from long-band flux (e.g. \"C2.4\", \"M1.0\", \"X9.3\")."},"satellite":{"type":"integer","nullable":true,"description":"GOES satellite number reporting this sample."}},"required":["time","fluxLongWm2","flareClass","satellite"],"additionalProperties":false},"scales":{"type":"object","properties":{"current":{"type":"object","properties":{"observedAt":{"type":"string"},"rRadio":{"type":"object","properties":{"scale":{"type":"integer"},"label":{"type":"string"}},"required":["scale","label"],"additionalProperties":false},"sRadiation":{"type":"object","properties":{"scale":{"type":"integer"},"label":{"type":"string"}},"required":["scale","label"],"additionalProperties":false},"gGeomagnetic":{"type":"object","properties":{"scale":{"type":"integer"},"label":{"type":"string"}},"required":["scale","label"],"additionalProperties":false}},"required":["observedAt","rRadio","sRadiation","gGeomagnetic"],"additionalProperties":false},"forecast":{"type":"array","items":{"type":"object","properties":{"startsAt":{"type":"string"},"rMinorPercent":{"type":"number","nullable":true,"description":"Probability of R1-R2 radio blackout (0..100)."},"rMajorPercent":{"type":"number","nullable":true,"description":"Probability of R3+ radio blackout (0..100)."},"sPercent":{"type":"number","nullable":true,"description":"Probability of S1+ solar radiation storm (0..100)."},"gScale":{"type":"integer"},"gLabel":{"type":"string"}},"required":["startsAt","rMinorPercent","rMajorPercent","sPercent","gScale","gLabel"],"additionalProperties":false},"description":"Forward forecast in 6-hour windows (up to 4 entries covering the next ~24h)."}},"required":["current","forecast"],"additionalProperties":false}},"required":["kp","solarWind","xray","scales"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"space.weather","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/mlb-schedule":{"get":{"tags":["sports"],"summary":"MLB games for a date (and optionally one team), via the...","description":"MLB games for a date (and optionally one team), via the official MLB Stats API (free/keyless). Each game: gamePk, start time, detailed status (Scheduled/In Progress/Final), away and home team + score, and venue. Defaults to today when no date is given. Live scores + schedule for agents.","operationId":"sports_mlb-schedule","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = games.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"gamePk":{"nullable":true},"gameDate":{"nullable":true},"status":{"nullable":true},"awayTeam":{"nullable":true},"awayScore":{"type":"number","nullable":true},"homeTeam":{"nullable":true},"homeScore":{"type":"number","nullable":true},"venue":{"nullable":true}},"required":["awayScore","homeScore"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.mlb-schedule","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD; defaults to today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"teamId","in":"query","required":false,"description":"MLB team id to filter to one club.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/mlb-standings":{"get":{"tags":["sports"],"summary":"MLB regular-season standings for a season (official MLB...","description":"MLB regular-season standings for a season (official MLB Stats API, free/keyless). Each team: wins, losses, win %, games back, division + league rank, and current streak. Defaults to the current season.","operationId":"sports_mlb-standings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = team records.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"team":{"nullable":true},"wins":{"type":"number","nullable":true},"losses":{"type":"number","nullable":true},"winPct":{"nullable":true},"gamesBack":{"nullable":true},"divisionRank":{"nullable":true},"leagueRank":{"nullable":true},"streak":{"nullable":true}},"required":["wins","losses"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.mlb-standings","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"season","in":"query","required":false,"description":"Season.","schema":{"type":"integer","minimum":1900,"maximum":2100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nba-games":{"get":{"tags":["sports"],"summary":"NBA games from balldontlie - schedule and scores in one feed.","description":"NBA games from balldontlie — schedule and scores in one feed. Filter by season (start year), a single date, and/or team id. Each game: date, season, status, postseason flag, home/visitor teams and final (or live) scores. Cursor-paginated (pass meta.cursor as cursor to continue).","operationId":"sports_nba-games","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = NBA games; meta.cursor = next page (null when last).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","nullable":true},"date":{"type":"string","nullable":true},"datetime":{"type":"string","nullable":true},"season":{"type":"number","nullable":true},"status":{"type":"string","nullable":true},"period":{"type":"number","nullable":true},"postseason":{"type":"boolean"},"home_team":{"nullable":true},"visitor_team":{"nullable":true},"home_team_score":{"type":"number","nullable":true},"visitor_team_score":{"type":"number","nullable":true}},"required":["id","date","datetime","season","status","period","postseason","home_team_score","visitor_team_score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nba-games","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"season","in":"query","required":false,"description":"Season start year, e.g. 2024 for the 2024-25 season.","schema":{"type":"integer","minimum":1946,"maximum":2100}},{"name":"date","in":"query","required":false,"description":"Single date, YYYY-MM-DD.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"team_id","in":"query","required":false,"description":"NBA team id (1–30).","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"name":"cursor","in":"query","required":false,"description":"Pagination cursor from a prior meta.cursor.","schema":{"type":"string","minLength":1}},{"name":"per_page","in":"query","required":false,"description":"Page size, 1–100 (default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nba-players":{"get":{"tags":["sports"],"summary":"NBA players from balldontlie - search by name and page...","description":"NBA players from balldontlie — search by name and page through results. Each player: id, name, position, height, weight, jersey number, college, country, draft year, and current team. Cursor-paginated (pass meta.cursor as cursor to continue).","operationId":"sports_nba-players","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = NBA players; meta.cursor = next page (null when last).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","nullable":true},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"position":{"type":"string","nullable":true},"height":{"type":"string","nullable":true},"weight":{"type":"string","nullable":true},"jersey_number":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"draft_year":{"type":"number","nullable":true},"team":{"nullable":true}},"required":["id","first_name","last_name","position","height","weight","jersey_number","college","country","draft_year"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nba-players","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"search","in":"query","required":false,"description":"Name search (first or last), e.g. \"james\".","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"cursor","in":"query","required":false,"description":"Pagination cursor from a prior meta.cursor.","schema":{"type":"string","minLength":1}},{"name":"per_page","in":"query","required":false,"description":"Page size, 1–100 (default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nba-teams":{"get":{"tags":["sports"],"summary":"NBA teams from balldontlie - all 30 franchises with id...","description":"NBA teams from balldontlie — all 30 franchises with id, full name, abbreviation, conference, division, and city. Pass an optional team id to fetch a single team.","operationId":"sports_nba-teams","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = NBA teams; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","nullable":true},"full_name":{"type":"string","nullable":true},"abbreviation":{"type":"string","nullable":true},"conference":{"type":"string","nullable":true},"division":{"type":"string","nullable":true},"city":{"type":"string","nullable":true}},"required":["id","full_name","abbreviation","conference","division","city"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nba-teams","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":false,"description":"NBA team id (1–30). Omit to list all teams.","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nfl-games":{"get":{"tags":["sports"],"summary":"NFL games from balldontlie - schedule and scores in one feed.","description":"NFL games from balldontlie — schedule and scores in one feed. Filter by season, week, and/or team id. Each game: date, season, week, status, postseason flag, venue, recap summary, home/visitor teams and final (or live) scores. Cursor-paginated (pass meta.cursor as cursor to continue).","operationId":"sports_nfl-games","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = NFL games; meta.cursor = next page (null when last).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","nullable":true},"date":{"type":"string","nullable":true},"season":{"type":"number","nullable":true},"week":{"type":"number","nullable":true},"status":{"type":"string","nullable":true},"postseason":{"type":"boolean"},"venue":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"home_team":{"nullable":true},"visitor_team":{"nullable":true},"home_team_score":{"type":"number","nullable":true},"visitor_team_score":{"type":"number","nullable":true}},"required":["id","date","season","week","status","postseason","venue","summary","home_team_score","visitor_team_score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nfl-games","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"season","in":"query","required":false,"description":"Season year, e.g. 2024.","schema":{"type":"integer","minimum":1920,"maximum":2100}},{"name":"week","in":"query","required":false,"description":"Week number (regular + postseason).","schema":{"type":"integer","minimum":1,"maximum":30}},{"name":"team_id","in":"query","required":false,"description":"NFL team id.","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"name":"cursor","in":"query","required":false,"description":"Pagination cursor from a prior meta.cursor.","schema":{"type":"string","minLength":1}},{"name":"per_page","in":"query","required":false,"description":"Page size, 1–100 (default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nfl-players":{"get":{"tags":["sports"],"summary":"NFL players from balldontlie - search by name and page...","description":"NFL players from balldontlie — search by name and page through results. Each player: id, name, position, height, weight, jersey number, college, experience, age, and current team. Cursor-paginated (pass meta.cursor as cursor to continue).","operationId":"sports_nfl-players","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = NFL players; meta.cursor = next page (null when last).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","nullable":true},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"position":{"type":"string","nullable":true},"position_abbreviation":{"type":"string","nullable":true},"height":{"type":"string","nullable":true},"weight":{"type":"string","nullable":true},"jersey_number":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"experience":{"type":"string","nullable":true},"age":{"type":"number","nullable":true},"team":{"nullable":true}},"required":["id","first_name","last_name","position","position_abbreviation","height","weight","jersey_number","college","experience","age"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"required":["cursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nfl-players","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"search","in":"query","required":false,"description":"Name search (first or last), e.g. \"mahomes\".","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"cursor","in":"query","required":false,"description":"Pagination cursor from a prior meta.cursor.","schema":{"type":"string","minLength":1}},{"name":"per_page","in":"query","required":false,"description":"Page size, 1–100 (default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nfl-teams":{"get":{"tags":["sports"],"summary":"NFL teams from balldontlie - all 32 franchises with id...","description":"NFL teams from balldontlie — all 32 franchises with id, full name, abbreviation, conference (AFC/NFC), division, and city. Pass an optional team id to fetch a single team.","operationId":"sports_nfl-teams","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = NFL teams; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","nullable":true},"full_name":{"type":"string","nullable":true},"abbreviation":{"type":"string","nullable":true},"conference":{"type":"string","nullable":true},"division":{"type":"string","nullable":true},"city":{"type":"string","nullable":true}},"required":["id","full_name","abbreviation","conference","division","city"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nfl-teams","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":false,"description":"NFL team id. Omit to list all teams.","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nhl-schedule":{"get":{"tags":["sports"],"summary":"Upcoming NHL game schedule for the week anchored on a date...","description":"Upcoming NHL game schedule for the week anchored on a date (official NHL api-web, free/keyless). Each game: id, date, start time (UTC), game state (FUT/LIVE/OFF), game type (Preseason/Regular Season/Playoffs), away and home team + abbreviation + score, venue, and TV broadcasts. Optionally filter to one team by 3-letter abbreviation (e.g. TOR). Defaults to the week starting today. Forward-looking matchups for scheduling agents — distinct from nhl-scores (single-day results).","operationId":"sports_nhl-schedule","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = games for the NHL week.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"nullable":true},"date":{"type":"string","nullable":true},"startTimeUTC":{"nullable":true},"gameState":{"nullable":true},"gameType":{"type":"string","nullable":true},"awayTeam":{"type":"string","nullable":true},"awayAbbrev":{"type":"string","nullable":true},"awayScore":{"type":"number","nullable":true},"homeTeam":{"type":"string","nullable":true},"homeAbbrev":{"type":"string","nullable":true},"homeScore":{"type":"number","nullable":true},"venue":{"type":"string","nullable":true},"broadcasts":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","nullable":true},"network":{"type":"string","nullable":true}},"required":["country","network"],"additionalProperties":false}}},"required":["date","gameType","awayTeam","awayAbbrev","awayScore","homeTeam","homeAbbrev","homeScore","venue","broadcasts"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nhl-schedule","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD anchor; returns that day plus the rest of the NHL game week. Defaults to today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"team","in":"query","required":false,"description":"3-letter NHL team abbreviation to filter to one club (e.g. TOR, BOS, EDM).","schema":{"type":"string","minLength":2,"maxLength":3}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nhl-scores":{"get":{"tags":["sports"],"summary":"NHL scores and games for a date (official NHL api-web...","description":"NHL scores and games for a date (official NHL api-web, free/keyless). Each game: id, game state (FUT/LIVE/FINAL), start time, away and home team + score. Defaults to today.","operationId":"sports_nhl-scores","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = games.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"nullable":true},"gameState":{"nullable":true},"startTimeUTC":{"nullable":true},"awayTeam":{"type":"string","nullable":true},"awayScore":{"type":"number","nullable":true},"homeTeam":{"type":"string","nullable":true},"homeScore":{"type":"number","nullable":true}},"required":["awayTeam","awayScore","homeTeam","homeScore"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nhl-scores","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD; defaults to today.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sports/nhl-standings":{"get":{"tags":["sports"],"summary":"Current NHL standings (official NHL api-web, free/keyless).","description":"Current NHL standings (official NHL api-web, free/keyless). Each team: conference, division, games played, wins, losses, OT losses, points, goal differential, and current streak.","operationId":"sports_nhl-standings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = team standings.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"team":{"type":"string","nullable":true},"abbrev":{"type":"string","nullable":true},"conference":{"nullable":true},"division":{"nullable":true},"gamesPlayed":{"type":"number","nullable":true},"wins":{"type":"number","nullable":true},"losses":{"type":"number","nullable":true},"otLosses":{"type":"number","nullable":true},"points":{"type":"number","nullable":true},"goalDiff":{"type":"number","nullable":true},"streak":{"type":"string","nullable":true}},"required":["team","abbrev","gamesPlayed","wins","losses","otLosses","points","goalDiff","streak"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sports.nhl-standings","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/company-news":{"get":{"tags":["stocks"],"summary":"Recent news articles about a specific US-listed company.","description":"Recent news articles about a specific US-listed company. Pass ticker and optionally a from/to date window (YYYY-MM-DD; defaults to the last 14 days); returns headlines with source, summary, URL, image, related symbol, category, and publish time (newest first). Use it to catch up on what is being written about a company. News aggregated by Finnhub.","operationId":"stocks_company-news","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = company news articles, newest first.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"datetime":{"type":"string","nullable":true,"description":"Publish time (ISO 8601)."},"headline":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"related":{"type":"string","nullable":true},"id":{"type":"number","nullable":true}},"required":["datetime","headline","source","summary","url","image","category","related","id"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["symbol","from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.company-news","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"from","in":"query","required":false,"description":"Earliest article date YYYY-MM-DD (default: 14 days ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"Latest article date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max articles to return (default 100).","schema":{"type":"integer","minimum":1,"maximum":250}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/earnings-surprises":{"get":{"tags":["stocks"],"summary":"Historical quarterly earnings surprises for a US-listed...","description":"Historical quarterly earnings surprises for a US-listed company — reported (actual) EPS vs the analyst consensus estimate, the absolute surprise, and the surprise percentage, for the most recent quarters (newest first). Pass ticker (optionally limit). Tells you whether a company has been beating or missing expectations. Data by Finnhub.","operationId":"stocks_earnings-surprises","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = quarterly EPS actual-vs-estimate, newest first.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string","description":"Fiscal period end date (yyyy-mm-dd)."},"actual":{"type":"number","nullable":true,"description":"Reported EPS."},"estimate":{"type":"number","nullable":true,"description":"Consensus estimated EPS."},"surprise":{"type":"number","nullable":true,"description":"actual − estimate."},"surprisePercent":{"type":"number","nullable":true},"quarter":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}},"required":["period","actual","estimate","surprise","surprisePercent","quarter","year"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"}},"required":["symbol"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.earnings-surprises","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"limit","in":"query","required":false,"description":"Max quarters to return (default all available, usually 4).","schema":{"type":"integer","minimum":1,"maximum":40}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/financials-reported":{"get":{"tags":["stocks"],"summary":"As-reported financial statements for a US-listed company...","description":"As-reported financial statements for a US-listed company, exactly as filed with the SEC — balance sheet, income statement, and cash-flow statement line items, parsed from each 10-K/10-Q. Pass ticker and optionally freq (annual or quarterly) and limit; returns the most recent filings (newest first) with filing metadata (form, period, filed date, accession) and the full report under `report`. Data by Finnhub.","operationId":"stocks_financials-reported","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = as-reported filings (newest first), each with the full report.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"cik":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"quarter":{"type":"number","nullable":true},"form":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"filedDate":{"type":"string","nullable":true},"accessNumber":{"type":"string","nullable":true},"report":{"type":"object","additionalProperties":{},"description":"As-reported statements: { bs, ic, cf } line-item arrays."}},"required":["symbol","cik","year","quarter","form","startDate","endDate","filedDate","accessNumber","report"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"freq":{"type":"string"}},"required":["symbol","freq"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.financials-reported","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"freq","in":"query","required":false,"description":"Statement frequency. Default: annual.","schema":{"type":"string","enum":["annual","quarterly"]}},{"name":"limit","in":"query","required":false,"description":"Max filings to return (default 4).","schema":{"type":"integer","minimum":1,"maximum":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/gov-spending":{"get":{"tags":["stocks"],"summary":"US federal government spending awarded to a public company...","description":"US federal government spending awarded to a public company (sourced from USAspending). Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~2 years); returns each award with the recipient (and parent), awarding agency/sub-agency, obligated/outlayed/potential/total values in USD, action date, and period of performance. Use it to see how much federal money flows to a company. Data by Finnhub.","operationId":"stocks_gov-spending","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = federal award records (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"recipientName":{"type":"string","nullable":true},"recipientParentName":{"type":"string","nullable":true},"awardingAgencyName":{"type":"string","nullable":true},"awardingSubAgencyName":{"type":"string","nullable":true},"totalValue":{"type":"number","nullable":true},"obligatedAmount":{"type":"number","nullable":true},"outlayedAmount":{"type":"number","nullable":true},"potentialAmount":{"type":"number","nullable":true},"actionDate":{"type":"string","nullable":true},"performanceStartDate":{"type":"string","nullable":true},"performanceEndDate":{"type":"string","nullable":true}},"required":["symbol","recipientName","recipientParentName","awardingAgencyName","awardingSubAgencyName","totalValue","obligatedAmount","outlayedAmount","potentialAmount","actionDate","performanceStartDate","performanceEndDate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["symbol","from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.gov-spending","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"from","in":"query","required":false,"description":"Earliest action date YYYY-MM-DD (default: ~2 years ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"Latest action date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max awards to return (default 100).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/h1b-visas":{"get":{"tags":["stocks"],"summary":"US work-visa (H-1B and related) applications filed by a...","description":"US work-visa (H-1B and related) applications filed by a public company, sourced from Department of Labor LCA disclosures. Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~2 years); returns each application with job title, SOC code, visa class, case status, wage range, worksite city/state, employment dates, and case number. Use it as a hiring/headcount signal. Data by Finnhub.","operationId":"stocks_h1b-visas","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = work-visa applications (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"quarter":{"type":"number","nullable":true},"caseNumber":{"type":"string","nullable":true},"caseStatus":{"type":"string","nullable":true},"visaClass":{"type":"string","nullable":true},"jobTitle":{"type":"string","nullable":true},"socCode":{"type":"string","nullable":true},"wageRangeFrom":{"type":"number","nullable":true},"wageRangeTo":{"type":"number","nullable":true},"employerName":{"type":"string","nullable":true},"worksiteCity":{"type":"string","nullable":true},"worksiteState":{"type":"string","nullable":true},"beginDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true}},"required":["symbol","year","quarter","caseNumber","caseStatus","visaClass","jobTitle","socCode","wageRangeFrom","wageRangeTo","employerName","worksiteCity","worksiteState","beginDate","endDate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["symbol","from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.h1b-visas","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"from","in":"query","required":false,"description":"Earliest received date YYYY-MM-DD (default: ~2 years ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"Latest received date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max applications to return (default 100).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/insider-sentiment":{"get":{"tags":["stocks"],"summary":"Aggregated insider sentiment for a US-listed company, by month.","description":"Aggregated insider sentiment for a US-listed company, by month. For each month returns the net change in insider share holdings and Finnhub's MSPR (Monthly Share Purchase Ratio, −100 to +100 — higher means more net insider buying). Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~1 year). A distilled signal layered on top of raw insider filings. Data by Finnhub.","operationId":"stocks_insider-sentiment","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = monthly insider sentiment rows.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"month":{"type":"number","nullable":true},"change":{"type":"number","nullable":true,"description":"Net change in insider share holdings for the month."},"mspr":{"type":"number","nullable":true,"description":"Monthly Share Purchase Ratio, −100..+100."}},"required":["symbol","year","month","change","mspr"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["symbol","from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.insider-sentiment","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"from","in":"query","required":false,"description":"Earliest month date YYYY-MM-DD (default: ~1 year ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"Latest month date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/lobbying":{"get":{"tags":["stocks"],"summary":"US federal lobbying disclosures for a public company...","description":"US federal lobbying disclosures for a public company (sourced from US Senate LDA filings). Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~3 years); returns each filing with the registrant name, the period (year + quarter), reported lobbying income/expenses in USD, and a link to the official Senate filing. Use it to track a company’s lobbying spend over time. Data by Finnhub.","operationId":"stocks_lobbying","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = lobbying filings (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"year":{"type":"number","nullable":true},"period":{"type":"string","nullable":true},"income":{"type":"number","nullable":true,"description":"Reported lobbying income (USD)."},"expenses":{"type":"number","nullable":true,"description":"Reported lobbying expenses (USD)."},"documentUrl":{"type":"string","nullable":true}},"required":["symbol","name","description","year","period","income","expenses","documentUrl"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["symbol","from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.lobbying","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"from","in":"query","required":false,"description":"Earliest filing date YYYY-MM-DD (default: ~3 years ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"Latest filing date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max filings to return (default 100).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/metrics":{"get":{"tags":["stocks"],"summary":"Key fundamental metrics and 52-week price statistics for a...","description":"Key fundamental metrics and 52-week price statistics for a US-listed company. Pass ticker; returns headline valuation, margin, and per-share figures — P/E, P/B, P/S, PEG, EV/EBITDA, gross/operating/net margins, ROE, ROA, current ratio, debt/equity, dividend yield, beta, 52-week high/low, and YTD/52-week price returns — plus the full Finnhub metric map under `metric`. Computed ratios you would otherwise derive yourself from raw filings. Market & fundamental data by Finnhub.","operationId":"stocks_metrics","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one company’s key metrics + the full metric map]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"peTTM":{"type":"number","nullable":true},"psTTM":{"type":"number","nullable":true},"pbAnnual":{"type":"number","nullable":true},"pegTTM":{"type":"number","nullable":true},"evEbitdaTTM":{"type":"number","nullable":true},"grossMarginTTM":{"type":"number","nullable":true},"operatingMarginTTM":{"type":"number","nullable":true},"netMarginTTM":{"type":"number","nullable":true},"roeTTM":{"type":"number","nullable":true},"roaTTM":{"type":"number","nullable":true},"currentRatioAnnual":{"type":"number","nullable":true},"debtToEquityAnnual":{"type":"number","nullable":true},"dividendYield":{"type":"number","nullable":true},"beta":{"type":"number","nullable":true},"week52High":{"type":"number","nullable":true},"week52Low":{"type":"number","nullable":true},"priceReturnYTD":{"type":"number","nullable":true},"priceReturn52Week":{"type":"number","nullable":true},"metric":{"type":"object","additionalProperties":{},"description":"Full Finnhub metric map (all computed ratios)."}},"required":["ticker","peTTM","psTTM","pbAnnual","pegTTM","evEbitdaTTM","grossMarginTTM","operatingMarginTTM","netMarginTTM","roeTTM","roaTTM","currentRatioAnnual","debtToEquityAnnual","dividendYield","beta","week52High","week52Low","priceReturnYTD","priceReturn52Week","metric"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.metrics","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/patents":{"get":{"tags":["stocks"],"summary":"USPTO patent activity associated with a public company.","description":"USPTO patent activity associated with a public company. Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~2 years); returns each record with the application number, patent number (when granted), the filing company name(s), description/title, patent type, filing status, filing and publication dates, and a document URL. A company-level innovation/R&D signal (distinct from our keyword patent search). Data by Finnhub.","operationId":"stocks_patents","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = patent records (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"applicationNumber":{"type":"string","nullable":true},"patentNumber":{"type":"string","nullable":true},"companyFilingName":{"type":"array","items":{"type":"string"},"description":"Filing company name(s)."},"description":{"type":"string","nullable":true},"patentType":{"type":"string","nullable":true},"filingStatus":{"type":"string","nullable":true},"filingDate":{"type":"string","nullable":true},"publicationDate":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"required":["symbol","applicationNumber","patentNumber","companyFilingName","description","patentType","filingStatus","filingDate","publicationDate","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["symbol","from","to"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.patents","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"from","in":"query","required":false,"description":"Earliest filing date YYYY-MM-DD (default: ~2 years ago).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"description":"Latest filing date YYYY-MM-DD (default: today).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Max records to return (default 100).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/peers":{"get":{"tags":["stocks"],"summary":"Peer companies for a US-listed ticker - other companies in...","description":"Peer companies for a US-listed ticker — other companies in the same sector and sub-industry, useful for comparables, relative valuation, and screening. Pass ticker (optionally grouping to control how peers are grouped); returns a ranked list of peer ticker symbols (the input symbol is usually first). Data by Finnhub.","operationId":"stocks_peers","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ ticker }] peer companies; meta.symbol echoes the input.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"}},"required":["ticker"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"}},"required":["symbol"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.peers","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"name":"grouping","in":"query","required":false,"description":"How to group peers. Default: sub-industry.","schema":{"type":"string","enum":["sector","industry","subIndustry"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/quote":{"get":{"tags":["stocks"],"summary":"Latest daily stock quote for a US-listed ticker.","description":"Latest daily stock quote for a US-listed ticker. Returns the most recent completed trading session: open, high, low, close, volume, VWAP, and trade count, plus the change and percent change versus the prior session, and company reference data (name, primary exchange, security type, currency, market cap). NOTE: this plan tier serves end-of-day / delayed data (the response flags delayed=true), suitable for daily snapshots, fundamentals context, and post-close analysis rather than real-time trading. Pass ticker as a US symbol (e.g. AAPL, MSFT, BRK.B). Market data by Massive (formerly Polygon.io).","operationId":"stocks_quote","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one ticker’s latest daily quote with change vs prior session + company metadata]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"ticker":{"type":"string"},"name":{"type":"string","nullable":true},"exchange":{"type":"string","nullable":true,"description":"Primary listing exchange MIC, e.g. XNAS, XNYS."},"type":{"type":"string","nullable":true,"description":"Security type, e.g. CS (common stock), ETF."},"currency":{"type":"string","nullable":true},"marketCapUSD":{"type":"number","nullable":true},"date":{"type":"string","description":"Date of the latest completed daily bar (yyyy-mm-dd)."},"open":{"type":"number","nullable":true},"high":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"close":{"type":"number","nullable":true},"volume":{"type":"number","nullable":true},"vwap":{"type":"number","nullable":true,"description":"Volume-weighted average price for the bar."},"transactions":{"type":"number","nullable":true},"previousClose":{"type":"number","nullable":true},"change":{"type":"number","nullable":true,"description":"close − previousClose."},"changePercent":{"type":"number","nullable":true},"delayed":{"type":"boolean","description":"True — this tier serves end-of-day / delayed data, not real-time."}},"required":["ticker","name","exchange","type","currency","marketCapUSD","date","open","high","low","close","volume","vwap","transactions","previousClose","change","changePercent","delayed"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.quote","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/recommendations":{"get":{"tags":["stocks"],"summary":"Analyst recommendation trend for a US-listed company - the...","description":"Analyst recommendation trend for a US-listed company — the number of analysts rating it strong buy, buy, hold, sell, and strong sell, snapshotted per month (newest first). Pass ticker. Use it to see the consensus and how sentiment is shifting over time. Data by Finnhub.","operationId":"stocks_recommendations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = monthly analyst-rating counts, newest first.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"period":{"type":"string","description":"Month of the snapshot (yyyy-mm-dd)."},"strongBuy":{"type":"number","nullable":true},"buy":{"type":"number","nullable":true},"hold":{"type":"number","nullable":true},"sell":{"type":"number","nullable":true},"strongSell":{"type":"number","nullable":true}},"required":["period","strongBuy","buy","hold","sell","strongSell"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"symbol":{"type":"string"}},"required":["symbol"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.recommendations","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ticker","in":"query","required":true,"description":"US-listed ticker symbol.","schema":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/screener":{"get":{"tags":["stocks"],"summary":"Fundamental stock screener built on SEC EDGAR XBRL Frames...","description":"Fundamental stock screener built on SEC EDGAR XBRL Frames — screen every public filer on a reported financial concept for one period, in a single call. Absolute mode: give a concept (e.g. Revenues, NetIncomeLoss, Assets), a period (CY2023 annual, CY2024Q1 quarter, CY2024Q1I instant), and an optional op/value to filter (e.g. Revenues gte 10000000000 → companies with >= $10B FY2023 revenue). Ratio mode: add ratioConcept to compute concept / ratioConcept per company joined by CIK, then op/value filter the ratio (e.g. concept=GrossProfit, ratioConcept=Revenues, op=gte, value=0.7 → gross margin >= 70%). Returns matching companies with CIK, entity name, value (and ratio), sorted, plus meta with the total matched and the screenable universe size. Free, public-domain (SEC EDGAR).","operationId":"stocks_screener","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching companies (sorted by value/ratio, sliced to limit); total = total matched; meta carries concept/ratioConcept/period/unit/totalMatched/totalUniverse.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"cik":{"type":"number"},"entityName":{"type":"string","nullable":true},"value":{"type":"number"},"ratio":{"type":"number"}},"required":["cik","entityName","value"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.screener","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"concept","in":"query","required":true,"description":"XBRL us-gaap concept, e.g. Revenues, GrossProfit, NetIncomeLoss, Assets.","schema":{"type":"string","pattern":"^[A-Za-z0-9]+$","minLength":2,"maxLength":80}},{"name":"period","in":"query","required":true,"description":"CY2023 (annual), CY2024Q1 (quarter), CY2024Q1I (instant, for balance-sheet items).","schema":{"type":"string","pattern":"^CY\\d{4}(Q[1-4]I?)?$"}},{"name":"unit","in":"query","required":false,"description":"Unit (default USD).","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"op","in":"query","required":false,"description":"Comparison operator (with value). Filters the concept value, or the ratio when ratioConcept is set.","schema":{"type":"string","enum":["gt","gte","lt","lte"]}},{"name":"value","in":"query","required":false,"description":"Comparison threshold (with op). For ratios use a fraction, e.g. 0.7 for 70%.","schema":{"type":"number"}},{"name":"ratioConcept","in":"query","required":false,"description":"Optional second XBRL concept; computes ratio = concept / ratioConcept per company (joined by CIK), and op/value then filter the ratio.","schema":{"type":"string","pattern":"^[A-Za-z0-9]+$","minLength":2,"maxLength":80}},{"name":"sort","in":"query","required":false,"description":"Sort by value/ratio (default desc).","schema":{"type":"string","enum":["asc","desc"]}},{"name":"limit","in":"query","required":false,"description":"Max companies (1-100, default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/stocks/symbols":{"get":{"tags":["stocks"],"summary":"Search or list the tradable equity symbol universe for an...","description":"Search or list the tradable equity symbol universe for an exchange. Pass q to substring-match on symbol or company name (case-insensitive), and/or exchange (default US) and limit. Returns matching listings with symbol, display symbol, description (company name), security type (e.g. Common Stock, ETF), currency, MIC, and FIGI. Use it to resolve a name to a ticker or enumerate a market. Data by Finnhub.","operationId":"stocks_symbols","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching symbols; total = matched count (capped to limit in items).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"displaySymbol":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"mic":{"type":"string","nullable":true},"figi":{"type":"string","nullable":true}},"required":["symbol","displaySymbol","description","type","currency","mic","figi"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"exchange":{"type":"string"},"q":{"type":"string","nullable":true},"matched":{"type":"integer"}},"required":["exchange","q","matched"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"stocks.symbols","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Substring match on symbol or company name (case-insensitive).","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"exchange","in":"query","required":false,"description":"Exchange code (default US).","schema":{"type":"string","minLength":1,"maxLength":8,"pattern":"^[A-Za-z]+$"}},{"name":"limit","in":"query","required":false,"description":"Max rows to return (default 50).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/blob-delete":{"post":{"tags":["store"],"summary":"STORE: delete a file you uploaded, scoped to YOUR wallet...","description":"STORE: delete a file you uploaded, scoped to YOUR wallet — removes the bytes from storage and the metadata. Idempotent: deleting a missing key succeeds with deleted:false. Private to your wallet (the x402 payer).","operationId":"store_blob-delete","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the delete result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"deleted":{"type":"boolean"}},"required":["key","deleted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.blob-delete","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the blob lives in."},"key":{"type":"string","description":"Key to delete."}},"required":["ns","key"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/blob-get":{"post":{"tags":["store"],"summary":"STORE: download a file you uploaded with store.blob-put, in...","description":"STORE: download a file you uploaded with store.blob-put, in a single paid call, scoped to YOUR wallet. The response body IS the raw bytes (with the stored Content-Type) — no extra fetch, no public URL. Every read is an x402-tolled call streamed through us, so your data can never be fetched without payment. Reading resets the 90-day TTL. 404 if the key doesn't exist or has expired. Private to your wallet (the x402 payer).","operationId":"store_blob-get","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"The raw file bytes, served with the stored Content-Type.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.blob-get","x-2s-version":null,"x-2s-price":{"usd":0.01},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the blob lives in."},"key":{"type":"string","description":"Key to download."}},"required":["ns","key"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/blob-list":{"post":{"tags":["store"],"summary":"STORE: list the files you've uploaded in a namespace...","description":"STORE: list the files you've uploaded in a namespace, scoped to YOUR wallet — keys, sizes, content types, expiry (metadata only, not the bytes). Optional prefix filter + cursor pagination (pass nextCursor as `after`). Listing does NOT extend TTLs or move bytes. Private to your wallet (the x402 payer).","operationId":"store_blob-list","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = blob metadata; meta.nextCursor for pagination.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"bytes":{"type":"number"},"contentType":{"type":"string","nullable":true},"expiresAt":{"type":"string"}},"required":["key","bytes","contentType","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"nextCursor":{"type":"string","nullable":true}},"required":["nextCursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.blob-list","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace to list."},"prefix":{"type":"string","description":"Only return keys starting with this prefix."},"limit":{"type":"integer","minimum":1,"maximum":1000,"description":"Max keys to return. Default 50, max 1000."},"after":{"type":"string","description":"Cursor — pass the previous response's nextCursor to page forward."}},"required":["ns"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/blob-put":{"post":{"tags":["store"],"summary":"STORE: upload a file (any bytes) in a single paid call...","description":"STORE: upload a file (any bytes) in a single paid call, scoped to YOUR wallet. Send the file base64-encoded in `data` with an optional contentType; we store it privately and key it to your payer address. Read it back with store.blob-get. Up to 3 MB per file (one-call limit); 50 MB total per wallet across kv/documents/vectors/files. Kept on a rolling 90-day window that resets on every touch. There is NO public URL — only paid store.blob-get can read it, so your bytes are never fetchable without payment. No account or API key.","operationId":"store_blob-put","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the stored blob metadata].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"bytes":{"type":"number"},"contentType":{"type":"string","nullable":true},"expiresAt":{"type":"string"}},"required":["key","bytes","contentType","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.blob-put","x-2s-version":null,"x-2s-price":{"usd":0.01},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace to group blobs, 1-64 chars of [A-Za-z0-9._:-]. e.g. \"uploads\"."},"key":{"type":"string","description":"Key within the namespace, up to 256 chars. e.g. \"snapshot-42.json\"."},"data":{"type":"string","minLength":1,"description":"The file bytes, base64-encoded. Decoded size up to 3 MB."},"contentType":{"type":"string","maxLength":128,"description":"MIME type to return on read. e.g. \"application/json\", \"image/png\". Default application/octet-stream."}},"required":["ns","key","data"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/doc-delete":{"post":{"tags":["store"],"summary":"STORE: delete a stored document by id, scoped to YOUR wallet.","description":"STORE: delete a stored document by id, scoped to YOUR wallet. Idempotent — deleting a missing id succeeds with deleted:false. Private to your wallet (the x402 payer).","operationId":"store_doc-delete","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the delete result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}},"required":["id","deleted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.doc-delete","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the document lives in."},"id":{"type":"string","description":"Document id to delete."}},"required":["ns","id"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/doc-get":{"post":{"tags":["store"],"summary":"STORE: fetch a stored document by id, scoped to YOUR wallet.","description":"STORE: fetch a stored document by id, scoped to YOUR wallet. Returns its body + meta. Reading resets the 90-day TTL (extend-on-touch). 404 if missing or expired. Private to your wallet (the x402 payer).","operationId":"store_doc-get","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the document].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"body":{"type":"string"},"meta":{},"expiresAt":{"type":"string"}},"required":["id","body","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.doc-get","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the document lives in."},"id":{"type":"string","description":"Document id to fetch."}},"required":["ns","id"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/doc-put":{"post":{"tags":["store"],"summary":"STORE: index a text document for full-text keyword search...","description":"STORE: index a text document for full-text keyword search, scoped to YOUR wallet. Store body text (up to 1 MB) under an id with optional JSON meta; later find it with store.doc-search (SQLite FTS5 keyword ranking). Re-putting the same id replaces it. Kept on a rolling 90-day window. Private to your wallet (the x402 payer) — no account or API key.","operationId":"store_doc-put","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the stored document].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"bytes":{"type":"number"},"expiresAt":{"type":"string"}},"required":["id","bytes","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.doc-put","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace to group documents."},"id":{"type":"string","description":"Document id within the namespace, up to 256 chars."},"body":{"type":"string","minLength":1,"description":"The text to index, up to 1 MB."},"meta":{"description":"Optional JSON metadata returned with search hits (not indexed). e.g. {\"title\":\"notes\",\"tags\":[\"x\"]}."}},"required":["ns","id","body"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/doc-search":{"post":{"tags":["store"],"summary":"STORE: full-text keyword search over documents you stored...","description":"STORE: full-text keyword search over documents you stored in a namespace, scoped to YOUR wallet. Uses SQLite FTS5 — supports terms, phrases (\"...\"), AND/OR/NOT, and prefix* matching. Returns ranked hits with body + meta + a relevance score (higher = better). Searching does NOT extend TTLs. Private to your wallet (the x402 payer).","operationId":"store_doc-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = ranked hits (best first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"body":{"type":"string"},"meta":{},"score":{"type":"number"}},"required":["id","body","score"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.doc-search","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace to search."},"query":{"type":"string","minLength":1,"description":"FTS5 query. e.g. `invoice AND 2026`, `\"exact phrase\"`, `lim*`."},"limit":{"type":"integer","minimum":1,"maximum":1000,"description":"Max hits. Default 50, max 1000."}},"required":["ns","query"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/kv-delete":{"post":{"tags":["store"],"summary":"STORE: delete a key/value you stored, scoped to YOUR wallet.","description":"STORE: delete a key/value you stored, scoped to YOUR wallet. Returns whether a value was removed. Idempotent — deleting a missing key succeeds with deleted:false. Private to your wallet (the x402 payer).","operationId":"store_kv-delete","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the delete result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"deleted":{"type":"boolean"}},"required":["key","deleted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.kv-delete","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the key lives in."},"key":{"type":"string","description":"Key to delete."}},"required":["ns","key"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/kv-get":{"post":{"tags":["store"],"summary":"STORE: read back a JSON value you stored with store.kv-put...","description":"STORE: read back a JSON value you stored with store.kv-put, scoped to YOUR wallet. Returns the value and its expiry. Reading the object resets its 90-day TTL (extend-on-touch). Returns 404 if the key doesn't exist or has expired. Data is private to your wallet (the x402 payer) — no account or API key.","operationId":"store_kv-get","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the value].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{},"expiresAt":{"type":"string"}},"required":["key","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.kv-get","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the key lives in."},"key":{"type":"string","description":"Key to read."}},"required":["ns","key"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/kv-put":{"post":{"tags":["store"],"summary":"STORE: persist a JSON value under a key, scoped to YOUR...","description":"STORE: persist a JSON value under a key, scoped to YOUR wallet (the x402 payer). Key/value store with retrieval — set a value once, read it back later with store.kv-get or list with store.kv-scan. Data is private to your wallet and kept on a rolling 90-day window that resets every time you touch the object. Use a namespace (ns) to group related keys. Value up to 1 MB; 50 MB total per wallet across kv/documents/vectors/files. No account or API key — pay per call with x402 and your data is keyed to your payer address.","operationId":"store_kv-put","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the stored key + its TTL].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"bytes":{"type":"number"},"expiresAt":{"type":"string"}},"required":["key","bytes","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.kv-put","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace to group keys, 1-64 chars of [A-Za-z0-9._:-]. e.g. \"memory\" or \"session:42\"."},"key":{"type":"string","description":"Key within the namespace, up to 256 chars of [A-Za-z0-9._:/-]."},"value":{"description":"Any JSON value (object, array, string, number, boolean, null). Up to 1 MB serialized."}},"required":["ns","key"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/kv-scan":{"post":{"tags":["store"],"summary":"STORE: list keys in a namespace, scoped to YOUR wallet...","description":"STORE: list keys in a namespace, scoped to YOUR wallet, optionally filtered by key prefix and paginated with a cursor. Set values:true to include each value inline. Ordered by key; returns nextCursor when more remain (pass it as `after`). Scanning does NOT extend TTLs. Private to your wallet (the x402 payer).","operationId":"store_kv-scan","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching keys; meta.nextCursor for pagination.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{},"bytes":{"type":"number"},"expiresAt":{"type":"string"}},"required":["key","bytes","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"nextCursor":{"type":"string","nullable":true}},"required":["nextCursor"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.kv-scan","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace to list."},"prefix":{"type":"string","description":"Only return keys starting with this prefix. e.g. \"session:\"."},"limit":{"type":"integer","minimum":1,"maximum":1000,"description":"Max keys to return. Default 50, max 1000."},"after":{"type":"string","description":"Cursor — pass the previous response's nextCursor to page forward."},"values":{"type":"boolean","description":"Include each value inline (default false — keys only)."}},"required":["ns"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/usage":{"post":{"tags":["store"],"summary":"STORE: report how much storage YOUR wallet is using...","description":"STORE: report how much storage YOUR wallet is using — structured bytes (kv + documents + vectors) and blob bytes. Use it to track headroom against the 50 MB per-wallet total (across kv/documents/vectors/files). Scoped to your wallet (the x402 payer); reports only your own usage.","operationId":"store_usage","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [your usage incl. totalBytes + capBytes headroom].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"tursoBytes":{"type":"number"},"blobBytes":{"type":"number"},"totalBytes":{"type":"number"},"capBytes":{"type":"number"}},"required":["tursoBytes","blobBytes","totalBytes","capBytes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.usage","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/vector-delete":{"post":{"tags":["store"],"summary":"STORE: delete a vector by id from a namespace, scoped to...","description":"STORE: delete a vector by id from a namespace, scoped to YOUR wallet. Idempotent — deleting a missing id succeeds with deleted:false. Private to your wallet (the x402 payer).","operationId":"store_vector-delete","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the delete result].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}},"required":["id","deleted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.vector-delete","x-2s-version":null,"x-2s-price":{"usd":0.002},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace the vector lives in."},"id":{"type":"string","description":"Vector id to delete."}},"required":["ns","id"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/vector-query":{"post":{"tags":["store"],"summary":"STORE: nearest-neighbor search over vectors you upserted in...","description":"STORE: nearest-neighbor search over vectors you upserted in a namespace, scoped to YOUR wallet. Pass a query embedding (same dimensionality as the stored vectors) and get the top-K most similar by cosine similarity, each with its body + meta + score (1.0 = identical). The retrieval half of agent memory / RAG — bring your own query embedding. Querying does NOT extend TTLs. Private to your wallet (the x402 payer).","operationId":"store_vector-query","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = nearest neighbors (best first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"score":{"type":"number"},"body":{"type":"string","nullable":true},"meta":{}},"required":["id","score","body"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.vector-query","x-2s-version":null,"x-2s-price":{"usd":0.01},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace (index) to search."},"embedding":{"type":"array","items":{"type":"number"},"minItems":1,"maxItems":4096,"description":"Query embedding (float array), same dimensionality as the stored vectors."},"topK":{"type":"integer","minimum":1,"maximum":100,"description":"How many neighbors to return. Default 10, max 100."}},"required":["ns","embedding"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/store/vector-upsert":{"post":{"tags":["store"],"summary":"STORE: upsert a vector for semantic retrieval, scoped to...","description":"STORE: upsert a vector for semantic retrieval, scoped to YOUR wallet. Bring your own embedding (any model, any dimension up to 4096) — store it under an id with optional body text + JSON meta, then find nearest neighbors with store.vector-query. Re-upserting the same id replaces it. This is the memory/RAG primitive for agents: no embedding key required on our side, no account, pay per call with x402. Kept on a rolling 90-day window.","operationId":"store_vector-upsert","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the upserted vector].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"dim":{"type":"number"},"bytes":{"type":"number"},"expiresAt":{"type":"string"}},"required":["id","dim","bytes","expiresAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"store.vector-upsert","x-2s-version":null,"x-2s-price":{"usd":0.005},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ns":{"type":"string","description":"Namespace (an index) to group vectors. Vectors in a namespace should share dimensionality."},"id":{"type":"string","description":"Vector id within the namespace, up to 256 chars."},"embedding":{"type":"array","items":{"type":"number"},"minItems":1,"maxItems":4096,"description":"The embedding as a float array (your model's output). 1-4096 dims."},"body":{"type":"string","description":"Optional source text returned with query hits (e.g. the chunk this vector embeds)."},"meta":{"description":"Optional JSON metadata returned with query hits. e.g. {\"docId\":\"d1\",\"page\":3}."}},"required":["ns","id","embedding"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/sunrise/compute":{"get":{"tags":["sunrise"],"summary":"Compute sunrise, sunset, solar noon, and...","description":"Compute sunrise, sunset, solar noon, and civil/nautical/astronomical twilight times for a coordinate + date. Query: lat (-90..90), lon (-180..180), date (YYYY-MM-DD). All times returned as ISO 8601 UTC. At high latitudes near solstices an event may not occur (polar day/night) — those fields return null and a note is included. dayLengthMinutes is the sunrise→sunset interval.","operationId":"sunrise_compute","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [solarTimes] (one snapshot: sunrise, sunset, solar noon, civil/nautical/astronomical twilight, dayLengthMinutes, notes); total = 1; meta.query echoes the request.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"date":{"type":"string"}},"required":["latitude","longitude","date"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"sunrise.compute","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"date","in":"query","required":true,"description":"Date in YYYY-MM-DD format.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tax/vat":{"get":{"tags":["tax"],"summary":"Validate a European Union VAT number against the official...","description":"Validate a European Union VAT number against the official VIES (VAT Information Exchange System) register in real time. Confirms whether the VAT identifier is currently registered for intra-EU trade and, when the member state discloses them, returns the registered business name and address. Covers the 27 EU member states (Greece as EL) plus Northern Ireland (XI); Great Britain (GB) is not in VIES. Pass either a full identifier (vat=DE811569869) or country + number. Returns {valid, countryCode, vatNumber, name, address, requestDate, reason}. When a member-state register is temporarily down, returns a retryable 503 rather than a false negative. Data from the European Commission VIES service.","operationId":"tax_vat","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [VAT check result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean","description":"True only when VIES confirms the number is currently registered."},"countryCode":{"type":"string"},"vatNumber":{"type":"string"},"name":{"type":"string","nullable":true,"description":"Registered legal name, when the member state discloses it."},"address":{"type":"string","nullable":true,"description":"Registered address (single line), when disclosed."},"requestDate":{"type":"string","nullable":true,"description":"VIES request timestamp (ISO 8601)."},"reason":{"type":"string","nullable":true,"description":"Why valid is false, when applicable."}},"required":["input","valid","countryCode","vatNumber","name","address","requestDate","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tax.vat","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"vat","in":"query","required":false,"description":"Full VAT identifier: 2-letter country prefix + number, e.g. \"DE811569869\" or \"NL810433941B01\" (spaces/dots/hyphens allowed).","schema":{"type":"string","minLength":3,"maxLength":20}},{"name":"country","in":"query","required":false,"description":"2-letter VAT country prefix, e.g. \"DE\". Greece is EL (GR also accepted); Northern Ireland is XI. Use with number.","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"number","in":"query","required":false,"description":"The VAT number without the country prefix, e.g. \"811569869\". Use with country.","schema":{"type":"string","minLength":2,"maxLength":18}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tax/vat-rates":{"get":{"tags":["tax"],"summary":"Current EU VAT rates by member state - standard rate plus...","description":"Current EU VAT rates by member state — standard rate plus reduced/super-reduced/parking/zero rates. Pass `country` (ISO 2-letter; Greece is EL) for one state, or omit it for all 27. Each result returns the standard rate, the list of reduced rates in force, every rate category with its percentage, and the date the rates are in force. Source: European Commission TEDB (Taxes in Europe Database), refreshed regularly. Pairs with tax.vat (which validates a specific VAT number against the live VIES register).","operationId":"tax_vat-rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-member-state VAT rate summaries; total = number of states returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"memberState":{"type":"string","description":"ISO 2-letter member-state code (Greece = EL)."},"standardRate":{"type":"number","nullable":true,"description":"Standard VAT rate (%)."},"reducedRates":{"type":"array","items":{"type":"number"},"description":"Reduced rates in force (%), ascending."},"categories":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"rate":{"type":"number"}},"required":["category","rate"],"additionalProperties":false},"description":"Every rate category (STANDARD/REDUCED/…) with its percentage."},"situationOn":{"type":"string","nullable":true,"description":"Date the rates are in force (YYYY-MM-DD)."}},"required":["memberState","standardRate","reducedRates","categories","situationOn"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tax.vat-rates","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tcg/card":{"get":{"tags":["tcg"],"summary":"Price a single trading card.","description":"Price a single trading card. Pass game (categoryId or name), set (the groupId), and productId (the TCGplayer product id, from tcg.set-prices). Returns the matching card { productId, name, number, rarity, prices:[{ subType, market, low, mid, high }], url } with every printing/subtype. 404 if the productId is not in that set. Source: TCGplayer-derived pricing via tcgcsv.com.","operationId":"tcg_card","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the one matching card with its per-subtype prices]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"number"},"name":{"type":"string"},"number":{"type":"string","nullable":true},"rarity":{"type":"string","nullable":true},"prices":{"type":"array","items":{"type":"object","properties":{"subType":{"type":"string","nullable":true},"market":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"mid":{"type":"number","nullable":true},"high":{"type":"number","nullable":true}},"required":["subType","market","low","mid","high"],"additionalProperties":false}},"url":{"type":"string","nullable":true}},"required":["productId","name","number","rarity","prices","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"categoryId":{"type":"number"},"groupId":{"type":"number"}},"required":["categoryId","groupId"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tcg.card","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"game","in":"query","required":true,"description":"TCGplayer game: categoryId (e.g. 3) or name (e.g. \"pokemon\").","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"set","in":"query","required":true,"description":"groupId of the set (from tcg.sets).","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"name":"productId","in":"query","required":true,"description":"TCGplayer productId of the card (from tcg.set-prices).","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tcg/games":{"get":{"tags":["tcg"],"summary":"List every trading-card game / category covered by...","description":"List every trading-card game / category covered by TCGplayer pricing (Magic: The Gathering, Pokemon, Yu-Gi-Oh!, Disney Lorcana, One Piece, and ~85 more). Each row is { categoryId, name, displayName }. Use the categoryId (or the name) as the `game` parameter on tcg.sets, tcg.set-prices, and tcg.card. No parameters. Source: TCGplayer-derived pricing via tcgcsv.com.","operationId":"tcg_games","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one row per game/category]; total = number of games.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"categoryId":{"type":"number"},"name":{"type":"string"},"displayName":{"type":"string"}},"required":["categoryId","name","displayName"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tcg.games","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tcg/set-prices":{"get":{"tags":["tcg"],"summary":"Price an entire trading-card set in one call.","description":"Price an entire trading-card set in one call. Pass game (categoryId or name, e.g. \"pokemon\") and set (the groupId from tcg.sets). Returns each card joined to its prices: { productId, name, number, rarity, prices:[{ subType, market, low, mid, high }], url }. subType separates printings (Normal, Foil, Reverse Holofoil, 1st Edition, etc.). Capped to limit cards (default 100, max 500); total is the full set size (pre-limit), meta.returned is how many rows came back. This is the core \"value a whole set / list card prices\" call. Source: TCGplayer-derived pricing via tcgcsv.com.","operationId":"tcg_set-prices","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = cards with their per-subtype prices (capped to limit); total = full set card count; meta.returned = rows returned.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"number"},"name":{"type":"string"},"number":{"type":"string","nullable":true},"rarity":{"type":"string","nullable":true},"prices":{"type":"array","items":{"type":"object","properties":{"subType":{"type":"string","nullable":true},"market":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"mid":{"type":"number","nullable":true},"high":{"type":"number","nullable":true}},"required":["subType","market","low","mid","high"],"additionalProperties":false}},"url":{"type":"string","nullable":true}},"required":["productId","name","number","rarity","prices","url"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"categoryId":{"type":"number"},"groupId":{"type":"number"},"returned":{"type":"number"}},"required":["categoryId","groupId","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tcg.set-prices","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"game","in":"query","required":true,"description":"TCGplayer game: categoryId (e.g. 3) or name (e.g. \"pokemon\").","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"set","in":"query","required":true,"description":"groupId of the set (from tcg.sets).","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"name":"limit","in":"query","required":false,"description":"Max cards to return (default 100, max 500).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tcg/sets":{"get":{"tags":["tcg"],"summary":"List the sets (groups) for a trading-card game - e.g.","description":"List the sets (groups) for a trading-card game — e.g. every Pokemon or Magic: The Gathering set. Pass game (a categoryId like 3, or a name like \"pokemon\"/\"magic\" — resolved against tcg.games), optional q (case-insensitive substring filter on set name), and optional limit (default 100, max 500). Each row is { groupId, name, abbreviation, publishedOn, isSupplemental }. Use the groupId as the `set` parameter on tcg.set-prices / tcg.card. total is the full match count (pre-limit). Source: TCGplayer-derived pricing via tcgcsv.com.","operationId":"tcg_sets","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = sets (capped to limit); total = full match count; meta.categoryId is the resolved game id.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"groupId":{"type":"number"},"name":{"type":"string"},"abbreviation":{"type":"string","nullable":true},"publishedOn":{"type":"string","nullable":true},"isSupplemental":{"type":"boolean"}},"required":["groupId","name","abbreviation","publishedOn","isSupplemental"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"categoryId":{"type":"number"},"returned":{"type":"number"}},"required":["categoryId","returned"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tcg.sets","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"game","in":"query","required":true,"description":"TCGplayer game: categoryId (e.g. 3) or name (e.g. \"pokemon\", \"magic\").","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"q","in":"query","required":false,"description":"Case-insensitive substring filter on set name.","schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Max sets to return (default 100, max 500).","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/telecom/fcc-filings":{"get":{"tags":["telecom"],"summary":"Search FCC Electronic Comment Filing System (ECFS) filings...","description":"Search FCC Electronic Comment Filing System (ECFS) filings for a proceeding/docket (e.g. 17-108 net neutrality, 11-42 Lifeline). Optionally filter by filer name. Returns the newest filings with the submission id, filer, type, lead bureau, received/disseminated dates, and document count. Public-domain federal data. Track FCC regulatory dockets, comments, and ex-parte filings an LLM can't recite fresh.","operationId":"telecom_fcc-filings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = filings (newest first); total = filing count; meta carries proceeding + upstream total.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"proceeding":{"type":"string","nullable":true},"filer":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"bureau":{"type":"string","nullable":true},"dateReceived":{"type":"string","nullable":true},"dateDisseminated":{"type":"string","nullable":true},"documentCount":{"type":"number"}},"required":["id","proceeding","filer","type","bureau","dateReceived","dateDisseminated","documentCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"proceeding":{"type":"string"},"total":{"type":"number","nullable":true}},"required":["proceeding","total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"telecom.fcc-filings","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"proceeding","in":"query","required":true,"description":"Proceeding.","schema":{"type":"string","pattern":"^\\d{1,3}-\\d{1,4}$"}},{"name":"filer","in":"query","required":false,"description":"Filer.","schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/telecom/market-area":{"get":{"tags":["telecom"],"summary":"Map a US latitude/longitude to its FCC spectrum-licensing...","description":"Map a US latitude/longitude to its FCC spectrum-licensing geographies — Cellular Market Area (CMA), Basic Trading Area (BTA), Major Trading Area (MTA), Partial Economic Area (PEA), and the BEA/EAG/MEA/REAG economic areas — plus the 2020 Census block FIPS, county, and block population. Keyless, public-domain (FCC). These market areas define spectrum-license boundaries (which CMA/BTA/PEA a point falls in) — distinct from ordinary geocoding, and not derivable by an LLM.","operationId":"telecom_market-area","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one market-area reading for the point]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"blockFips":{"type":"string","nullable":true},"countyFips":{"type":"string","nullable":true},"county":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateFips":{"type":"string","nullable":true},"blockPopulation2020":{"type":"number","nullable":true},"spectrumMarkets":{"type":"object","properties":{"cellularCMA":{"type":"string","nullable":true},"basicTradingBTA":{"type":"string","nullable":true},"majorTradingMTA":{"type":"string","nullable":true},"partialEconomicPEA":{"type":"string","nullable":true},"economicAreaBEA":{"type":"string","nullable":true},"economicAreaGroupingEAG":{"type":"string","nullable":true},"majorEconomicMEA":{"type":"string","nullable":true},"regionalEconomicREAG":{"type":"string","nullable":true}},"required":["cellularCMA","basicTradingBTA","majorTradingMTA","partialEconomicPEA","economicAreaBEA","economicAreaGroupingEAG","majorEconomicMEA","regionalEconomicREAG"],"additionalProperties":false}},"required":["lat","lon","blockFips","countyFips","county","state","stateFips","blockPopulation2020","spectrumMarkets"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"telecom.market-area","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tides/now":{"get":{"tags":["tides"],"summary":"Next high/low tide predictions near a coordinate.","description":"Next high/low tide predictions near a coordinate. Query: lat (-90..90), lon (-180..180), radius_km (1-500, default 100), hours (1-72, default 24). Returns { query, station:{ id, name, latitude, longitude, state, distanceKm }, predictions[{ time (station local), type: \"high\"|\"low\", heightMeters }], source }. Returns 404 NO_STATION if no NOAA tide station is within radius. Heights are referenced to MLLW (Mean Lower-Low Water).","operationId":"tides_now","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ station, predictions }] (one nearest station + its tide predictions); total = 1; meta.query echoes the request, meta.datum is the height reference (MLLW). 404 NO_STATION if no station within radius.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"station":{"type":"object","additionalProperties":{},"description":"Nearest NOAA tide station: id, name, latitude, longitude, state, distanceKm."},"predictions":{"type":"array","items":{"type":"object","additionalProperties":{}},"description":"Next high/low tide predictions: time (station local), type (high|low), heightMeters."}},"required":["station","predictions"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"radiusKm":{"type":"number"},"hours":{"type":"number"}},"required":["latitude","longitude","radiusKm","hours"],"additionalProperties":false},"datum":{"type":"string"}},"required":["query","datum"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tides.now","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"radius_km","in":"query","required":false,"description":"Search radius in kilometers.","schema":{"type":"number","minimum":1,"maximum":500,"default":100}},{"name":"hours","in":"query","required":false,"description":"Look-back window, in hours.","schema":{"type":"number","minimum":1,"maximum":72,"default":24}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/time/parse":{"get":{"tags":["time"],"summary":"Parse a timestamp or date string into canonical forms...","description":"Parse a timestamp or date string into canonical forms — zero-dependency. Accepts unix seconds/millis or any standard date string (ISO-8601, RFC-2822, etc.). Returns UTC ISO, unix seconds + millis, RFC-2822, calendar components (year/month/day/hour/minute/second/weekday), ISO weekday, ISO year+week, and day-of-year. Pass an IANA timezone (tz) to also get the DST-correct local wall-clock time and UTC offset. The reliable time primitive for agents normalizing or converting timestamps.","operationId":"time_parse","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one parsed timestamp].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"utc":{"type":"object","properties":{"iso":{"type":"string"},"year":{"type":"number"},"month":{"type":"number"},"day":{"type":"number"},"hour":{"type":"number"},"minute":{"type":"number"},"second":{"type":"number"},"weekday":{"type":"string"}},"required":["iso","year","month","day","hour","minute","second","weekday"],"additionalProperties":false},"unixSeconds":{"type":"number"},"unixMillis":{"type":"number"},"isoWeekday":{"type":"number"},"dayOfYear":{"type":"number"},"isoYear":{"type":"number"},"isoWeek":{"type":"number"},"rfc2822":{"type":"string"},"local":{"type":"object","properties":{"timezone":{"type":"string"},"offset":{"type":"string"},"offsetMinutes":{"type":"number"},"iso":{"type":"string"},"year":{"type":"number"},"month":{"type":"number"},"day":{"type":"number"},"hour":{"type":"number"},"minute":{"type":"number"},"second":{"type":"number"},"weekday":{"type":"string"}},"required":["timezone","offset","offsetMinutes","iso","year","month","day","hour","minute","second","weekday"],"additionalProperties":false,"nullable":true}},"required":["input","utc","unixSeconds","unixMillis","isoWeekday","dayOfYear","isoYear","isoWeek","rfc2822","local"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"time.parse","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"input","in":"query","required":true,"description":"Timestamp or date string, e.g. \"2026-06-21T15:30:00Z\" or 1750000000.","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"tz","in":"query","required":false,"description":"Optional IANA timezone for local conversion, e.g. America/New_York.","schema":{"type":"string","minLength":2,"maxLength":64}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/timezone/lookup":{"get":{"tags":["timezone"],"summary":"Resolve a coordinate to its IANA timezone and return the...","description":"Resolve a coordinate to its IANA timezone and return the current UTC offset, local wall time, DST status, and short abbreviation. Query: lat (-90..90), lon (-180..180), at (optional ISO 8601 instant; defaults to now). Returns { tz, abbreviation, offsetMinutes, offsetHours, localTime, observesDst, isDst, januaryOffsetMinutes, julyOffsetMinutes, instant, source }. Polygon lookup against a CC0 timezone boundary index; offsets and DST come from the runtime tzdata so transition rules stay current. Use when scheduling for a coordinate, converting timestamps to local wall time, or checking whether a location is currently observing daylight saving.","operationId":"timezone_lookup","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [timezone] (one snapshot: tz, abbreviation, offset, localTime, DST flags, instant); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"tz":{"type":"string","description":"IANA timezone identifier — e.g. \"America/Los_Angeles\"."},"abbreviation":{"type":"string","description":"Short timezone abbreviation at `instant` — e.g. \"PDT\", \"JST\"."},"offsetMinutes":{"type":"integer","description":"UTC offset at `instant`, in signed minutes."},"offsetHours":{"type":"number","description":"UTC offset at `instant`, in signed hours (may be fractional for 30/45-minute zones)."},"localTime":{"type":"string","description":"ISO 8601 local wall time with offset suffix — e.g. \"2026-06-03T08:43:15-07:00\"."},"observesDst":{"type":"boolean","description":"True if this zone has different offsets across the year."},"isDst":{"type":"boolean","description":"True if `instant` falls inside a DST/summer-shift period for this zone."},"januaryOffsetMinutes":{"type":"integer","description":"Offset on Jan 15 of `instant`'s year — representative northern-hemisphere winter."},"julyOffsetMinutes":{"type":"integer","description":"Offset on Jul 15 of `instant`'s year — representative northern-hemisphere summer."},"instant":{"type":"string","description":"UTC instant the lookup was computed at (echoed `at`, or current server time)."}},"required":["tz","abbreviation","offsetMinutes","offsetHours","localTime","observesDst","isDst","januaryOffsetMinutes","julyOffsetMinutes","instant"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"timezone.lookup","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in degrees, -90..90.","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in degrees, -180..180.","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"at","in":"query","required":false,"description":"Optional ISO 8601 instant. Defaults to the current server time.","schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tld/info":{"get":{"tags":["tld"],"summary":"TLD registry intelligence and public-suffix analysis.","description":"TLD registry intelligence and public-suffix analysis. Mode 1 (tld=io): IANA root-zone metadata — type (generic / country-code / sponsored), managing organization, unicode form for IDN TLDs. Mode 2 (domain=shop.example.co.uk): full Public Suffix List algorithm — the effective public suffix (co.uk), the registrable domain (example.co.uk), the subdomain part, the matched PSL rule, and whether the suffix is ICANN (registry) or private (corporate, e.g. github.io / s3.amazonaws.com) — plus the root-zone metadata for its TLD. Correctly handles wildcard and exception rules and IDN/punycode input. Use for cookie scoping, per-registrant rate limiting, URL dedup, and abuse/phishing analysis. Data: IANA root zone + Mozilla PSL, refreshed weekly.","operationId":"tld_info","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one TLD/domain analysis] (IANA TLD metadata, plus PSL public-suffix / registrable-domain analysis in domain mode); total = 1; meta.sources lists both upstream attributions.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string","description":"Normalized (punycode) query value."},"tld":{"type":"object","properties":{"tld":{"type":"string","description":"ASCII/punycode TLD label."},"unicodeTld":{"type":"string","description":"Unicode display form (differs for IDN TLDs)."},"type":{"type":"string","description":"IANA delegation type: generic, country-code, sponsored, generic-restricted, infrastructure, or test."},"manager":{"type":"string","nullable":true,"description":"Sponsoring organization; null when unassigned/retired."}},"required":["tld","unicodeTld","type","manager"],"additionalProperties":false,"nullable":true,"description":"IANA root-zone metadata; null when the TLD is not in the root zone."},"suffix":{"type":"object","properties":{"publicSuffix":{"type":"string"},"registrableDomain":{"type":"string","nullable":true},"subdomain":{"type":"string","nullable":true},"matchedRule":{"type":"string"},"section":{"type":"string","enum":["icann","private","implicit"]},"isWildcard":{"type":"boolean"},"isException":{"type":"boolean"}},"required":["publicSuffix","registrableDomain","subdomain","matchedRule","section","isWildcard","isException"],"additionalProperties":false,"nullable":true,"description":"PSL analysis (domain mode only)."}},"required":["query","tld","suffix"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"},"description":"All attributions: IANA root zone + Mozilla PSL."}},"required":["sources"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tld.info","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"tld","in":"query","required":false,"description":"TLD label, e.g. \"io\" or \".рф\". Provide tld or domain, not both.","schema":{"type":"string","minLength":2,"maxLength":64}},{"name":"domain","in":"query","required":false,"description":"Domain name to analyze, e.g. \"shop.example.co.uk\".","schema":{"type":"string","minLength":3,"maxLength":253}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/tls/cert-info":{"get":{"tags":["tls"],"summary":"Open a live TLS connection to a host and return its...","description":"Open a live TLS connection to a host and return its certificate. Give a host (and optional port, default 443). Returns the negotiated TLS protocol + cipher, whether the chain validates against system roots, and the leaf certificate's subject + issuer (CN/O/C), validity window (valid-from / valid-to), days until expiry + expired flag, serial number, SHA-256 fingerprint, Subject Alternative Names, and the chain length. A genuine network probe agents can't do from their sandbox — for cert-expiry monitoring, TLS audits, and verifying who issued a site's certificate. SSRF-guarded: the host must resolve to a public address. Self-signed and expired certs are reported (not rejected).","operationId":"tls_cert-info","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [certificate probe] (host, port, protocol, cipher, chain validity, leaf cert subject/issuer/validity/SANs); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"number"},"resolvedIp":{"type":"string"},"protocol":{"type":"string","nullable":true},"cipher":{"type":"object","properties":{"name":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"required":["name","version"],"additionalProperties":false,"nullable":true},"authorized":{"type":"boolean"},"authorizationError":{"type":"string","nullable":true},"certificate":{"type":"object","properties":{"subject":{"type":"object","additionalProperties":{}},"issuer":{"type":"object","additionalProperties":{}},"validFrom":{"type":"string","nullable":true},"validTo":{"type":"string","nullable":true},"daysUntilExpiry":{"type":"number","nullable":true},"expired":{"type":"boolean"},"serialNumber":{"type":"string","nullable":true},"fingerprintSha256":{"type":"string","nullable":true},"subjectAltNames":{"type":"array","items":{"type":"string"}},"isCa":{"type":"boolean","nullable":true}},"required":["subject","issuer","validFrom","validTo","daysUntilExpiry","expired","serialNumber","fingerprintSha256","subjectAltNames","isCa"],"additionalProperties":false},"chainLength":{"type":"number"}},"required":["host","port","resolvedIp","protocol","cipher","authorized","authorizationError","certificate","chainLength"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"tls.cert-info","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"host","in":"query","required":true,"description":"Hostname to look up.","schema":{"type":"string","minLength":1,"maxLength":253}},{"name":"port","in":"query","required":false,"description":"Port.","schema":{"type":"integer","minimum":1,"maximum":65535,"default":443}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/trade/commodity-resolve":{"get":{"tags":["trade"],"summary":"Cross-walk a traded-good code across HS (6-digit...","description":"Cross-walk a traded-good code across HS (6-digit international Harmonized System) <-> HTS (US 10-digit import) <-> Schedule B (US 10-digit export) <-> NAICS industry. Pass the system + code and get the shared HS6, the official description, the matching Schedule B and HTS national lines, the NAICS industry(ies), and the SITC code. The join an import/export, customs, or supply-chain agent needs to move between the export schedule, the import tariff schedule, the international HS level, and the industry that makes the good -- all keyed on the globally-harmonized HS6 bridge. Backed by bundled public-domain US Census Foreign Trade concordances (Schedule B + HTS, latest annual). For a 10-digit input the NAICS is narrowed to that exact national line; cross-schedule lines are surfaced via the shared HS6 and flagged in notes. Companion to trade.tariff (duty rates) and business.naics (industry detail).","operationId":"trade_commodity-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one commodity crosswalked across HS/HTS/Schedule B/NAICS via the HS6 bridge]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"resolvedFrom":{"type":"string","enum":["hs","hts","scheduleb"]},"input":{"type":"string"},"hs6":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"naics":{"type":"array","items":{"type":"string"}},"sitc":{"type":"array","items":{"type":"string"}},"scheduleB":{"type":"array","items":{"type":"string"},"description":"US export (Schedule B) 10-digit lines under this HS6."},"hts":{"type":"array","items":{"type":"string"},"description":"US import (HTS) 10-digit lines under this HS6."},"notes":{"type":"array","items":{"type":"string"}}},"required":["resolvedFrom","input","hs6","description","naics","sitc","scheduleB","hts","notes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"trade.commodity-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"system","in":"query","required":true,"description":"Which system the input code is in: hs (6-digit intl), hts (US import), scheduleb (US export).","schema":{"type":"string","enum":["hs","hts","scheduleb"]}},{"name":"code","in":"query","required":true,"description":"The commodity code, dots optional, e.g. 090121, 0901210000, or 8703.23.00.","schema":{"type":"string","minLength":4,"maxLength":14}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/trade/flows":{"get":{"tags":["trade"],"summary":"Annual international merchandise-trade flows from UN...","description":"Annual international merchandise-trade flows from UN Comtrade (HS classification). Pass reporter (the country whose trade you want; ISO-2/ISO-3 like 'US'/'USA', a UN M49 number, or 'World'), optional partner (counterparty; default World), year (YYYY), flow (export|import), and commodity: 'TOTAL' (all goods, default), a specific HS code ('27', '8703'), or 'AG2'/'AG4'/'AG6' for a top-commodity breakdown at the 2/4/6-digit level. Returns trade value (USD), net weight, quantity, and the HS commodity, sorted by value. Country names are resolved from Comtrade's own reference data.","operationId":"trade_flows","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = trade-flow records (sorted by value desc); total = upstream row count; meta.query echoes the resolved request (incl. M49 codes).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"reporter":{"type":"string","nullable":true},"reporterIso":{"type":"string","nullable":true},"partner":{"type":"string","nullable":true},"partnerIso":{"type":"string","nullable":true},"flow":{"type":"string","nullable":true},"period":{"type":"string","nullable":true},"commodityCode":{"type":"string","nullable":true},"commodity":{"type":"string","nullable":true},"valueUsd":{"type":"number","nullable":true},"netWeightKg":{"type":"number","nullable":true},"quantity":{"type":"number","nullable":true},"quantityUnit":{"type":"string","nullable":true}},"required":["reporter","reporterIso","partner","partnerIso","flow","period","commodityCode","commodity","valueUsd","netWeightKg","quantity","quantityUnit"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"reporter":{"type":"string"},"reporterCode":{"type":"integer"},"partner":{"type":"string"},"partnerCode":{"type":"integer"},"year":{"type":"string"},"flow":{"type":"string"},"commodity":{"type":"string"}},"required":["reporter","reporterCode","partner","partnerCode","year","flow","commodity"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"trade.flows","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"reporter","in":"query","required":true,"description":"Reporting country: ISO-2/ISO-3 (\"US\"/\"USA\"), UN M49 number, or \"World\".","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"partner","in":"query","required":false,"description":"Partner/counterparty country (same formats). Default \"World\" (all partners aggregated).","schema":{"type":"string","minLength":2,"maxLength":40,"default":"World"}},{"name":"year","in":"query","required":true,"description":"Calendar year (YYYY). Comtrade annual data typically lags ~6-12 months.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"flow","in":"query","required":false,"description":"Trade direction from the reporter's perspective. Default export.","schema":{"type":"string","enum":["export","import"],"default":"export"}},{"name":"commodity","in":"query","required":false,"description":"\"TOTAL\" (all goods, default), a specific HS code (\"27\", \"8703\"), or \"AG2\"/\"AG4\"/\"AG6\" for a top-commodity breakdown.","schema":{"type":"string","minLength":2,"maxLength":8,"default":"TOTAL"}},{"name":"limit","in":"query","required":false,"description":"Max rows to return (1-100), sorted by trade value desc. Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/trade/locode":{"get":{"tags":["trade"],"summary":"Look up or search UN/LOCODE - the United Nations Code for...","description":"Look up or search UN/LOCODE — the United Nations Code for Trade and Transport Locations (~116k locations, all countries). Pass `locode` for an exact code (e.g. USNYC or 'US NYC'). Or pass `query` to search location names, optionally filtered by `country` (ISO 3166 alpha-2) and `function` (port, rail, road, airport, postal, multimodal, fixed, border). Each result: locode, name, country, subdivision, transport functions, entry status, IATA code where it differs, and coordinates. UN/LOCODE is the standard location identifier in shipping schedules, EDI messages, and customs documents.","operationId":"trade_locode","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = UN/LOCODE entries (single exact match, or ranked name-search results); total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"locode":{"type":"string","description":"5-character UN/LOCODE (country + location)."},"country":{"type":"string","description":"ISO 3166 alpha-2 country code."},"location":{"type":"string","description":"3-character location part of the code."},"name":{"type":"string","description":"Place name (with diacritics)."},"nameAscii":{"type":"string","description":"Place name without diacritics."},"subdivision":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["code","name"],"additionalProperties":false,"nullable":true,"description":"ISO 3166-2 subdivision (state/province), when assigned."},"functions":{"type":"object","properties":{"raw":{"type":"string","description":"Raw 8-position UN/LOCODE function classifier."},"list":{"type":"array","items":{"type":"string"},"description":"Decoded transport functions (port, rail terminal, airport, …)."}},"required":["raw","list"],"additionalProperties":false},"status":{"type":"object","properties":{"code":{"type":"string"},"meaning":{"type":"string","nullable":true}},"required":["code","meaning"],"additionalProperties":false,"nullable":true,"description":"Entry status code + meaning (e.g. AA = approved by national agency)."},"iata":{"type":"string","nullable":true,"description":"IATA code, only when it differs from the location part."},"coordinates":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"additionalProperties":false,"nullable":true},"updated":{"type":"string","nullable":true,"description":"Last-change marker from the source list (YYMM)."}},"required":["locode","country","location","name","nameAscii","subdivision","functions","status","iata","coordinates","updated"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"trade.locode","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"locode","in":"query","required":false,"description":"Exact UN/LOCODE to look up (e.g. USNYC or 'US NYC'). Pass this OR query.","schema":{"type":"string","pattern":"^[A-Za-z]{2}[\\s-]?[A-Za-z0-9]{3}$"}},{"name":"query","in":"query","required":false,"description":"Location name to search (e.g. Rotterdam). Pass this OR locode.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"country","in":"query","required":false,"description":"Restrict query-mode results to one country (ISO 3166 alpha-2, e.g. NL).","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"name":"function","in":"query","required":false,"description":"Restrict query-mode results to locations with this transport function.","schema":{"type":"string","enum":["port","rail","road","airport","postal","multimodal","fixed","border"]}},{"name":"limit","in":"query","required":false,"description":"Max query-mode results, 1–50 (default 10).","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/trade/tariff":{"get":{"tags":["trade"],"summary":"Look up or search the US Harmonized Tariff Schedule (HTS /...","description":"Look up or search the US Harmonized Tariff Schedule (HTS / HS codes). Pass `code` for an exact HTS number (dots optional) — returns that line plus its 10-digit statistical suffixes with duty rates. Or pass `query` for free-text search (e.g. 'electric toothbrush', 'roasted coffee') → ranked candidate HS codes by hierarchical heading. Each result: htsno, chapter, description, full heading path, units, and duty rates (general/MFN, special/FTA, column-2). ~29.6k lines, public-domain USITC data. The deterministic backbone for tariff classification in import/export and ERP item setup.","operationId":"trade_tariff","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = HTS lines (exact match + suffixes, or ranked search candidates); total = match count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"htsno":{"type":"string"},"chapter":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"heading":{"type":"string","nullable":true,"description":"Full hierarchical heading path (ancestors > leaf)."},"units":{"type":"array","items":{"type":"string"},"nullable":true},"duty":{"type":"object","properties":{"general":{"type":"string","nullable":true,"description":"General (MFN) duty rate."},"special":{"type":"string","nullable":true,"description":"Special (FTA / preference) rate."},"other":{"type":"string","nullable":true,"description":"Column 2 rate."}},"required":["general","special","other"],"additionalProperties":false}},"required":["htsno","chapter","description","heading","units","duty"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"trade.tariff","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"code","in":"query","required":false,"description":"Code to look up.","schema":{"type":"string","pattern":"^[0-9.\\s]{4,14}$"}},{"name":"query","in":"query","required":false,"description":"Free-text search query.","schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/transcribe/audio":{"post":{"tags":["transcribe"],"summary":"Transcribe an audio file to text.","description":"Transcribe an audio file to text. POST { url, language?, diarize? } — the audio is fetched from your URL (wav, mp3, m4a/aac, ogg/opus, flac, webm; up to 15 MB and 15 minutes per call — split longer recordings and call once per segment). Returns the full punctuated transcript, overall confidence, audio duration, detected or specified language (BCP-47, e.g. \"en\", \"es\"), word-level timestamps with confidences, and — with diarize=true — speaker-segmented utterances (who said what, when). High-accuracy speech recognition for meeting notes, podcast processing, voicemail handling, and media monitoring.","operationId":"transcribe_audio","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one transcript] (full punctuated text, confidence, duration, language, word timestamps, optional speaker diarization); total = 1; meta.wordCount = word count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"transcript":{"type":"string","description":"Full punctuated transcript."},"confidence":{"type":"number"},"durationSeconds":{"type":"number"},"language":{"type":"string","nullable":true},"words":{"type":"array","items":{"type":"object","properties":{"word":{"type":"string"},"start":{"type":"number"},"end":{"type":"number"},"confidence":{"type":"number"},"speaker":{"type":"number","nullable":true}},"required":["word","start","end","confidence","speaker"],"additionalProperties":false},"description":"Word-level timestamps (seconds)."},"utterances":{"type":"array","items":{"type":"object","properties":{"speaker":{"type":"number","nullable":true},"start":{"type":"number"},"end":{"type":"number"},"text":{"type":"string"}},"required":["speaker","start","end","text"],"additionalProperties":false},"description":"Speaker turns; populated when diarize=true."}},"required":["transcript","confidence","durationSeconds","language","words","utterances"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"wordCount":{"type":"integer","description":"Number of words in the transcript."}},"required":["wordCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"transcribe.audio","x-2s-version":null,"x-2s-price":{"usd":0.1305},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.130500"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public audio URL. Caps: 15 MB, 15 minutes."},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$","description":"Two-letter ISO language code."},"diarize":{"type":"boolean","default":false,"description":"Diarize."}},"required":["url"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/travel/advisory":{"get":{"tags":["travel"],"summary":"Current US State Department travel advisories.","description":"Current US State Department travel advisories. Omit country for the full list (every country with an active advisory), or pass country (name, case-insensitive substring) for one. Each entry returns the country, the advisory level (1 Exercise Normal Precautions, 2 Exercise Increased Caution, 3 Reconsider Travel, 4 Do Not Travel) with its label, a plain-text summary of the reasons (crime, terrorism, unrest, kidnapping, health, etc.), the official advisory link, and the published date. Sourced live from the official travel.state.gov RSS feed (US government, public domain). For trip planning, duty-of-care, and travel-risk screening.","operationId":"travel_advisory","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = advisories (one per country); meta.total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string"},"level":{"type":"integer","nullable":true},"levelLabel":{"type":"string","nullable":true},"headline":{"type":"string"},"summary":{"type":"string","nullable":true},"link":{"type":"string","nullable":true},"published":{"type":"string","nullable":true}},"required":["country","level","levelLabel","headline","summary","link","published"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total":{"type":"integer"}},"required":["total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"travel.advisory","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":false,"description":"Country name or ISO country code.","schema":{"type":"string","minLength":1,"maxLength":80}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/travel/visa":{"get":{"tags":["travel"],"summary":"Look up the visa requirement for a traveler with a given...","description":"Look up the visa requirement for a traveler with a given passport visiting a destination country. Pass passport and destination as ISO-3166 alpha-3, alpha-2, or country name (e.g. passport=USA destination=Japan). Returns the requirement category — 'visa free' (with visaFreeDays, the allowed days), 'visa on arrival', 'e-visa', 'eta' (electronic travel authorization), 'visa required' (must arrange in advance), or 'no admission' — plus a plain-language description and the resolved passport/destination names. Data from the community-maintained Passport Index dataset (MIT). Informational only — not official immigration advice; verify with the destination's embassy before travel.","operationId":"travel_visa","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [visa requirement]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"passport":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["code","name"],"additionalProperties":false},"destination":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["code","name"],"additionalProperties":false},"requirement":{"type":"string"},"category":{"type":"string","description":"visa required | visa free | visa on arrival | e-visa | eta | no admission | home country"},"visaFreeDays":{"type":"integer","nullable":true},"description":{"type":"string"},"note":{"type":"string"}},"required":["passport","destination","requirement","category","visaFreeDays","description","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"travel.visa","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"passport","in":"query","required":true,"description":"Passport.","schema":{"type":"string","minLength":2,"maxLength":60}},{"name":"destination","in":"query","required":true,"description":"Destination.","schema":{"type":"string","minLength":2,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/treasury/cash":{"get":{"tags":["treasury"],"summary":"Daily Treasury Statement (DTS) operating cash balance via...","description":"Daily Treasury Statement (DTS) operating cash balance via US Treasury Fiscal Data. Returns daily snapshots of the Treasury General Account (TGA) at the Federal Reserve plus tax-and-loan accounts and Federal Reserve deposit accounts. Each row carries record_date, account_type, close_today_bal, open_today_bal, open_month_bal, open_fiscal_year_bal. Useful for liquidity-tracking agents and macro researchers watching the Treasury Cash Balance heading into Treasury auctions, debt-ceiling pinch-points, etc. Fiscal Data filter syntax.","operationId":"treasury_cash","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Daily Treasury Statement cash balance.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","additionalProperties":{}}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"treasury.cash","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"filter","in":"query","required":false,"description":"Filter.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+(,[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+)*$","maxLength":800}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*(,-?[a-z][a-z0-9_]*)*$","maxLength":200}},{"name":"pageSize","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":100}},{"name":"pageNumber","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/treasury/debt":{"get":{"tags":["treasury"],"summary":"US National Debt - daily \"Debt to the Penny\" via US...","description":"US National Debt — daily \"Debt to the Penny\" via US Treasury Fiscal Data. Each row carries record_date, debt held by public, intragovernmental holdings, and total public debt outstanding (all USD, signed integers as strings to preserve precision). Optional `filter` uses Fiscal Data syntax: `col:op:val` joined by commas (ops: eq, lt, lte, gt, gte, in). Default sort is `-record_date` (newest first). Authoritative source for \"how much does the US owe?\" — every weekday since 1993.","operationId":"treasury_debt","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Daily Debt to the Penny.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","additionalProperties":{}}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"treasury.debt","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"filter","in":"query","required":false,"description":"Filter.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+(,[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+)*$","maxLength":800}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*(,-?[a-z][a-z0-9_]*)*$","maxLength":200}},{"name":"pageSize","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":100}},{"name":"pageNumber","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/treasury/exchange-rates":{"get":{"tags":["treasury"],"summary":"Official US Treasury exchange rates via US Treasury Fiscal...","description":"Official US Treasury exchange rates via US Treasury Fiscal Data. Used by federal agencies to report foreign-currency transactions in USD. Quarterly + ad-hoc updates per country/currency pair. Each row carries record_date, country, currency, country_currency_desc, exchange_rate, effective_date. Pair with `/api/fx/rates` (ECB Frankfurter, daily market rates) for cross-validation. Use Fiscal Data filter syntax — e.g. `filter=country:eq:Brazil` to scope to a single country.","operationId":"treasury_exchange-rates","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Official Treasury exchange rates.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","additionalProperties":{}}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"treasury.exchange-rates","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"filter","in":"query","required":false,"description":"Filter.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+(,[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+)*$","maxLength":800}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*(,-?[a-z][a-z0-9_]*)*$","maxLength":200}},{"name":"pageSize","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":100}},{"name":"pageNumber","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/treasury/monthly-statement":{"get":{"tags":["treasury"],"summary":"Monthly Treasury Statement (MTS) - Table 4: receipts by...","description":"Monthly Treasury Statement (MTS) — Table 4: receipts by source via US Treasury Fiscal Data. Returns monthly totals of federal government receipts grouped by classification (individual income tax, corporate income tax, social-insurance receipts, excise, customs, estate-and-gift, miscellaneous). Each row carries record_date, classification_id, classification_desc, current_month + current_fytd (fiscal year-to-date) gross_rcpt / refund / net_rcpt amounts, plus prior_fytd comparisons. Backbone of any \"how much money is the federal government bringing in\" question. Use Fiscal Data filter syntax.","operationId":"treasury_monthly-statement","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = Monthly Treasury Statement (Table 4) — federal receipts by source.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","additionalProperties":{}}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"treasury.monthly-statement","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"fields","in":"query","required":false,"description":"Fields.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*(,[a-z][a-z0-9_]*)*$","maxLength":400}},{"name":"filter","in":"query","required":false,"description":"Filter.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+(,[a-z][a-z0-9_]*:(eq|ne|lt|lte|gt|gte|in):[A-Za-z0-9._:\\-+/, ]+)*$","maxLength":800}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","pattern":"^-?[a-z][a-z0-9_]*(,-?[a-z][a-z0-9_]*)*$","maxLength":200}},{"name":"pageSize","in":"query","required":false,"description":"Number of results to return per page.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":100}},{"name":"pageNumber","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/url/clean":{"get":{"tags":["url"],"summary":"Fetch any URL and return its article content with the...","description":"Fetch any URL and return its article content with the clutter stripped — nav, ads, sidebars, footers, scripts, styles, comments removed via heuristic extraction (<article> / <main> / role=main / densest block). Choose the output with `format`: markdown (default), text, both (JSON envelope), html (a self-contained readable reader-view page, raw text/html), or pdf (a clean typeset reading document, raw application/pdf). html/pdf are built from the same cleaned content, so they carry no live page, no third-party assets, no trackers. SSRF-guarded, 512KB body cap, 8s timeout, 5 redirects max. JSON formats return { url, finalUrl, title, markdown?, text?, wordCount, sourceBytes }. This uses a raw HTTP fetch (no JavaScript) — for client-rendered / SPA pages whose content only appears after JS runs, use /api/url/render (same formats, headless-rendered). For a pixel-perfect image of the live page use /api/ai/screenshot; to enumerate a page or sitemap into its links use /api/url/map.","operationId":"url_clean","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"url.clean","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to process.","schema":{"type":"string","format":"uri","maxLength":2048}},{"name":"format","in":"query","required":false,"description":"Format.","schema":{"type":"string","enum":["markdown","text","both","html","pdf"],"default":"markdown"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/url/map":{"get":{"tags":["url"],"summary":"Discover the URLs a page or sitemap points at in a single...","description":"Discover the URLs a page or sitemap points at in a single fetch. Point it at an XML sitemap or sitemap-index and it returns the <loc> URLs; point it at an HTML page and it returns the <a href> links — auto-detected. URLs are resolved to absolute, de-duplicated, fragment-stripped, and http(s)-only. `limit` (1-2000, default 200) caps the count; `sameHostOnly` keeps only links on the same host. Single SSRF-guarded fetch, no JavaScript, stateless — NOT a recursive crawler: to go deeper, call map again on a child sitemap or a discovered page. Returns { url, finalUrl, source: \"sitemap\"|\"links\", count, capped, urls }.","operationId":"url_map","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"url":{"type":"string"},"finalUrl":{"type":"string"},"source":{"type":"string","enum":["sitemap","links"]},"count":{"type":"number"},"capped":{"type":"boolean"},"urls":{"type":"array","items":{"type":"string"}}},"required":["url","finalUrl","source","count","capped","urls"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"url.map","x-2s-version":null,"x-2s-price":{"usd":0.00108},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001080"},"protocols":[{"x402":{}}]},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to process.","schema":{"type":"string","format":"uri","maxLength":2048}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":2000,"default":200}},{"name":"sameHostOnly","in":"query","required":false,"description":"Same host only.","schema":{"anyOf":[{"type":"boolean"},{"type":"string"}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/url/render":{"get":{"tags":["url"],"summary":"Render a URL in a real headless browser (JavaScript...","description":"Render a URL in a real headless browser (JavaScript executed) and return its article content with the clutter stripped — same cleaning + output formats as /api/url/clean, but for client-rendered / SPA pages whose content only appears after JS runs (where a raw HTTP fetch returns an empty shell). `format`: markdown (default), text, both (JSON envelope), html (self-contained reader page, raw text/html), or pdf (typeset reading doc, raw application/pdf). Optional `waitUntil` (load|domcontentloaded|networkidle0|networkidle2, default networkidle2) and `timeoutMs` (1000-15000, default 12000) control how long to let JS settle. Use /api/url/clean instead for server-rendered pages — it is faster and cheaper; only reach for render when JS rendering is required.","operationId":"url_render","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"url.render","x-2s-version":null,"x-2s-price":{"usd":0.006},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to process.","schema":{"type":"string","format":"uri","maxLength":2048}},{"name":"format","in":"query","required":false,"description":"Format.","schema":{"type":"string","enum":["markdown","text","both","html","pdf"],"default":"markdown"}},{"name":"waitUntil","in":"query","required":false,"description":"Wait until.","schema":{"type":"string","enum":["load","domcontentloaded","networkidle0","networkidle2"]}},{"name":"timeoutMs","in":"query","required":false,"description":"Timeout ms.","schema":{"type":"integer","minimum":1000,"maximum":15000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/url/unfurl":{"get":{"tags":["url"],"summary":"Fetch any URL and extract structured page metadata: title...","description":"Fetch any URL and extract structured page metadata: title, description, og:image, canonical, favicon, site name, author, published time, language, and the first ~500 chars of body text. SSRF-guarded against private networks. 8s timeout, 512 KB max body. Returns the parsed metadata plus the raw og:/twitter:/itemprop meta dictionary for inspection.","operationId":"url_unfurl","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"url.unfurl","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"url","in":"query","required":true,"description":"URL to process.","schema":{"type":"string","format":"uri","maxLength":2048}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/aba":{"get":{"tags":["validate"],"summary":"Validate a US bank ABA routing number with the Federal...","description":"Validate a US bank ABA routing number with the Federal Reserve weighted mod-10 checksum (3-7-1) — not just a 9-digit regex. Returns {valid, routingNumber, district (routing-symbol class), reason}. Catches transposed digits in ACH/wire setup that a length check misses. Structure + checksum only; not a bank-directory existence lookup.","operationId":"validate_aba","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"routingNumber":{"type":"string","nullable":true},"district":{"type":"string","nullable":true,"description":"Routing-symbol class (Federal Reserve, thrift, electronic, traveler check)."},"reason":{"type":"string","nullable":true}},"required":["input","valid","routingNumber","district","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.aba","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"routingNumber","in":"query","required":true,"description":"Routing number.","schema":{"type":"string","minLength":1,"maxLength":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/batch":{"post":{"tags":["validate"],"summary":"Validate up to 100 identifiers of mixed kinds in a single...","description":"Validate up to 100 identifiers of mixed kinds in a single deterministic call. Pass items=[{type,value}] where type is one of: iban, gtin, aba, lei, bic, gln, sscc, isin, cusip. Each result (returned in input order, with its index and type) carries {valid, reason} plus the same type-specific fields the single-identifier endpoints return (e.g. gtin14, countryCode, district). One unsupported type or one bad value degrades to that item's valid:false — it never fails the batch. meta carries validCount/invalidCount. This collapses a record's worth of per-field checksum checks (IBAN + BIC + GTIN + LEI + …) into one round-trip instead of one LLM/HTTP hop per field.","operationId":"validate_batch","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-identifier results in input order (index, type, valid, reason + type-specific fields); total = items.length; meta carries validCount/invalidCount.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"validCount":{"type":"integer"},"invalidCount":{"type":"integer"}},"required":["validCount","invalidCount"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.batch","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":32,"description":"Filter results by type."},"value":{"type":"string","minLength":1,"maxLength":64,"description":"Value."}},"required":["type","value"],"additionalProperties":false},"minItems":1,"maxItems":100,"description":"Items."}},"required":["items"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/bic":{"get":{"tags":["validate"],"summary":"Validate a SWIFT/BIC code (ISO 9362): 8 or 11 characters =...","description":"Validate a SWIFT/BIC code (ISO 9362): 8 or 11 characters = 4-letter institution + 2-letter ISO country + 2-char location + optional 3-char branch, with the country position checked against ISO 3166. Returns {valid, bic, institution, country, location, branch, reason}. Structure validation only — not a SWIFT-directory existence lookup.","operationId":"validate_bic","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"bic":{"type":"string","nullable":true},"institution":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"branch":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","bic","institution","country","location","branch","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.bic","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"bic","in":"query","required":true,"description":"BIC.","schema":{"type":"string","minLength":1,"maxLength":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/cusip":{"get":{"tags":["validate"],"summary":"Validate a CUSIP (9-character US/Canada securities...","description":"Validate a CUSIP (9-character US/Canada securities identifier) with its mod-10 weighted check digit. Returns {valid, cusip, checkDigit, reason}. Catches transposed characters in security master / holdings data that a length check misses. Structure + checksum only.","operationId":"validate_cusip","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"cusip":{"type":"string","nullable":true},"checkDigit":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","cusip","checkDigit","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.cusip","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"cusip","in":"query","required":true,"description":"CUSIP.","schema":{"type":"string","minLength":1,"maxLength":12}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/gln":{"get":{"tags":["validate"],"summary":"Validate a GS1 GLN (Global Location Number) - 13 digits...","description":"Validate a GS1 GLN (Global Location Number) — 13 digits with the GS1 mod-10 check digit. GLNs identify trading parties and physical locations (ship-to, bill-to, warehouse) across CPG supply chains and EDI. Returns {valid, gln, checkDigit, reason}. Catches transposed digits a length check misses.","operationId":"validate_gln","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"gln":{"type":"string","nullable":true},"checkDigit":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","gln","checkDigit","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.gln","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"gln","in":"query","required":true,"description":"GLN.","schema":{"type":"string","minLength":1,"maxLength":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/gtin":{"get":{"tags":["validate"],"summary":"Validate a product barcode - GTIN-8/12/13/14, UPC-A...","description":"Validate a product barcode — GTIN-8/12/13/14, UPC-A, EAN-13, or ISBN-10/13 — with the GS1 mod-10 check digit (ISBN-10 uses mod-11). Returns {valid, type, gtin14 (canonical 14-digit form, left-padded), checkDigit, reason}. Normalizes every product identifier to one GTIN-14 key so a product-master/ETL pipeline can dedupe and validate SKUs in one deterministic call instead of doing checksum math in an LLM.","operationId":"validate_gtin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"type":{"type":"string","nullable":true,"description":"GTIN-8 | GTIN-12 | GTIN-13 | GTIN-14 | ISBN-10"},"gtin14":{"type":"string","nullable":true,"description":"Canonical 14-digit GTIN (left-padded) when valid."},"checkDigit":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","type","gtin14","checkDigit","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.gtin","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"gtin","in":"query","required":true,"description":"GTIN.","schema":{"type":"string","minLength":1,"maxLength":32}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/iban":{"get":{"tags":["validate"],"summary":"Validate an International Bank Account Number (IBAN) with...","description":"Validate an International Bank Account Number (IBAN) with full ISO 13616 checks: country-specific length and the ISO 7064 mod-97 checksum (not just a regex). Returns {valid, iban (normalized), formatted (4-char groups), countryCode, checkDigits, bban, reason}. Catches transposed digits and wrong-length accounts that a format check misses, and returns the canonical form so a glue/ETL pipeline can validate AND normalize bank details in one deterministic call. ~85 countries. No bank directory lookup — structure + checksum only.","operationId":"validate_iban","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"iban":{"type":"string","nullable":true,"description":"Normalized (spaces removed, uppercased) when valid."},"formatted":{"type":"string","nullable":true,"description":"IBAN grouped in 4-character blocks."},"countryCode":{"type":"string","nullable":true},"checkDigits":{"type":"string","nullable":true},"bban":{"type":"string","nullable":true,"description":"Basic Bank Account Number (everything after the check digits)."},"reason":{"type":"string","nullable":true,"description":"Why it failed, when valid is false."}},"required":["input","valid","iban","formatted","countryCode","checkDigits","bban","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.iban","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"iban","in":"query","required":true,"description":"IBAN.","schema":{"type":"string","minLength":1,"maxLength":64}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/isin":{"get":{"tags":["validate"],"summary":"Validate an ISIN (International Securities Identification...","description":"Validate an ISIN (International Securities Identification Number, ISO 6166): 2-letter country prefix + 9-char NSIN + Luhn check digit. Returns {valid, isin, country, nsin, embeddedCusip (for US/CA), checkDigit, reason}. Catches transposed characters in security master data that a regex misses. Structure + checksum only.","operationId":"validate_isin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"isin":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"nsin":{"type":"string","nullable":true},"embeddedCusip":{"type":"string","nullable":true,"description":"The CUSIP for US/CA ISINs."},"checkDigit":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","isin","country","nsin","embeddedCusip","checkDigit","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.isin","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"isin","in":"query","required":true,"description":"ISIN.","schema":{"type":"string","minLength":1,"maxLength":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/lei":{"get":{"tags":["validate"],"summary":"Validate a Legal Entity Identifier (LEI, ISO 17442) with...","description":"Validate a Legal Entity Identifier (LEI, ISO 17442) with the ISO 7064 mod-97-10 check digits — not just a 20-character regex. Returns {valid, lei (normalized), louPrefix (issuing LOU), checkDigits, reason}. Confirms a counterparty/vendor LEI is well-formed before lookup; pairs with GLEIF data for name + ownership resolution. Structure + checksum only.","operationId":"validate_lei","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"lei":{"type":"string","nullable":true},"louPrefix":{"type":"string","nullable":true,"description":"First 4 chars — the issuing Local Operating Unit."},"checkDigits":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","lei","louPrefix","checkDigits","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.lei","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lei","in":"query","required":true,"description":"LEI.","schema":{"type":"string","minLength":1,"maxLength":32}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/validate/sscc":{"get":{"tags":["validate"],"summary":"Validate a GS1 SSCC (Serial Shipping Container Code) - 18...","description":"Validate a GS1 SSCC (Serial Shipping Container Code) — 18 digits with the GS1 mod-10 check digit. SSCCs identify individual logistic units (pallets, cases) and are the key field in shipping/ASN (EDI 856) flows. Returns {valid, sscc, extensionDigit, checkDigit, reason}.","operationId":"validate_sscc","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"input":{"type":"string"},"valid":{"type":"boolean"},"sscc":{"type":"string","nullable":true},"extensionDigit":{"type":"string","nullable":true},"checkDigit":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"required":["input","valid","sscc","extensionDigit","checkDigit","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"validate.sscc","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"sscc","in":"query","required":true,"description":"SSCC.","schema":{"type":"string","minLength":1,"maxLength":24}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/canadian-specs":{"get":{"tags":["vehicle"],"summary":"Canadian-market vehicle dimensions and weights from NHTSA...","description":"Canadian-market vehicle dimensions and weights from NHTSA vPIC's Canadian Vehicle Specifications dataset. Pass year + make (required) and optional model to narrow. Returns one entry per matching trim with labeled dimensions — overall length/width/height (cm), wheelbase (cm), curb weight (kg), front/rear track width, interior head/leg/shoulder/hip room, and weight distribution — plus the full raw spec map. Authoritative measured specs (the SAE dimension codes), not estimates. Keyless, public-domain; covers model years 1971+.","operationId":"vehicle_canadian-specs","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = matching vehicles (labeled + raw specs); meta.total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"make":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"specs":{"type":"object","additionalProperties":{"type":"string"}},"labeled":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"label":{"type":"string"},"value":{"type":"string"}},"required":["code","label","value"],"additionalProperties":false}}},"required":["make","model","specs","labeled"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"year":{"type":"integer"},"make":{"type":"string"},"model":{"type":"string","nullable":true}},"required":["year","make","model"],"additionalProperties":false},"total":{"type":"integer"}},"required":["query","total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.canadian-specs","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"year","in":"query","required":true,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":1971,"maximum":2100}},{"name":"make","in":"query","required":true,"description":"Make.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"model","in":"query","required":false,"description":"Model.","schema":{"type":"string","minLength":1,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/complaints":{"get":{"tags":["vehicle"],"summary":"NHTSA consumer complaints for a US vehicle by (make, model...","description":"NHTSA consumer complaints for a US vehicle by (make, model, modelYear). Returns the top N records (newest-filed first) with ODI number, affected component, plain-English summary, crash/fire flags, injury and death counts, partial VIN, and incident + filing dates. Backed by NHTSA's public complaints database; data is public-domain US government records.","operationId":"vehicle_complaints","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = NHTSA consumer-complaint records for the queried vehicle, newest first (total = all matching complaints upstream). To go straight from a VIN to its complaints (and recalls), see /api/vehicle/profile.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"odiNumber":{"type":"integer"},"manufacturer":{"type":"string","nullable":true},"components":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"crash":{"type":"boolean"},"fire":{"type":"boolean"},"numberOfInjuries":{"type":"integer"},"numberOfDeaths":{"type":"integer"},"vin":{"type":"string","nullable":true},"dateOfIncident":{"type":"string","nullable":true},"dateComplaintFiled":{"type":"string","nullable":true}},"required":["odiNumber","manufacturer","components","summary","crash","fire","numberOfInjuries","numberOfDeaths","vin","dateOfIncident","dateComplaintFiled"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"make":{"type":"string"},"model":{"type":"string"},"modelYear":{"type":"integer"},"limit":{"type":"integer"}},"required":["make","model","modelYear","limit"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.complaints","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"make","in":"query","required":true,"description":"Vehicle make. Examples: \"Honda\", \"Tesla\", \"Ford\".","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"model","in":"query","required":true,"description":"Vehicle model. Examples: \"Accord\", \"Model 3\", \"F-150\".","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"modelYear","in":"query","required":true,"description":"4-digit model year.","schema":{"type":"integer","minimum":1949,"maximum":2099}},{"name":"limit","in":"query","required":false,"description":"Max records to return, newest-filed first (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/decode-wmi":{"get":{"tags":["vehicle"],"summary":"Decode a 3-character World Manufacturer Identifier (the...","description":"Decode a 3-character World Manufacturer Identifier (the first three characters of a VIN) to the assigning manufacturer. Returns full manufacturer legal name, common short name, make, vehicle type, and the date NHTSA published the assignment. Useful for partial-VIN analysis — crash reports, damaged-vehicle photos, fleet records — where only the WMI is recoverable. Backed by NHTSA.gov vPIC; data is public-domain US government records.","operationId":"vehicle_decode-wmi","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = single manufacturer record decoded from a 3-char WMI prefix.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"wmi":{"type":"string"},"manufacturerName":{"type":"string","nullable":true},"commonName":{"type":"string","nullable":true},"make":{"type":"string","nullable":true},"vehicleType":{"type":"string","nullable":true},"dateAvailableToPublic":{"type":"string","nullable":true}},"required":["wmi","manufacturerName","commonName","make","vehicleType","dateAvailableToPublic"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.decode-wmi","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"wmi","in":"query","required":true,"description":"3-character WMI (the first 3 chars of a VIN). Case-insensitive. Examples: 1HG (American Honda), 5YJ (Tesla US), WBA (BMW).","schema":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-HJ-NPR-Z0-9]{3}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/fuel-economy":{"get":{"tags":["vehicle"],"summary":"Official US EPA/DOE fuel-economy, fuel-cost, and emissions...","description":"Official US EPA/DOE fuel-economy, fuel-cost, and emissions data for a vehicle by year + make + model. Because a model-year often has several powertrain configurations (engine/transmission), this returns one entry per configuration, each with: MPG city/highway/combined (or MPGe for EVs), CO2 tailpipe grams/mile, estimated annual fuel cost (USD), annual petroleum use (barrels), EPA greenhouse-gas score (1-10), 5-year savings vs the average new vehicle, plus transmission, drivetrain, cylinders, displacement, fuel type, EPA size class, and electric range for EV/PHEV. Authoritative EPA test figures — the real ratings an agent should not estimate. Keyless, public-domain (FuelEconomy.gov), covers model years 1984+.","operationId":"vehicle_fuel-economy","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = powertrain configurations (one per engine/transmission); meta.total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"},"year":{"type":"integer","nullable":true},"make":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"vehicleClass":{"type":"string","nullable":true},"transmission":{"type":"string","nullable":true},"drive":{"type":"string","nullable":true},"cylinders":{"type":"number","nullable":true},"displacementL":{"type":"number","nullable":true},"fuelType":{"type":"string","nullable":true},"mpgCity":{"type":"number","nullable":true},"mpgHighway":{"type":"number","nullable":true},"mpgCombined":{"type":"number","nullable":true},"co2GramsPerMile":{"type":"number","nullable":true},"annualFuelCostUSD":{"type":"number","nullable":true},"annualPetroleumBarrels":{"type":"number","nullable":true},"ghgScore":{"type":"number","nullable":true},"fiveYearSavingsVsAvgUSD":{"type":"number","nullable":true},"electricRangeMi":{"type":"number","nullable":true}},"required":["id","description","year","make","model","vehicleClass","transmission","drive","cylinders","displacementL","fuelType","mpgCity","mpgHighway","mpgCombined","co2GramsPerMile","annualFuelCostUSD","annualPetroleumBarrels","ghgScore","fiveYearSavingsVsAvgUSD","electricRangeMi"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"year":{"type":"integer"},"make":{"type":"string"},"model":{"type":"string"}},"required":["year","make","model"],"additionalProperties":false},"total":{"type":"integer"}},"required":["query","total"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.fuel-economy","x-2s-version":null,"x-2s-price":{"usd":0.0018},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"year","in":"query","required":true,"description":"Four-digit calendar year.","schema":{"type":"integer","minimum":1984,"maximum":2100}},{"name":"make","in":"query","required":true,"description":"Make.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"model","in":"query","required":true,"description":"Model.","schema":{"type":"string","minLength":1,"maxLength":60}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/investigations":{"get":{"tags":["vehicle"],"summary":"Chronological feed of NHTSA ODI (Office of Defects...","description":"Chronological feed of NHTSA ODI (Office of Defects Investigation) investigations, newest first. Returns preliminary evaluations (PE), engineering analyses (EA), defect petitions (DP), and recall queries (RQ) — each with NHTSA ID, type code, open/close dates, status, subject, and full description (HTML stripped + raw). Useful for tracking what NHTSA is currently investigating (Tesla FSD, autonomous-vehicle crashes, Rivian suspension, etc.). NOTE: NHTSA's endpoint does NOT support make/model/year filtering — use vehicle.recalls or vehicle.complaints for vehicle-scoped lookups. Public-domain US government records.","operationId":"vehicle_investigations","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = chronological feed of NHTSA ODI investigations (total = all records upstream; paginate via meta.nextOffset).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"nhtsaId":{"type":"string"},"investigationNumber":{"type":"string"},"investigationType":{"type":"string"},"issueYear":{"type":"string"},"openDate":{"type":"string","nullable":true},"latestActivityDate":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"subject":{"type":"string"},"description":{"type":"string"},"descriptionHtml":{"type":"string"}},"required":["id","nhtsaId","investigationNumber","investigationType","issueYear","openDate","latestActivityDate","status","subject","description","descriptionHtml"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"status":{"type":"string","nullable":true}},"required":["limit","offset","status"],"additionalProperties":false},"nextOffset":{"type":"integer","nullable":true},"previousOffset":{"type":"integer","nullable":true}},"required":["query","nextOffset","previousOffset"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.investigations","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Max records to return (1-100). Default 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","required":false,"description":"Offset into the chronological feed for pagination. Default 0.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"status","in":"query","required":false,"description":"Filter by status: \"O\" (open), \"C\" (closed). Omit for all.","schema":{"type":"string","enum":["O","C"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/manufacturers":{"get":{"tags":["vehicle"],"summary":"Paginated list of every motor vehicle manufacturer NHTSA...","description":"Paginated list of every motor vehicle manufacturer NHTSA tracks via vPIC. Each record includes the canonical Mfr_ID, full legal name, common short name (e.g., \"Honda\"), country, and the list of vehicle types the manufacturer produces (Passenger Car, Truck, Motorcycle, Bus, MPV, etc.). Pass the optional `manufacturer` param to substring-search Mfr_Name. 100 records per page. Backed by NHTSA.gov; data is public-domain US government records.","operationId":"vehicle_manufacturers","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = manufacturer directory page (100 per page) with canonical NHTSA IDs. total is null — vPIC does not report an overall count; request the next page until items is empty.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"mfrId":{"type":"integer"},"mfrName":{"type":"string"},"commonName":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"vehicleTypes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"isPrimary":{"type":"boolean"}},"required":["name","isPrimary"],"additionalProperties":false}}},"required":["mfrId","mfrName","commonName","country","vehicleTypes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"page":{"type":"integer"},"manufacturer":{"type":"string","nullable":true}},"required":["page","manufacturer"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.manufacturers","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"page","in":"query","required":false,"description":"1-indexed page (100 manufacturers per page). Default 1.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1}},{"name":"manufacturer","in":"query","required":false,"description":"Optional substring filter on the full Mfr_Name (case-insensitive on NHTSA side). Examples: \"honda\", \"tesla\", \"general motors\".","schema":{"type":"string","minLength":2,"maxLength":80}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/models":{"get":{"tags":["vehicle"],"summary":"Enumerate every model a manufacturer sold in a given model...","description":"Enumerate every model a manufacturer sold in a given model year via NHTSA's vPIC taxonomy database. Returns canonical NHTSA Model IDs + names plus the Make ID + name for reference. Useful as a discovery step before VIN decode (when the agent only knows make + year) or as input validation for vehicle.recalls / vehicle.complaints. Backed by NHTSA.gov; data is public-domain US government records.","operationId":"vehicle_models","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = models sold by the make in the queried year, with canonical NHTSA IDs.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"modelId":{"type":"integer"},"modelName":{"type":"string"},"makeId":{"type":"integer"},"makeName":{"type":"string"}},"required":["modelId","modelName","makeId","makeName"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"make":{"type":"string"},"modelYear":{"type":"integer"}},"required":["make","modelYear"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.models","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"make","in":"query","required":true,"description":"Vehicle make. Case-insensitive on NHTSA side. Examples: \"Honda\", \"Tesla\", \"Ford\".","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"modelYear","in":"query","required":true,"description":"4-digit model year.","schema":{"type":"integer","minimum":1949,"maximum":2099}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/profile":{"get":{"tags":["vehicle"],"summary":"Vehicle 360 - decode a VIN and get its full safety picture...","description":"Vehicle 360 — decode a VIN and get its full safety picture in one call. Returns the decoded vehicle (make, model, year, trim, engine, plant, body class, drivetrain — NHTSA vPIC) plus that exact make/model/year's open safety recalls (with park-it / park-outside / over-the-air-update flags) and NHTSA owner complaints (crash/fire/injury/death flags). recalls and complaints are keyed to the decoded make+model+year, so they describe THIS vehicle, not a generic feed. Each section reports found/error independently. Pass vin (17 chars); optional modelYear disambiguates pre-1980 VINs. Used for used-car due diligence, fleet safety, insurance. Individual sources: /api/vehicle/vin-decode, /api/vehicle/recalls, /api/vehicle/complaints.","operationId":"vehicle_profile","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"vin":{"type":"string"},"vehicle":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true}},"required":["found","error"],"additionalProperties":{}},"recalls":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number","nullable":true},"recalls":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["found","error","count","recalls"],"additionalProperties":false},"complaints":{"type":"object","properties":{"found":{"type":"boolean"},"error":{"type":"string","nullable":true},"count":{"type":"number","nullable":true}},"required":["found","error","count"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["vin","vehicle","recalls","complaints","sources"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.profile","x-2s-version":null,"x-2s-price":{"usd":0.00576},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005760"},"protocols":[{"x402":{}}]},"parameters":[{"name":"vin","in":"query","required":true,"description":"VIN.","schema":{"type":"string","minLength":17,"maxLength":17}},{"name":"modelYear","in":"query","required":false,"description":"Model year.","schema":{"type":"integer","minimum":1949,"maximum":2099}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/recalls":{"get":{"tags":["vehicle"],"summary":"NHTSA recall campaigns for a US vehicle by (make, model...","description":"NHTSA recall campaigns for a US vehicle by (make, model, modelYear). Returns every open + historical campaign with the NHTSA campaign number, manufacturer, affected component, plain-English summary/consequence/remedy text, and the parkIt / parkOutside fire-risk advisories. Backed by NHTSA's public recalls database; data is public-domain US government records.","operationId":"vehicle_recalls","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = recall campaigns matching the (make, model, modelYear) tuple. To go straight from a VIN to its recalls (and complaints), see /api/vehicle/profile.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"campaignNumber":{"type":"string"},"reportReceivedDate":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"component":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"consequence":{"type":"string","nullable":true},"remedy":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"parkIt":{"type":"boolean"},"parkOutside":{"type":"boolean"},"overTheAirUpdate":{"type":"boolean"}},"required":["campaignNumber","reportReceivedDate","manufacturer","component","summary","consequence","remedy","notes","parkIt","parkOutside","overTheAirUpdate"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"make":{"type":"string"},"model":{"type":"string"},"modelYear":{"type":"integer"}},"required":["make","model","modelYear"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.recalls","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"make","in":"query","required":true,"description":"Vehicle make. Examples: \"Honda\", \"Toyota\", \"Tesla\". Case-insensitive on NHTSA side.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"model","in":"query","required":true,"description":"Vehicle model. Examples: \"Accord\", \"Model 3\", \"F-150\".","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"modelYear","in":"query","required":true,"description":"4-digit model year.","schema":{"type":"integer","minimum":1949,"maximum":2099}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/safety-ratings":{"get":{"tags":["vehicle"],"summary":"NHTSA NCAP 5-Star crash-test ratings for a US vehicle by...","description":"NHTSA NCAP 5-Star crash-test ratings for a US vehicle by (make, model, modelYear). Returns one item per crash-tested body style with the overall star rating, front/side/rollover sub-ratings, modeled rollover probability, crash-avoidance tech flags (electronic stability control, forward-collision warning, lane-departure warning), and complaint/recall/investigation counts. A vehicle with no crash testing returns an empty list (a valid result, not an error). Backed by NHTSA's public 5-Star Safety Ratings program; data is public-domain US government records.","operationId":"vehicle_safety-ratings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = crash-tested body-style variants for the (make, model, modelYear) tuple. Star ratings are 1-5 or null (not rated). For recall campaigns or consumer complaints on the same vehicle, see /api/vehicle/recalls and /api/vehicle/complaints.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"vehicleId":{"type":"integer"},"vehicleDescription":{"type":"string"},"overallRating":{"type":"number","nullable":true},"frontCrash":{"type":"object","properties":{"overall":{"type":"number","nullable":true},"driverSide":{"type":"number","nullable":true},"passengerSide":{"type":"number","nullable":true}},"required":["overall","driverSide","passengerSide"],"additionalProperties":false},"sideCrash":{"type":"object","properties":{"overall":{"type":"number","nullable":true},"driverSide":{"type":"number","nullable":true},"passengerSide":{"type":"number","nullable":true},"barrierOverall":{"type":"number","nullable":true},"poleRating":{"type":"number","nullable":true}},"required":["overall","driverSide","passengerSide","barrierOverall","poleRating"],"additionalProperties":false},"rollover":{"type":"object","properties":{"rating":{"type":"number","nullable":true},"possibility":{"type":"number","nullable":true},"dynamicTipResult":{"type":"string","nullable":true}},"required":["rating","possibility","dynamicTipResult"],"additionalProperties":false},"driverAssist":{"type":"object","properties":{"electronicStabilityControl":{"type":"string","nullable":true},"forwardCollisionWarning":{"type":"string","nullable":true},"laneDepartureWarning":{"type":"string","nullable":true}},"required":["electronicStabilityControl","forwardCollisionWarning","laneDepartureWarning"],"additionalProperties":false},"complaintsCount":{"type":"integer"},"recallsCount":{"type":"integer"},"investigationCount":{"type":"integer"}},"required":["vehicleId","vehicleDescription","overallRating","frontCrash","sideCrash","rollover","driverAssist","complaintsCount","recallsCount","investigationCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"make":{"type":"string"},"model":{"type":"string"},"modelYear":{"type":"integer"}},"required":["make","model","modelYear"],"additionalProperties":false}},"required":["query"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.safety-ratings","x-2s-version":null,"x-2s-price":{"usd":0.003},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"make","in":"query","required":true,"description":"Vehicle make. Examples: \"Honda\", \"Toyota\", \"Tesla\". Case-insensitive on NHTSA side.","schema":{"type":"string","minLength":2,"maxLength":40}},{"name":"model","in":"query","required":true,"description":"Vehicle model. Examples: \"Accord\", \"Model 3\", \"F-150\".","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"modelYear","in":"query","required":true,"description":"4-digit model year. NCAP coverage is strongest from ~2011 onward.","schema":{"type":"integer","minimum":1949,"maximum":2099}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/vehicle/vin-decode":{"get":{"tags":["vehicle"],"summary":"Decode a 17-character VIN to manufacturer-supplied vehicle...","description":"Decode a 17-character VIN to manufacturer-supplied vehicle metadata via NHTSA's vPIC database. Returns identity (year, make, model, trim, series, body class, manufacturer), assembly plant (city, state, country), engine (cylinders, displacement, HP, fuel type, configuration, engine model), transmission (style, speeds), and body/weight specs. Curated to the ~30 fields agents actually use from vPIC's ~140-field response. Backed by NHTSA.gov; data is public-domain US government records.","operationId":"vehicle_vin-decode","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = single decoded-VIN record (identity, plant of origin, powertrain, body class). For the decode PLUS this vehicle's recalls and complaints in one call, see /api/vehicle/profile.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"vin":{"type":"string"},"modelYear":{"type":"string","nullable":true},"make":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"trim":{"type":"string","nullable":true},"series":{"type":"string","nullable":true},"bodyClass":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"plant":{"type":"object","properties":{"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["city","state","country"],"additionalProperties":false},"engine":{"type":"object","properties":{"cylinders":{"type":"string","nullable":true},"displacementL":{"type":"string","nullable":true},"hp":{"type":"string","nullable":true},"fuelTypePrimary":{"type":"string","nullable":true},"configuration":{"type":"string","nullable":true},"model":{"type":"string","nullable":true}},"required":["cylinders","displacementL","hp","fuelTypePrimary","configuration","model"],"additionalProperties":false},"transmission":{"type":"object","properties":{"style":{"type":"string","nullable":true},"speeds":{"type":"string","nullable":true}},"required":["style","speeds"],"additionalProperties":false},"doors":{"type":"string","nullable":true},"driveType":{"type":"string","nullable":true},"vehicleType":{"type":"string","nullable":true},"gvwrClass":{"type":"string","nullable":true}},"required":["vin","modelYear","make","model","trim","series","bodyClass","manufacturer","plant","engine","transmission","doors","driveType","vehicleType","gvwrClass"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"vehicle.vin-decode","x-2s-version":null,"x-2s-price":{"usd":0.0024},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002400"},"protocols":[{"x402":{}}]},"parameters":[{"name":"vin","in":"query","required":true,"description":"17-character VIN. Case-insensitive. Excludes letters I, O, and Q per VIN standard.","schema":{"type":"string","minLength":17,"maxLength":17,"pattern":"^[A-HJ-NPR-Z0-9]{17}$"}},{"name":"modelYear","in":"query","required":false,"description":"Optional model-year hint — disambiguates VINs where the year-digit wraps (A=1980/2010, etc.).","schema":{"type":"integer","minimum":1949,"maximum":2099}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/business-earnings":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback around a US company's earnings.","description":"WATCHER: get a signed callback around a US company's earnings. Arm once, pay once (no account, no API key). trigger 'reported' (default) fires when results post — with reported EPS vs estimate, the surprise, and revenue; trigger 'upcoming' fires daysBefore the scheduled report date as a heads-up. Pass ticker (+ optional daysBefore for upcoming). Fires once per report period; bounded by a maxFires / expiry budget. Calendar via Finnhub. Deliveries are EIP-191-signed (verify offline) and retried with exponential backoff; missed pushes are recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_business-earnings","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed business-earnings watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"},"ticker":{"type":"string"},"trigger":{"type":"string"},"daysBefore":{"type":"number","nullable":true},"maxFires":{"type":"number"},"firesRemaining":{"type":"number"},"expiresAt":{"type":"string"},"statusUrl":{"type":"string"},"callbackSigner":{"type":"string"}},"required":["watcherId","status","ticker","trigger","daysBefore","maxFires","firesRemaining","expiresAt","statusUrl","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.business-earnings","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$","description":"US-listed ticker to watch, e.g. AAPL."},"trigger":{"type":"string","enum":["reported","upcoming"],"description":"'reported' (default) fires when results post; 'upcoming' fires ahead of the scheduled date."},"daysBefore":{"type":"integer","minimum":0,"maximum":30,"description":"For trigger='upcoming': how many days before the report date to fire (default 1)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST the event. Any http(s) URL; the JSON body is signed (verify with X-2s-Signature). e.g. https://your-agent.app/hooks/earnings"},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back verbatim in every callback so you can route/identify the event. e.g. {\"agentId\":\"a1\"}"},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"How long the watch stays active, in seconds. Default 2592000 (30 days), max 7776000 (90 days)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many report events (default 1 — the next report). Each fire is a distinct fiscal period."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag to recognize this watcher later."}},"required":["ticker","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/cancel":{"post":{"tags":["watchers"],"summary":"Cancel an active watcher by watcherId - it stops watching...","description":"Cancel an active watcher by watcherId — it stops watching immediately. Flat-fee model: no refund of the unused window (nothing is held or owed). Idempotent. Pairs with watchers.crypto-address-activity and watchers.status.","operationId":"watchers_cancel","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ watcherId, status }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"}},"required":["watcherId","status"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.cancel","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"watcherId":{"type":"string","minLength":8,"maxLength":80,"description":"Watcher ID."}},"required":["watcherId"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/company-news":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a new news article is...","description":"WATCHER: get a signed callback when a new news article is published about a US company. Arm once, pay once. Pass ticker; optionally keyword to only fire on headlines containing it. Fires once per new article (deduped by id); bounded by maxFires/expiry. Existing articles at arm time are baselined. News via Finnhub. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_company-news","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed company-news watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.company-news","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$","description":"US-listed ticker, e.g. AAPL."},"keyword":{"type":"string","maxLength":64,"description":"Optional: only fire on headlines containing this text (case-insensitive)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many articles (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["ticker","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/crypto-address-activity":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback the moment a crypto address...","description":"WATCHER: get a signed callback the moment a crypto address transacts. Arm once, pay once (no account, no API key) — we watch Base, Ethereum, or Bitcoin and POST your custom payload to callbackUrl when the address sends/receives native coins, ERC-20s, or ERC-721s. Filter by direction (in/out/both), asset type, and a USD minimum (minValueUsd) to skip dust. Bounded by a 30-day / 25-fire window. Deliveries are EIP-191-signed by our published key (verify offline) and retried with exponential backoff; missed pushes are recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_crypto-address-activity","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"},"direction":{"type":"string"},"assetTypes":{"type":"array","items":{"type":"string"}},"minValueUsd":{"type":"number","nullable":true},"maxFires":{"type":"number"},"firesRemaining":{"type":"number"},"expiresAt":{"type":"string"},"statusUrl":{"type":"string"},"callbackSigner":{"type":"string"}},"required":["watcherId","status","chain","address","direction","assetTypes","minValueUsd","maxFires","firesRemaining","expiresAt","statusUrl","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.crypto-address-activity","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","enum":["base","ethereum","bitcoin"],"description":"Which chain to watch: base, ethereum, or bitcoin."},"address":{"type":"string","minLength":20,"maxLength":100,"description":"The address to watch — an EVM address (0x… 40 hex) for base/ethereum, or a Bitcoin address (bc1…/1…/3…)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST the event. Any http(s) URL; the JSON body is signed (verify with X-2s-Signature). e.g. https://your-agent.app/hooks/wallet"},"direction":{"type":"string","enum":["in","out","both"],"description":"Which flows to fire on: \"in\" = address received, \"out\" = address sent, \"both\" = either. Default: both."},"assetTypes":{"type":"array","items":{"type":"string","enum":["native","erc20","erc721"]},"maxItems":3,"description":"Limit to asset kinds: any of \"native\" (ETH/BTC), \"erc20\" (tokens), \"erc721\" (NFTs). Omit to watch all. EVM only — Bitcoin is always native. e.g. [\"erc20\"] for token transfers only."},"minValueUsd":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1000000000000,"description":"Only fire when the transfer is worth at least this many USD — filters out dust/spam. e.g. 100 ignores anything under $100. Omit to fire on any non-zero amount."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON, echoed back verbatim in every callback so you can route/identify the event on your side. e.g. {\"agentId\":\"a1\",\"reason\":\"treasury-monitor\"}"},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"How long the watch stays active, in seconds. Default 2592000 (30 days), max 7776000 (90 days). e.g. 86400 = 1 day."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks. Default 25, max 1000. The watch ends at whichever comes first — maxFires or expiry."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag to recognize this watcher later. e.g. \"exchange-cold-wallet\"."}},"required":["chain","address","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/dns":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a host's DNS records...","description":"WATCHER: get a signed callback when a host's DNS records change. Arm once, pay once. Pass host (e.g. example.com). Fires when the resolved answers change (e.g. an A/AAAA/CNAME/MX update); bounded by maxFires/expiry. The records at arm time are baselined. Useful for detecting domain takeover, migrations, or unexpected changes. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_dns","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed dns watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.dns","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"host":{"type":"string","minLength":1,"maxLength":255,"description":"Hostname to monitor, e.g. example.com."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many changes (default 10)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["host","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/earthquake":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when USGS reports a new...","description":"WATCHER: get a signed callback when USGS reports a new earthquake near a location above a magnitude. Arm once, pay once. Pass lat, lon, optional radiusKm (default 500) and minMagnitude (default 4). Fires once per new quake (deduped by id); bounded by maxFires/expiry. Quakes already in the window at arm time are baselined. Free public-domain (USGS). Signed + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_earthquake","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed earthquake watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.earthquake","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude of the center point."},"lon":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude of the center point."},"radiusKm":{"type":"number","minimum":1,"maximum":1000,"description":"Search radius in km (default 500)."},"minMagnitude":{"type":"number","minimum":0,"maximum":10,"description":"Minimum magnitude to fire on (default 4)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many quakes (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["lat","lon","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/fear-greed":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when the Crypto Fear & Greed...","description":"WATCHER: get a signed callback when the Crypto Fear & Greed index crosses a level (e.g. drops into Extreme Fear). Arm once, pay once. conditionType 'above'/'below'; threshold is the index value 0–100. Fires once per crossing; bounded by maxFires/expiry. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_fear-greed","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed fear-greed watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.fear-greed","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conditionType":{"type":"string","enum":["above","below"],"description":"Fire when the index goes above or below the threshold."},"threshold":{"type":"number","minimum":0,"maximum":100,"description":"Index value 0–100 to cross (e.g. 20 = extreme fear, 80 = extreme greed)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/federal-register":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a new US Federal...","description":"WATCHER: get a signed callback when a new US Federal Register document is published. Arm once, pay once. Optionally filter by type (RULE / PRORULE / NOTICE / PRESDOCU), agency (slug, e.g. environmental-protection-agency), and/or keyword in the title. Fires once per new document (deduped by document number); bounded by maxFires/expiry. Existing docs at arm time are baselined. Free public-domain data. Signed + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_federal-register","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed federal-register watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.federal-register","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["RULE","PRORULE","NOTICE","PRESDOCU"],"description":"Document type filter. Omit for all."},"agency":{"type":"string","maxLength":80,"pattern":"^[A-Za-z0-9-]+$","description":"Agency slug, e.g. federal-trade-commission."},"keyword":{"type":"string","maxLength":64,"description":"Optional: only fire on titles containing this text (case-insensitive)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many documents (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/flight-status":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a flight's status...","description":"WATCHER: get a signed callback when a flight's status changes (e.g. Scheduled → Delayed → Departed → Landed). Arm once, pay once. Pass ident (airline flight designator like UAL1 / UA1, or a tail number). Fires on each status transition for the nearest instance; bounded by maxFires/expiry. The status at arm time is baselined (only changes fire). Data via FlightAware. Signed + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_flight-status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed flight-status watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.flight-status","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ident":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z0-9-]+$","description":"Flight designator (UAL1 / UA1) or tail number."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 7 days; flights are short-lived)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many status changes (default 10)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["ident","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/fred-series":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a FRED economic series'...","description":"WATCHER: get a signed callback when a FRED economic series' latest value crosses a level. Arm once, pay once. Pass seriesId (e.g. DGS10 = 10yr Treasury, UNRATE = unemployment, CPIAUCSL = CPI, FEDFUNDS = fed funds). conditionType 'above'/'below'; threshold is the series value. Fires once per crossing as new data posts; bounded by maxFires/expiry. Free public-domain (FRED). Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_fred-series","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed fred-series watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.fred-series","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"seriesId":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9.\\-_]+$","description":"FRED series id, e.g. DGS10, UNRATE, CPIAUCSL, FEDFUNDS."},"conditionType":{"type":"string","enum":["above","below"],"description":"Fire when the latest value goes above or below the threshold."},"threshold":{"type":"number","description":"The series value to cross, e.g. 5 (for DGS10 = 5% 10yr yield)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["seriesId","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/funding-rate":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a Hyperliquid...","description":"WATCHER: get a signed callback when a Hyperliquid perpetual's hourly funding rate crosses a level (e.g. flips negative). Arm once, pay once. Pass coin (e.g. BTC, ETH). conditionType 'above'/'below'; threshold is the hourly funding rate (can be negative, e.g. -0.0001). Fires once per crossing; bounded by maxFires/expiry. Data via Hyperliquid. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_funding-rate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed funding-rate watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.funding-rate","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"coin":{"type":"string","minLength":1,"maxLength":20,"pattern":"^[A-Za-z0-9]+$","description":"Perp coin symbol, e.g. BTC, ETH, SOL."},"conditionType":{"type":"string","enum":["above","below"],"description":"Fire when hourly funding goes above or below the threshold."},"threshold":{"type":"number","description":"Hourly funding rate to cross (can be negative, e.g. -0.0001)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["coin","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/fx-rate":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when an FX pair crosses a...","description":"WATCHER: get a signed callback when an FX pair crosses a rate you set. Arm once, pay once. base + quote are 3-letter ISO currency codes (e.g. base USD, quote EUR). conditionType 'above'/'below'; threshold is the quote-per-base rate. Fires once per crossing; bounded by maxFires/expiry. Rates via Frankfurter (ECB). Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_fx-rate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed fx-rate watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.fx-rate","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Base currency, e.g. USD."},"quote":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Quote currency, e.g. EUR."},"conditionType":{"type":"string","enum":["above","below"],"description":"Fire when the rate goes above or below the threshold."},"threshold":{"type":"number","exclusiveMinimum":true,"minimum":0,"description":"Quote-per-base rate to cross, e.g. 0.95."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["base","quote","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/gas-price":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when EVM gas crosses a level...","description":"WATCHER: get a signed callback when EVM gas crosses a level you set — e.g. \"wake me when Ethereum gas drops below 10 gwei.\" Arm once, pay once (no account, no API key). chain: base | ethereum | polygon | arbitrum | optimism. conditionType: 'below' or 'above'; threshold is in gwei (compared to the chosen fee tier's max fee per gas). tier: slow | standard | fast (default standard). Fires once per crossing; bounded by a maxFires / expiry budget. Deliveries are EIP-191-signed (verify offline) and retried with exponential backoff; missed pushes are recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_gas-price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed gas-price watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"},"chain":{"type":"string"},"conditionType":{"type":"string"},"threshold":{"type":"number"},"tier":{"type":"string"},"maxFires":{"type":"number"},"firesRemaining":{"type":"number"},"expiresAt":{"type":"string"},"statusUrl":{"type":"string"},"callbackSigner":{"type":"string"}},"required":["watcherId","status","chain","conditionType","threshold","tier","maxFires","firesRemaining","expiresAt","statusUrl","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.gas-price","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"],"description":"EVM chain whose gas to watch."},"conditionType":{"type":"string","enum":["below","above"],"description":"'below' (cheap gas alert) or 'above' (congestion alert)."},"threshold":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1000000,"description":"Gas price threshold in gwei (e.g. 10), compared to the chosen tier’s max fee per gas."},"tier":{"type":"string","enum":["slow","standard","fast"],"description":"Fee tier to compare against. Default: standard."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST the event. Any http(s) URL; the JSON body is signed (verify with X-2s-Signature). e.g. https://your-agent.app/hooks/gas"},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back verbatim in every callback. e.g. {\"agentId\":\"a1\"}"},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"How long the watch stays active, in seconds. Default 2592000 (30 days), max 7776000 (90 days)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1). Each fire is a fresh crossing into the condition."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag to recognize this watcher later."}},"required":["chain","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/http-headers":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a website's HTTP...","description":"WATCHER: get a signed callback when a website's HTTP security-headers grade changes (e.g. a regression from A to C). Arm once, pay once. Pass url. Fires when the grade changes; bounded by maxFires/expiry. The grade at arm time is baselined. Useful for catching config regressions. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_http-headers","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed http-headers watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.http-headers","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"The URL to monitor, e.g. https://example.com."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many changes (default 10)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["url","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/ioc-reputation":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when an indicator of...","description":"WATCHER: get a signed callback when an indicator of compromise (IP or domain) changes malicious status across threat feeds. Arm once, pay once. Pass ioc (an IP address or domain). Fires when the malicious verdict flips; bounded by maxFires/expiry. The status at arm time is baselined. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_ioc-reputation","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed ioc-reputation watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.ioc-reputation","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioc":{"type":"string","minLength":3,"maxLength":255,"description":"Indicator to watch: an IP address or domain."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many changes (default 10)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["ioc","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/ipo":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a new US IPO appears on...","description":"WATCHER: get a signed callback when a new US IPO appears on the calendar. Arm once, pay once. Optionally pass keyword to only fire when the company name/symbol matches. Fires once per new IPO (deduped by symbol); bounded by maxFires/expiry. Existing entries at arm time are baselined. Calendar via Finnhub. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_ipo","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed ipo watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.ipo","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","maxLength":64,"description":"Optional: only fire when the IPO name contains this text (case-insensitive)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many IPOs (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/package-release":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a package publishes a...","description":"WATCHER: get a signed callback when a package publishes a new version — track your dependencies. Arm once, pay once. registry is 'npm' or 'pypi'; name is the package name (e.g. react, requests). Fires when the latest version changes; bounded by maxFires/expiry. The version at arm time is baselined. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_package-release","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed package-release watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.package-release","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"registry":{"type":"string","enum":["npm","pypi"],"description":"Package registry: npm or pypi."},"name":{"type":"string","minLength":1,"maxLength":120,"description":"Package name, e.g. react (npm) or requests (pypi)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many releases (default 10)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["registry","name","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/paper":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a new academic paper...","description":"WATCHER: get a signed callback when a new academic paper matching your query is published (arXiv / PubMed / Semantic Scholar). Arm once, pay once. Pass query (keywords, author, topic). Fires once per new paper (deduped by source id); bounded by maxFires/expiry. Existing results at arm time are baselined. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_paper","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed paper watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.paper","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":200,"description":"Search query — keywords, author, or topic."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many papers (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["query","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/patent":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a new USPTO patent...","description":"WATCHER: get a signed callback when a new USPTO patent matching your query appears. Arm once, pay once. Pass query (keywords, assignee, etc.). Fires once per new patent (deduped by application number); bounded by maxFires/expiry. Existing results at arm time are baselined. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_patent","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed patent watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.patent","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":200,"description":"Search query — keywords, assignee, inventor, etc."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many patents (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["query","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/prediction-market":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a Polymarket outcome's...","description":"WATCHER: get a signed callback when a Polymarket outcome's implied probability crosses a level. Arm once, pay once. Pass conditionId (the market's condition id) and outcomeIndex (0 = first outcome, usually Yes). conditionType 'above'/'below'; threshold is a probability 0–1 (e.g. 0.8). Fires once per crossing; bounded by maxFires/expiry. Prices via Polymarket. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_prediction-market","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed prediction-market watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.prediction-market","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conditionId":{"type":"string","minLength":3,"maxLength":80,"description":"Polymarket market conditionId (from predict.market / predict.markets)."},"outcomeIndex":{"type":"integer","minimum":0,"maximum":50,"description":"Which outcome to watch (0 = first, usually Yes). Default 0."},"conditionType":{"type":"string","enum":["above","below"],"description":"Fire when the probability goes above or below the threshold."},"threshold":{"type":"number","minimum":0,"maximum":1,"description":"Probability 0–1 to cross, e.g. 0.8."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["conditionId","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/product-recall":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a new US product recall...","description":"WATCHER: get a signed callback when a new US product recall is published (CPSC). Arm once, pay once. Optionally pass keyword to only fire on recalls whose title contains it (e.g. a brand or product). Fires once per new recall (deduped by recall id); bounded by maxFires/expiry. Existing recalls at arm time are baselined. Free public-domain data. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_product-recall","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed product-recall watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.product-recall","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","maxLength":64,"description":"Optional: only fire on recalls whose title contains this text (case-insensitive)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many recalls (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/sec-filing":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a US company files with...","description":"WATCHER: get a signed callback when a US company files with the SEC (EDGAR). Arm once, pay once. Pass ticker; optionally form to only fire on a specific filing type (e.g. 8-K, 10-K, 13F, 4). Fires once per new filing (deduped by accession number); bounded by maxFires/expiry. Existing filings at arm time are baselined (no backlog blast). Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_sec-filing","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed sec-filing watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.sec-filing","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$","description":"US-listed ticker, e.g. AAPL."},"form":{"type":"string","maxLength":20,"description":"Optional filing type to filter on (e.g. 8-K, 10-K, 13F, 4). Omit for all forms."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many filings (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["ticker","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/status":{"get":{"tags":["watchers"],"summary":"Status of a watcher by watcherId: state...","description":"Status of a watcher by watcherId: state (armed/completed/expired/cancelled), fires used/remaining, expiry, recent deliveries (with HTTP result + attempt count), and any UNDELIVERED events with their full callback bodies — the pull backstop, so a missed push is always recoverable here. Pairs with watchers.crypto-address-activity.","operationId":"watchers_status","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [watcher status + delivery log].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"},"chain":{"type":"string"},"address":{"type":"string"},"firesUsed":{"type":"number"},"firesRemaining":{"type":"number"},"maxFires":{"type":"number"},"expiresAt":{"type":"string"},"recentDeliveries":{"type":"array","items":{}},"undelivered":{"type":"array","items":{}}},"required":["watcherId","status","chain","address","firesUsed","firesRemaining","maxFires","expiresAt","recentDeliveries","undelivered"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.status","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"watcherId","in":"query","required":true,"description":"Watcher ID.","schema":{"type":"string","minLength":8,"maxLength":80}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/stock-price":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a US stock crosses a...","description":"WATCHER: get a signed callback when a US stock crosses a price you set. Arm once, pay once (no account, no API key) — we poll the quote during US market hours and POST your custom payload to callbackUrl the moment the condition is met. conditionType: 'above' / 'below' (threshold = a USD price) or 'pct_up' / 'pct_down' (threshold = a percent move vs the prior close). Fires once per crossing into the condition; bounded by a maxFires / expiry budget. Real-time IEX-tier quote via Finnhub. Deliveries are EIP-191-signed (verify offline) and retried with exponential backoff; missed pushes are recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_stock-price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed stock-price watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"},"ticker":{"type":"string"},"conditionType":{"type":"string"},"threshold":{"type":"number"},"maxFires":{"type":"number"},"firesRemaining":{"type":"number"},"expiresAt":{"type":"string"},"statusUrl":{"type":"string"},"callbackSigner":{"type":"string"}},"required":["watcherId","status","ticker","conditionType","threshold","maxFires","firesRemaining","expiresAt","statusUrl","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.stock-price","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string","minLength":1,"maxLength":12,"pattern":"^[A-Za-z][A-Za-z0-9.\\-]{0,11}$","description":"US-listed ticker to watch, e.g. AAPL."},"conditionType":{"type":"string","enum":["above","below","pct_up","pct_down"],"description":"above/below = threshold is a USD price; pct_up/pct_down = threshold is a percent move vs the prior close."},"threshold":{"type":"number","description":"The trigger level. A USD price for above/below (e.g. 200), or a percent for pct_up/pct_down (e.g. 5 = ±5%)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST the event. Any http(s) URL; the JSON body is signed (verify with X-2s-Signature). e.g. https://your-agent.app/hooks/price"},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back verbatim in every callback so you can route/identify the event. e.g. {\"agentId\":\"a1\"}"},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"How long the watch stays active, in seconds. Default 2592000 (30 days), max 7776000 (90 days)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1 — a one-shot alert). Each fire is a fresh crossing into the condition."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag to recognize this watcher later."}},"required":["ticker","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/token-price":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a crypto asset crosses...","description":"WATCHER: get a signed callback when a crypto asset crosses a price you set. Arm once, pay once (no account, no API key) — we poll the spot price and POST your custom payload to callbackUrl the moment the condition is met. tokenId is a CoinGecko asset id (lowercase, e.g. bitcoin, ethereum, solana — not the ticker). conditionType: 'above' / 'below' (threshold = a USD price) or 'pct_up' / 'pct_down' (threshold = a percent move over 24h). Fires once per crossing; bounded by a maxFires / expiry budget. Price via CoinGecko. Deliveries are EIP-191-signed (verify offline) and retried with exponential backoff; missed pushes are recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_token-price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed token-price watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"watcherId":{"type":"string"},"status":{"type":"string"},"tokenId":{"type":"string"},"conditionType":{"type":"string"},"threshold":{"type":"number"},"maxFires":{"type":"number"},"firesRemaining":{"type":"number"},"expiresAt":{"type":"string"},"statusUrl":{"type":"string"},"callbackSigner":{"type":"string"}},"required":["watcherId","status","tokenId","conditionType","threshold","maxFires","firesRemaining","expiresAt","statusUrl","callbackSigner"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.token-price","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tokenId":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9-]{1,64}$","description":"CoinGecko asset id (lowercase, not ticker), e.g. bitcoin, ethereum, solana."},"conditionType":{"type":"string","enum":["above","below","pct_up","pct_down"],"description":"above/below = threshold is a USD price; pct_up/pct_down = threshold is a percent move over 24h."},"threshold":{"type":"number","description":"Trigger level: a USD price for above/below (e.g. 100000), or a percent for pct_up/pct_down (e.g. 10 = ±10% over 24h)."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Where we POST the event. Any http(s) URL; the JSON body is signed (verify with X-2s-Signature). e.g. https://your-agent.app/hooks/btc"},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back verbatim in every callback. e.g. {\"agentId\":\"a1\"}"},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"How long the watch stays active, in seconds. Default 2592000 (30 days), max 7776000 (90 days)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many callbacks (default 1 — a one-shot alert). Each fire is a fresh crossing into the condition."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag to recognize this watcher later."}},"required":["tokenId","conditionType","threshold","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/weather-alert":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when the US National Weather...","description":"WATCHER: get a signed callback when the US National Weather Service issues a new alert for an area. Arm once, pay once. Pass area (2-letter state/territory code, e.g. CA, TX); optionally severity to only fire at/above a level (Minor/Moderate/Severe/Extreme). Fires once per new alert (deduped by id); bounded by maxFires/expiry. Active alerts at arm time are baselined. Free public-domain (NWS). Signed + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_weather-alert","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed weather-alert watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.weather-alert","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"area":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"US state/territory code, e.g. CA, TX, FL."},"severity":{"type":"string","enum":["Minor","Moderate","Severe","Extreme"],"description":"Optional: only fire on alerts of this severity."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many alerts (default 25)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["area","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/watchers/whois":{"post":{"tags":["watchers"],"summary":"WATCHER: get a signed callback when a domain's WHOIS...","description":"WATCHER: get a signed callback when a domain's WHOIS registration changes — registrar, expiry, or status. Arm once, pay once. Pass domain. Fires on any WHOIS change (e.g. transfer, renewal, expiry shift); bounded by maxFires/expiry. The record at arm time is baselined. Useful for catching domain transfers/expiries or monitoring a brand. Signed (verify offline) + retried; recoverable via watchers.status. Returns a watcherId.","operationId":"watchers_whois","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [the armed whois watcher].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"watchers.whois","x-2s-version":null,"x-2s-price":{"usd":0.05},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":255,"description":"Domain to monitor, e.g. example.com."},"callbackUrl":{"type":"string","format":"uri","maxLength":2048,"description":"Signed event POSTed here (verify X-2s-Signature). Any http(s) URL."},"payload":{"type":"object","additionalProperties":{},"description":"Arbitrary JSON echoed back in every callback."},"expiresInSeconds":{"type":"integer","minimum":60,"maximum":7776000,"description":"Active window in seconds (default 30d, max 90d)."},"maxFires":{"type":"integer","minimum":1,"maximum":1000,"description":"Stop after this many changes (default 10)."},"label":{"type":"string","maxLength":64,"description":"Optional free-text tag."}},"required":["domain","callbackUrl"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/water/gauge":{"get":{"tags":["water"],"summary":"Real-time US river/stream conditions from a USGS monitoring...","description":"Real-time US river/stream conditions from a USGS monitoring site. Pass site = the USGS site number (e.g. 01646500 = Potomac River near Washington DC). Returns the latest readings — streamflow (cubic feet/sec), gage height (ft), and water/air temperature where available — with the site name + coordinates and observation time. Useful for flood monitoring, recreation, and hydrology. Source: USGS National Water Information System (keyless, public domain).","operationId":"water_gauge","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = latest readings per parameter; meta = site identity + location.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"parameterCode":{"type":"string"},"name":{"type":"string"},"value":{"type":"number","nullable":true},"unit":{"type":"string","nullable":true},"observedAt":{"type":"string","nullable":true}},"required":["parameterCode","name","value","unit","observedAt"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"site":{"type":"string"},"siteName":{"type":"string","nullable":true},"latitude":{"type":"number","nullable":true},"longitude":{"type":"number","nullable":true}},"required":["site","siteName","latitude","longitude"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"water.gauge","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"site","in":"query","required":true,"description":"Site.","schema":{"type":"string","pattern":"^\\d{8,15}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/weather/air-quality":{"get":{"tags":["weather"],"summary":"Current air quality for any coordinate worldwide.","description":"Current air quality for any coordinate worldwide. Pass lat + lon. Returns the US AQI (+ category Good/Moderate/Unhealthy…), the European AQI, and pollutant concentrations: PM2.5, PM10, ozone, nitrogen dioxide, sulphur dioxide, carbon monoxide. Source: Open-Meteo / CAMS (keyless).","operationId":"weather_air-quality","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [current air quality]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"time":{"type":"string","nullable":true},"usAqi":{"type":"number","nullable":true},"usAqiCategory":{"type":"string","nullable":true},"europeanAqi":{"type":"number","nullable":true},"pm2_5":{"type":"number","nullable":true},"pm10":{"type":"number","nullable":true},"ozone":{"type":"number","nullable":true},"nitrogenDioxide":{"type":"number","nullable":true},"sulphurDioxide":{"type":"number","nullable":true},"carbonMonoxide":{"type":"number","nullable":true}},"required":["lat","lon","time","usAqi","usAqiCategory","europeanAqi","pm2_5","pm10","ozone","nitrogenDioxide","sulphurDioxide","carbonMonoxide"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"weather.air-quality","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/weather/alerts":{"get":{"tags":["weather"],"summary":"Live US severe-weather alerts from the National Weather...","description":"Live US severe-weather alerts from the National Weather Service. Pass a point (\"lat,lon\") to get every active watch, warning, and advisory for that exact location, or an area (2-letter US state or marine zone code) for area-wide alerts. Optionally filter by severity or urgency. Each alert returns the event type, severity, urgency, certainty, headline, affected-area description, issuing office, recommended public response, onset / expiry / end times, and the full hazard description plus protective-action instructions. Results are sorted most-severe first and capped by limit, with the true total reported. Public-domain NOAA / National Weather Service data, refreshed in real time.","operationId":"weather_alerts","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = active alerts (most-severe first), total = full active-alert count before the limit cap, meta.scope echoes the resolved point/area. An empty items array means no active alerts for the scope.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"event":{"type":"string","nullable":true},"severity":{"type":"string","nullable":true},"urgency":{"type":"string","nullable":true},"certainty":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"headline":{"type":"string","nullable":true},"areaDescription":{"type":"string","nullable":true},"senderName":{"type":"string","nullable":true},"response":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"messageType":{"type":"string","nullable":true},"effective":{"type":"string","nullable":true},"onset":{"type":"string","nullable":true},"expires":{"type":"string","nullable":true},"ends":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"instruction":{"type":"string","nullable":true}},"required":["id","event","severity","urgency","certainty","category","headline","areaDescription","senderName","response","status","messageType","effective","onset","expires","ends","description","instruction"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"scope":{"type":"object","properties":{"point":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"additionalProperties":false,"nullable":true},"area":{"type":"string","nullable":true}},"required":["point","area"],"additionalProperties":false}},"required":["scope"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"weather.alerts","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"point","in":"query","required":false,"description":"Exact location as \"lat,lon\" in decimal degrees, e.g. \"25.7617,-80.1918\". Returns alerts covering that point. Provide point OR area, not both.","schema":{"type":"string"}},{"name":"area","in":"query","required":false,"description":"2-letter US state / territory or NWS marine area code, e.g. \"FL\", \"TX\", \"PK\". Returns all active alerts for that area. Provide point OR area, not both.","schema":{"type":"string"}},{"name":"severity","in":"query","required":false,"description":"Filter to a single severity level.","schema":{"type":"string","enum":["Extreme","Severe","Moderate","Minor","Unknown"]}},{"name":"urgency","in":"query","required":false,"description":"Filter to a single urgency level.","schema":{"type":"string","enum":["Immediate","Expected","Future","Past","Unknown"]}},{"name":"limit","in":"query","required":false,"description":"Max alerts to return (1-100, default 20). Most-severe first.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/weather/forecast":{"get":{"tags":["weather"],"summary":"Official US weather forecast for a coordinate (US land +...","description":"Official US weather forecast for a coordinate (US land + territories). Pass lat + lon. Returns the National Weather Service forecast as a list of periods — by default ~7 days of day/night periods; pass hourly=true for an hour-by-hour forecast. Each period gives the temperature + unit, wind speed/direction, chance of precipitation, and a short + detailed forecast, plus the resolved city/state and issuing office. Source: US National Weather Service (api.weather.gov), public domain. For active warnings use weather.alerts.","operationId":"weather_forecast","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = forecast periods (chronological); meta = location + office + count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"startTime":{"type":"string"},"endTime":{"type":"string"},"isDaytime":{"type":"boolean"},"temperature":{"type":"number","nullable":true},"temperatureUnit":{"type":"string","nullable":true},"windSpeed":{"type":"string","nullable":true},"windDirection":{"type":"string","nullable":true},"precipProbabilityPct":{"type":"number","nullable":true},"shortForecast":{"type":"string","nullable":true},"detailedForecast":{"type":"string","nullable":true}},"required":["name","startTime","endTime","isDaytime","temperature","temperatureUnit","windSpeed","windDirection","precipProbabilityPct","shortForecast","detailedForecast"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"location":{"type":"string","nullable":true},"forecastOffice":{"type":"string","nullable":true},"updated":{"type":"string","nullable":true},"periods":{"type":"integer"}},"required":["location","forecastOffice","updated","periods"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"weather.forecast","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"hourly","in":"query","required":false,"description":"Hourly.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":156}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/weather/history":{"get":{"tags":["weather"],"summary":"Historical daily weather for any coordinate (ERA5...","description":"Historical daily weather for any coordinate (ERA5 reanalysis, 1940→~5 days ago). Pass lat + lon + start + end (YYYY-MM-DD, range ≤366 days). Returns per-day max/min/mean temperature (°C), precipitation total (mm) + hours, and max wind (km/h). Source: Open-Meteo archive / ECMWF ERA5 (keyless).","operationId":"weather_history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = daily history (chronological); total = days.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"tempMaxC":{"type":"number","nullable":true},"tempMinC":{"type":"number","nullable":true},"tempMeanC":{"type":"number","nullable":true},"precipMm":{"type":"number","nullable":true},"windMaxKmh":{"type":"number","nullable":true},"precipHours":{"type":"number","nullable":true}},"required":["date","tempMaxC","tempMinC","tempMeanC","precipMm","windMaxKmh","precipHours"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"weather.history","x-2s-version":null,"x-2s-price":{"usd":0.00144},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001440"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"start","in":"query","required":true,"description":"Start.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"end","in":"query","required":true,"description":"End.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/weather/marine":{"get":{"tags":["weather"],"summary":"Current marine/sea-state conditions for an ocean or coastal...","description":"Current marine/sea-state conditions for an ocean or coastal coordinate. Pass lat + lon. Returns significant wave height (m), wave direction + period, and the wind-wave and swell-wave components. Useful for surf, sailing, and coastal ops. Source: Open-Meteo marine (keyless). Returns 404 for inland points.","operationId":"weather_marine","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [current sea state]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"time":{"type":"string","nullable":true},"waveHeightM":{"type":"number","nullable":true},"waveDirectionDeg":{"type":"number","nullable":true},"wavePeriodS":{"type":"number","nullable":true},"windWaveHeightM":{"type":"number","nullable":true},"swellWaveHeightM":{"type":"number","nullable":true},"swellWavePeriodS":{"type":"number","nullable":true}},"required":["lat","lon","time","waveHeightM","waveDirectionDeg","wavePeriodS","windWaveHeightM","swellWaveHeightM","swellWavePeriodS"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"weather.marine","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"description":"Longitude in decimal degrees (WGS84).","schema":{"type":"number","minimum":-180,"maximum":180}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/weather/zip":{"get":{"tags":["weather"],"summary":"Current weather conditions for a US ZIP code (temperature...","description":"Current weather conditions for a US ZIP code (temperature, wind, humidity, conditions). Backed by the US National Weather Service (api.weather.gov) — public domain, no rate-limit pressure on commercial use.","operationId":"weather_zip","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ location, current }] (one ZIP-keyed current-conditions snapshot); total = 1. 404 if the ZIP is unknown.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"location":{"type":"object","properties":{"zip":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"coords":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"],"additionalProperties":false},"timezone":{"type":"string","nullable":true}},"required":["zip","city","state","coords","timezone"],"additionalProperties":false},"current":{"type":"object","properties":{"temperatureF":{"type":"number","nullable":true},"apparentTemperatureF":{"type":"number","nullable":true},"humidityPct":{"type":"number","nullable":true},"windMph":{"type":"number","nullable":true},"windDirection":{"type":"string","nullable":true},"windDirectionDeg":{"type":"number","nullable":true},"precipProbabilityPct":{"type":"number","nullable":true},"conditions":{"type":"string"},"isDay":{"type":"boolean","nullable":true},"observedAt":{"type":"string","nullable":true}},"required":["temperatureF","apparentTemperatureF","humidityPct","windMph","windDirection","windDirectionDeg","precipProbabilityPct","conditions","isDay","observedAt"],"additionalProperties":false}},"required":["location","current"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"weather.zip","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"zip","in":"query","required":true,"description":"US ZIP code.","schema":{"type":"string","pattern":"^\\d{5}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/wikidata/entity":{"get":{"tags":["wikidata"],"summary":"Fetch a Wikidata entity (Q42, P31, etc.) - structured...","description":"Fetch a Wikidata entity (Q42, P31, etc.) — structured knowledge-graph record with labels + descriptions + aliases in selectable languages, claims (property → value statements grouped by property ID), sitelinks (Wikipedia article title per language). 110M+ entities. CC0 public domain. Pass languages= as comma-separated codes (default \"en\") to control which language strings are included; pass maxClaimsPerProperty to cap how many statements come back per property (default 10).","operationId":"wikidata_entity","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [Wikidata entity record] (labels, descriptions, aliases, claims, sitelinks); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"pageId":{"type":"integer","nullable":true},"lastModified":{"type":"string","nullable":true},"labels":{"type":"object","additionalProperties":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"string"}},"required":["language","value"],"additionalProperties":false}},"descriptions":{"type":"object","additionalProperties":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"string"}},"required":["language","value"],"additionalProperties":false}},"aliases":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"string"}},"required":["language","value"],"additionalProperties":false}}},"claimsCount":{"type":"integer"},"claims":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"string"},"type":{"type":"string"},"valueType":{"type":"string","nullable":true},"value":{}},"required":["rank","type","valueType"],"additionalProperties":false}}},"sitelinksCount":{"type":"integer"},"sitelinks":{"type":"object","additionalProperties":{"type":"object","properties":{"site":{"type":"string"},"title":{"type":"string"},"url":{"type":"string","nullable":true}},"required":["site","title","url"],"additionalProperties":false}}},"required":["id","type","pageId","lastModified","labels","descriptions","aliases","claimsCount","claims","sitelinksCount","sitelinks"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"wikidata.entity","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":true,"description":"Unique identifier of the record to fetch.","schema":{"type":"string","pattern":"^[QPLMSqplms]\\d+$"}},{"name":"languages","in":"query","required":false,"description":"Languages.","schema":{"type":"string","minLength":2,"maxLength":100,"default":"en"}},{"name":"includeClaims","in":"query","required":false,"description":"Include claims.","schema":{"type":"boolean","default":true}},{"name":"maxClaimsPerProperty","in":"query","required":false,"description":"Max claims per property.","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/wikipedia/summary":{"get":{"tags":["wikipedia"],"summary":"Fetch a Wikipedia article summary in any of 30 supported...","description":"Fetch a Wikipedia article summary in any of 30 supported languages. Returns title, displayTitle, lang, pageId, description, extract (plain text), extractHtml, lead image, canonical URLs, last-modified timestamp, word count, license, and an attribution string. Backed by https://<lang>.wikipedia.org/api/rest_v1/page/summary. Content is CC BY-SA 4.0 with attribution provided.","operationId":"wikipedia_summary","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [Wikipedia article summary] (title, extract, extractHtml, leadImage, lastModified, wordCount, attribution); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"wikipedia.summary","x-2s-version":null,"x-2s-price":{"usd":0.001},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"title","in":"query","required":true,"description":"Title to search for.","schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"lang","in":"query","required":false,"description":"Two-letter ISO language code.","schema":{"type":"string","enum":["en","es","fr","de","it","pt","ru","ja","zh","ko","ar","nl","pl","tr","sv","cs","fi","da","no","el","he","hi","th","vi","uk","id","ms","ro","hu","simple"],"default":"en"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/word/define":{"get":{"tags":["word"],"summary":"English dictionary lookup via dictionaryapi.dev...","description":"English dictionary lookup via dictionaryapi.dev (Wiktionary-sourced). Returns full entries with IPA phonetic transcription(s), audio pronunciation URLs, and meanings grouped by part of speech. Each meaning carries definitions with usage examples and per-definition synonyms + antonyms. CC BY-SA 3.0/4.0 — attribute when redistributing. Useful for vocabulary agents, writing assistants, language-learning tools.","operationId":"word_define","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = dictionary entries for the word (phonetics, meanings by part of speech, per-definition synonyms/antonyms); total = number of entries.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"word":{"type":"string"},"phonetic":{"type":"string","nullable":true},"phonetics":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","nullable":true},"audio":{"type":"string","nullable":true},"sourceUrl":{"type":"string","nullable":true}},"required":["text","audio","sourceUrl"],"additionalProperties":false}},"meanings":{"type":"array","items":{"type":"object","properties":{"partOfSpeech":{"type":"string"},"definitions":{"type":"array","items":{"type":"object","properties":{"definition":{"type":"string"},"example":{"type":"string","nullable":true},"synonyms":{"type":"array","items":{"type":"string"}},"antonyms":{"type":"array","items":{"type":"string"}}},"required":["definition","example","synonyms","antonyms"],"additionalProperties":false}},"synonyms":{"type":"array","items":{"type":"string"}},"antonyms":{"type":"array","items":{"type":"string"}}},"required":["partOfSpeech","definitions","synonyms","antonyms"],"additionalProperties":false}},"sourceUrls":{"type":"array","items":{"type":"string"}},"license":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false,"nullable":true}},"required":["word","phonetic","phonetics","meanings","sourceUrls","license"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"word.define","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"word","in":"query","required":true,"description":"Word.","schema":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z'.-]{0,49}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/word/related":{"get":{"tags":["word"],"summary":"Related-word lookup via Datamuse.","description":"Related-word lookup via Datamuse. Supply a seed word and a relation kind: rhymes, near-rhymes, synonyms, antonyms, means (semantic match), triggers (associated by usage), homophones, sounds-like (phonetic neighbour), spelled-like (typo / wildcard), follows-from (words that come after), preceded-by (words that come before). Returns ranked candidates with relevance score, syllable count, and grammatical tags. Useful for content generation, rhyme/poetry, vocabulary expansion, and naming agents.","operationId":"word_related","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = ranked related words (word, score, syllables, tags); total = null (Datamuse caps candidates without a true count); meta echoes seed word + relation + fetched count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"word":{"type":"string"},"score":{"type":"number"},"numSyllables":{"type":"integer","nullable":true},"tags":{"type":"array","items":{"type":"string"}}},"required":["word","score","numSyllables","tags"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"word":{"type":"string"},"relation":{"type":"string"},"fetched":{"type":"integer"}},"required":["word","relation","fetched"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"word.related","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"word","in":"query","required":true,"description":"Word.","schema":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z'.-]{0,49}$"}},{"name":"relation","in":"query","required":true,"description":"Relation.","schema":{"type":"string","enum":["rhymes","near-rhymes","synonyms","antonyms","means","triggers","homophones","sounds-like","spelled-like","follows-from","preceded-by"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/worldbank/indicator":{"get":{"tags":["worldbank"],"summary":"World Bank Open Data - fetch a time series of a specific...","description":"World Bank Open Data — fetch a time series of a specific indicator for a country (or 'all'). 1000+ indicators across 200+ countries, many series going back to 1960. Indicator codes are dotted-token strings, e.g., NY.GDP.MKTP.CD (GDP current US$), SP.POP.TOTL (population total), FP.CPI.TOTL.ZG (inflation CPI annual %), SL.UEM.TOTL.ZS (unemployment %), SE.ADT.LITR.ZS (adult literacy %), SP.DYN.LE00.IN (life expectancy). Country = ISO 2-letter (e.g., US, CN), ISO 3-letter (USA, CHN), or 'all'. Optional yearFrom/yearTo bracket. Each observation: country id+name, year, numeric value (may be null for missing), obsStatus. Returns indicator name + total count + pagination metadata.","operationId":"worldbank_indicator","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = indicator observations (countryId, year, value); total = upstream total observation count; page = current page; meta carries indicator id/name + query echo.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"countryId":{"type":"string"},"countryName":{"type":"string"},"year":{"type":"integer"},"value":{"type":"number","nullable":true},"obsStatus":{"type":"string","nullable":true}},"required":["countryId","countryName","year","value","obsStatus"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"page":{"type":"object","properties":{"number":{"type":"integer"},"size":{"type":"integer"},"pages":{"type":"integer","nullable":true}},"required":["number","size","pages"],"additionalProperties":false},"meta":{"type":"object","properties":{"query":{"type":"object","properties":{"country":{"type":"string"},"indicator":{"type":"string"},"yearFrom":{"type":"integer","nullable":true},"yearTo":{"type":"integer","nullable":true},"limit":{"type":"integer"},"page":{"type":"integer"}},"required":["country","indicator","yearFrom","yearTo","limit","page"],"additionalProperties":false},"indicatorId":{"type":"string"},"indicatorName":{"type":"string","nullable":true},"lastUpdated":{"type":"string","nullable":true}},"required":["query","indicatorId","indicatorName","lastUpdated"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"worldbank.indicator","x-2s-version":null,"x-2s-price":{"usd":0.0012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001200"},"protocols":[{"x402":{}}]},"parameters":[{"name":"country","in":"query","required":true,"description":"Country name or ISO country code.","schema":{"type":"string","pattern":"^([A-Za-z]{2,3}|all)$"}},{"name":"indicator","in":"query","required":true,"description":"Indicator.","schema":{"type":"string","pattern":"^[A-Za-z0-9.]{3,40}$"}},{"name":"yearFrom","in":"query","required":false,"description":"Year from.","schema":{"type":"integer","minimum":1960,"maximum":2100}},{"name":"yearTo","in":"query","required":false,"description":"Year to.","schema":{"type":"integer","minimum":1960,"maximum":2100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1}},{"$ref":"#/components/parameters/TrialMode"}]}}}}