{"openapi":"3.1.0","info":{"title":"SEC Fundamentals API","description":"Normalized SEC XBRL financial data for humans and agents. Pay per call with x402 (USDC) or use an API key. Not affiliated with the U.S. Securities and Exchange Commission.","contact":{"name":"Multyply Labs","url":"https://sec.multyplylabs.com/","email":"help@multyplylabs.com"},"version":"0.1.0"},"servers":[{"url":"https://sec.multyplylabs.com"}],"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/catalog":{"get":{"summary":"Catalog","operationId":"catalog_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/company/lookup":{"get":{"summary":"Find a company's CIK by ticker, CIK or name (free)","description":"Free, no API key or payment: resolve a ticker or company name to the SEC\nCIK every /company/{cik} route takes. Best match first: exact ticker\n(case-insensitive), exact CIK, name starts with q, name contains q; within\neach, companies with tickers before other filers (individuals, funds),\nthen by name and CIK. Each result: cik, name, tickers, sic,\nsic_description. No match is an empty result list, not a 404.","operationId":"company_lookup_company_lookup_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"A ticker (AAPL, BRK.B), CIK digits (320193), or all or part of a company name (apple); surrounding whitespace is ignored","title":"Q"},"description":"A ticker (AAPL, BRK.B), CIK digits (320193), or all or part of a company name (apple); surrounding whitespace is ignored"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":25,"minimum":1,"description":"Maximum number of results, 1-25","default":10,"title":"Limit"},"description":"Maximum number of results, 1-25"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/company/{cik}/facts":{"get":{"summary":"Get Facts","operationId":"get_facts_company__cik__facts_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}},{"name":"concept","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Concept"}},{"name":"fy_from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1993},{"type":"null"}],"title":"Fy From"}},{"name":"fy_to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100},{"type":"null"}],"title":"Fy To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20000,"default":5000,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/facts","mimeType":"application/json","description":"Normalized SEC EDGAR XBRL facts for one US public company: every reported value (revenue, net income, assets, cash flow, ...) mapped to 61 canonical concepts with units, periods, filing provenance and data-quality flags. Filter by concept and fiscal year. Use it for individual reported values, quarterly periods or provenance; use /company/{cik}/financials for clean annual statements and ratios."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"10000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Normalized SEC EDGAR XBRL facts for one US public company: every reported value (revenue, net income, assets, cash flow, ...) mapped to 61 canonical concepts with units, periods, filing provenance and data-quality flags. Filter by concept and fiscal year. Use it for individual reported values, quarterly periods or provenance; use /company/{cik}/financials for clean annual statements and ratios."}},"/company/{cik}/financials":{"get":{"summary":"Get Financials","operationId":"get_financials_company__cik__financials_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}},{"name":"fy_from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fy From"}},{"name":"fy_to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fy To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/financials","mimeType":"application/json","description":"Clean annual financial statements for one US public company, built from its SEC 10-K/10-Q filings: income statement, balance sheet, cash flow and derived ratios (gross margin, operating margin, ROE, ROA, FCF, debt-to-equity, R&D intensity), one row per fiscal year. Use it for a known company's history, valuation models and fundamental research; use /screen to find companies by criteria."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Clean annual financial statements for one US public company, built from its SEC 10-K/10-Q filings: income statement, balance sheet, cash flow and derived ratios (gross margin, operating margin, ROE, ROA, FCF, debt-to-equity, R&D intensity), one row per fiscal year. Use it for a known company's history, valuation models and fundamental research; use /screen to find companies by criteria."}},"/company/{cik}/filings":{"get":{"summary":"Get Filings","operationId":"get_filings_company__cik__filings_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}},{"name":"form","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Form"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/filings","mimeType":"application/json","description":"SEC EDGAR filing index for one US public company, with direct document URLs: 10-K annual reports, 10-Q quarterlies, 8-K current reports, Form 4 insider trades, S-1 and more, freshest first and updated within minutes of EDGAR acceptance. Filter by form type. Use it to fetch source documents or to track disclosure activity."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"SEC EDGAR filing index for one US public company, with direct document URLs: 10-K annual reports, 10-Q quarterlies, 8-K current reports, Form 4 insider trades, S-1 and more, freshest first and updated within minutes of EDGAR acceptance. Filter by form type. Use it to fetch source documents or to track disclosure activity."}},"/company/{cik}/signal":{"get":{"summary":"Get Signal","description":"Composite factor scorecard. Research signal, not investment advice.\n\nComposite factor scorecard (0-100) for one company, fusing quality (Piotroski F-Score, Altman Z, Sloan accruals), value (owner-earnings DCF margin of safety), insider conviction (Form 4 buying), institutional positioning (13F holder change) and short sentiment (FINRA short volume), with per-factor scores, coverage, cross-dataset metrics and data-quality flags. Weights are caller-overridable. Research signal, not investment advice.","operationId":"get_signal_company__cik__signal_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}},{"name":"weights","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional JSON factor weights, e.g. {\"quality\":0.4,\"value\":0.4}","title":"Weights"},"description":"Optional JSON factor weights, e.g. {\"quality\":0.4,\"value\":0.4}"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/signal","mimeType":"application/json","description":"Composite factor scorecard (0-100) for one company, fusing quality (Piotroski F-Score, Altman Z, Sloan accruals), value (owner-earnings DCF margin of safety), insider conviction (Form 4 buying), institutional positioning (13F holder change) and short sentiment (FINRA short volume), with per-factor scores, coverage, cross-dataset metrics and data-quality flags. Weights are caller-overridable. Research signal, not investment advice."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"50000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}}},"/aggregate/{metric}":{"get":{"summary":"Get Aggregate","operationId":"get_aggregate_aggregate__metric__get","parameters":[{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}},{"name":"industry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"2-digit SIC group, e.g. 73","title":"Industry"},"description":"2-digit SIC group, e.g. 73"},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(micro|small|mid|large|mega)$"},{"type":"null"}],"title":"Size"}},{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fy"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/aggregate/gross_margin","mimeType":"application/json","description":"Industry benchmark percentiles (p10/p25/median/p75/p90, mean and company count) for any financial metric across US public companies, grouped by industry (SIC) and revenue size bucket. Answers questions like 'what is the median gross margin of large software companies?'. Use it to judge a metric against its peer group; /compare/{cik} does the same for one named company."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"50000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Industry benchmark percentiles (p10/p25/median/p75/p90, mean and company count) for any financial metric across US public companies, grouped by industry (SIC) and revenue size bucket. Answers questions like 'what is the median gross margin of large software companies?'. Use it to judge a metric against its peer group; /compare/{cik} does the same for one named company."}},"/screen":{"get":{"summary":"Get Screen","operationId":"get_screen_screen_get","parameters":[{"name":"fy","in":"query","required":true,"schema":{"type":"integer","title":"Fy"}},{"name":"filters","in":"query","required":true,"schema":{"type":"string","description":"JSON list of [metric, op, value], e.g. [[\"gross_margin\",\">\",0.6],[\"revenue\",\">\",1e9]]","title":"Filters"},"description":"JSON list of [metric, op, value], e.g. [[\"gross_margin\",\">\",0.6],[\"revenue\",\">\",1e9]]"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/screen","mimeType":"application/json","description":"Stock screener over normalized SEC fundamentals: filter US public companies by any combination of financial metrics for a fiscal year (e.g. gross_margin > 0.6 AND revenue > 1e9). Returns the matching companies with names, tickers, industries and their metric values. Use it to build a candidate list from scratch; the /insight routes rank pre-built ones."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"100000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.10"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Stock screener over normalized SEC fundamentals: filter US public companies by any combination of financial metrics for a fiscal year (e.g. gross_margin > 0.6 AND revenue > 1e9). Returns the matching companies with names, tickers, industries and their metric values. Use it to build a candidate list from scratch; the /insight routes rank pre-built ones."}},"/compare/{cik}":{"get":{"summary":"Get Compare","operationId":"get_compare_compare__cik__get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}},{"name":"fy","in":"query","required":true,"schema":{"type":"integer","title":"Fy"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/compare/320193","mimeType":"application/json","description":"Peer comparison for one US public company: its financial metrics side by side with its industry cohort's percentiles for the same fiscal year, so an agent can tell whether margins, growth or leverage sit above or below sector norms."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"50000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Peer comparison for one US public company: its financial metrics side by side with its industry cohort's percentiles for the same fiscal year, so an agent can tell whether margins, growth or leverage sit above or below sector norms."}},"/company/{cik}/insider":{"get":{"summary":"Get Insider","operationId":"get_insider_company__cik__insider_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":12,"title":"Months"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/insider","mimeType":"application/json","description":"Recent insider (Form 4) transactions for one company plus a trailing summary: open-market buys vs sales, distinct buyers and net dollar value, with officer and director roles and 10b5-1 plan flags. Use it to check insider conviction for a known company; /insight/insider_buying ranks the whole market. Not investment advice."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Recent insider (Form 4) transactions for one company plus a trailing summary: open-market buys vs sales, distinct buyers and net dollar value, with officer and director roles and 10b5-1 plan flags. Use it to check insider conviction for a known company; /insight/insider_buying ranks the whole market. Not investment advice."}},"/company/{cik}/institutional":{"get":{"summary":"Get Institutional","operationId":"get_institutional_company__cik__institutional_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/institutional","mimeType":"application/json","description":"13F institutional ownership snapshot for one company: number of institutional holders, aggregate shares and reported value, and the quarter-over-quarter change that says whether institutions are accumulating or trimming. 45-day reporting lag; long-only. Not investment advice."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"13F institutional ownership snapshot for one company: number of institutional holders, aggregate shares and reported value, and the quarter-over-quarter change that says whether institutions are accumulating or trimming. 45-day reporting lag; long-only. Not investment advice."}},"/company/{cik}/short":{"get":{"summary":"Get Short","operationId":"get_short_company__cik__short_get","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"integer","title":"Cik"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/company/320193/short","mimeType":"application/json","description":"Short-selling pressure for one company: the FINRA daily short-volume ratio (short volume / total volume) over the trailing ~20 trading days, a bearish-sentiment proxy. This is daily short-sale volume, not bi-monthly short interest as a share of float. Not investment advice."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"},"description":"Short-selling pressure for one company: the FINRA daily short-volume ratio (short volume / total volume) over the trailing ~20 trading days, a bearish-sentiment proxy. This is daily short-sale volume, not bi-monthly short interest as a share of float. Not investment advice."}},"/spotlight":{"get":{"summary":"Spotlight","description":"Free: top Buffett Quality Score companies, refreshed by the nightly ETL.","operationId":"spotlight_spotlight_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/insights":{"get":{"summary":"List Insights","description":"Free catalog of curated insights and their parameters.","operationId":"list_insights_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/insight/{name}":{"get":{"summary":"Get Insight","description":"Curated analysis computed live across all companies. See /insights.\n\nCurated market-wide analyses computed live over all US public companies: top_companies (rank by any metric), movers (largest change between two fiscal years), sector_landscape (margin medians per industry), metric_trend (yearly aggregate series), capital_returns (buybacks vs dividends by size) and filing_velocity (monthly filing counts). Free catalog of names and parameters at /insights. Not investment advice.","operationId":"get_insight_insight__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required: the request carried neither a valid API key nor a payment. The x402 v2 challenge is base64-encoded JSON in the PAYMENT-REQUIRED header (decoded in the example below); the response body itself is empty. Pay it in USDC on Base, or send an API key. This operation serves routes at several prices: the example quotes $0.15, the operation charges $0.15 to $0.25 depending on the path. x-payment-info.price carries that range; /.well-known/x402 carries the exact amount of every concrete route.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded JSON x402 v2 payment challenge.","schema":{"type":"string"}}},"content":{"application/json":{"examples":{"payment-required-header":{"summary":"The decoded PAYMENT-REQUIRED header; the body itself is empty","value":{"x402Version":2,"resource":{"url":"https://sec.multyplylabs.com/insight/top_companies","mimeType":"application/json","description":"Curated market-wide analyses computed live over all US public companies: top_companies (rank by any metric), movers (largest change between two fiscal years), sector_landscape (margin medians per industry), metric_trend (yearly aggregate series), capital_returns (buybacks vs dividends by size) and filing_velocity (monthly filing counts). Free catalog of names and parameters at /insights. Not investment advice."},"accepts":[{"scheme":"exact","network":"eip155:8453","amount":"150000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}]}}}}}}},"security":[{"ApiKeyAuth":[]}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"dynamic","currency":"USD","min":"0.15","max":"0.25"},"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x37837F88A645c0a7F7947a7e92cB46fD6A343C5D"}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key (help@multyplylabs.com). A request carrying a valid key is served without payment; without one, a paid route answers 402 with an x402 payment challenge."}}}}