{"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.io","email":"alley@2s.io"},"x-logo":{"url":"https://2s.io/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.io/api/directory for the full catalog, or GET https://2s.io/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.io/api/batch/run."},"servers":[{"url":"https://2s.io"}],"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/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.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"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.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"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.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"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.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"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.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":"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.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"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.0144},"x-2s-accepts":["x402"],"x-2s-response-shape":"legacy","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.014400"},"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.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":"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.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":"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.0045},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004500"},"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.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"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.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":"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.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"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.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":"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.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"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.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":"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.0054},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005400"},"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"}]}}}}