{"workloads":[{"id":"sec_events","version":"0.1.0","status":"DRAFT","endpoint":"/v1/sec/events","method":"GET","price_usd":0.0,"description":"Recent SEC EDGAR corporate events as structured signals, refreshed every 15 minutes: 8-K items mapped to event labels (bankruptcy, auditor change, officer change, cyber incident, material agreement, results, debt), Form 4 open-market insider buys/sells with USD sizes and multi-insider buy clusters, and Form D private offerings with amounts and industry. Filter by ticker/CIK, form, flag, or time window; each event carries a salience score.","buyer_use_case":"Call this instead of polling EDGAR yourself when an agent needs to know what just happened at a company or across the market — new 8-K events, insider buying, private raises — with the parsing, item mapping and thresholds already done.","when_to_use":"You need parsed, flagged corporate events from EDGAR for one company or the whole market, in one call, without maintaining a poller and XML parsers.\n","when_not_to_use":"You need full filing text, historical archives before we started indexing, or legal advice.\n","avoids":["EDGAR polling and rate-limit handling","Form 4 and Form D XML parsing","8-K item mapping","insider-cluster detection"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Filter to one issuer by US exchange ticker, case-insensitive (e.g. AAPL). Omit both ticker and cik for all issuers; an unknown ticker returns zero events.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"Filter to one issuer by SEC CIK, 1-10 digits, zero padding optional (e.g. 320193). Omit both cik and ticker for all issuers; both are applied together if sent.","title":"Cik"},"forms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated EDGAR form types to keep, e.g. 8-K,4,D. Omit for every form the event index covers.","title":"Forms"},"flags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated flags, e.g. insider_buy_cluster,distress","title":"Flags"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO date/time; default = last 24h","title":"Since"},"min_score":{"default":0.0,"description":"Keep only events whose score is at or above this value, 0 to 1. Default 0 keeps every event, including those with no score.","maximum":1,"minimum":0,"title":"Min Score","type":"number"},"limit":{"default":50,"description":"Maximum events returned, most recent occurrence first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"EventsInput","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. Filings are ingested continuously, so this is the read time rather than a fixed data cut-off.","title":"As Of","type":"string"},"index_started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 UTC timestamp of the moment our poller first ingested a filing. Coverage does not extend meaningfully before it, so an empty result for an earlier window is silence from coverage rather than from the market.","title":"Index Started At"},"count":{"description":"Number of events in `events` after filtering and the limit. Equal to the length of `events`, not the total number of matching events in the index.","title":"Count","type":"integer"},"events":{"description":"One filing-derived event per element, ordered by `occurred_at` descending, i.e. most recently filed first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the rule set that produced the flags and scores in this response. It changes when the method changes; results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Analytical flags derived from public SEC filings; not investment advice.","description":"Fixed notice that the flags in this response are our own derivation from public SEC filings and are not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","count","events"],"title":"EventsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_company","version":"0.1.0","status":"DRAFT","endpoint":"/v1/sec/company","method":"GET","price_usd":0.02,"description":"One-call company snapshot from SEC EDGAR: identity (CIK, tickers, SIC), recent filings, 8-K events and insider activity from our event index, plus key XBRL facts (revenue, net income, assets, cash — last eight periods) straight from the SEC's companyfacts API.","buyer_use_case":"Call this when an agent needs a fast, cited fundamentals-and-events snapshot of a US public company without wiring up EDGAR, XBRL parsing and Form 4 handling itself.","when_to_use":"You have a ticker or CIK and need cited fundamentals plus recent events in one call.\n","when_not_to_use":"You need private companies, non-US issuers, or real-time prices.\n","avoids":["XBRL companyfacts parsing","submissions pagination","Form 4 aggregation","ticker-to-CIK mapping"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL), resolved through the EDGAR ticker file; an unresolvable ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193); skips ticker resolution. Provide exactly one of cik or ticker.","title":"Cik"}},"title":"CompanyInput","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"FactPoint":{"properties":{"end":{"description":"Last day of the period the figure covers, ISO-8601 YYYY-MM-DD, as tagged in the filing's XBRL: the measurement instant for balance-sheet items, the period end for flow items. This is a reporting-period boundary, not the filing date.","title":"End","type":"string"},"value":{"description":"Value exactly as reported, in the concept's native XBRL unit: US dollars for the monetary series and shares for shares_outstanding. Never rescaled or restated by us.","title":"Value","type":"number"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR form the figure was reported on. Only annual (10-K) and quarterly (10-Q) reports are included, so other form types never appear here.","title":"Form"},"fy":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Fiscal year the filing assigned to the figure (e.g. 2025). This is the registrant's own fiscal-year label and need not match the calendar year of `end`.","title":"Fy"},"fp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fiscal period the filing assigned to the figure: FY for a full year, or Q1, Q2, Q3 or Q4 for a quarter.","title":"Fp"}},"required":["end","value"],"title":"FactPoint","type":"object"}},"properties":{"cik":{"description":"Registrant's SEC Central Index Key, 10 digits zero-padded (e.g. 0000320193), resolved from the ticker when one was supplied. Use this form in other views.","title":"Cik","type":"string"},"name":{"description":"Registrant name as published on EDGAR's submissions record; empty string when EDGAR carries no name for the CIK.","title":"Name","type":"string"},"tickers":{"description":"Every exchange ticker EDGAR lists for this registrant, uppercase, in EDGAR's own order. Empty for private, unlisted or deregistered filers.","items":{"type":"string"},"title":"Tickers","type":"array"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Standard Industrial Classification code for the registrant's primary industry as assigned by the SEC, typically 4 digits (e.g. 3571); null when EDGAR has none.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry title EDGAR pairs with `sic` (e.g. Electronic Computers); null whenever `sic` is null.","title":"Sic Description"},"state_of_incorporation":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Jurisdiction the registrant is incorporated in as a two-character code — a US state code such as DE, or an SEC country code. This is not the business address; null when EDGAR has none.","title":"State Of Incorporation"},"fiscal_year_end":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant's fiscal year end as a four-character MMDD string (e.g. 0930 for 30 September); null when EDGAR has none on record.","title":"Fiscal Year End"},"recent_filings":{"description":"Up to the 15 most recent filings of any form from EDGAR's submissions record, most recent first. Each element has `form`, `filed` (ISO-8601 filing date), `accession`, `description` (primary document description, may be empty) and `url` (index page).","items":{"additionalProperties":true,"type":"object"},"title":"Recent Filings","type":"array"},"events_30d":{"description":"Events derived from this registrant's filings over the last 30 days, most recent first, capped at 50. Empty when nothing was filed or our event index does not yet cover the period.","items":{"$ref":"#/$defs/Event"},"title":"Events 30D","type":"array"},"insider_90d":{"additionalProperties":true,"description":"Form 4 insider-trading summary for the last 90 days: `filings` (insider events counted), `buy_usd` and `sell_usd` (open-market purchase and sale value in whole US dollars) and `net_usd` (buy_usd minus sell_usd, negative on net selling).","title":"Insider 90D","type":"object"},"facts":{"additionalProperties":{"items":{"$ref":"#/$defs/FactPoint"},"type":"array"},"description":"XBRL financial series keyed by revenue, net_income, total_assets, cash, operating_cash_flow and shares_outstanding; each is up to the 8 most recent periods ordered oldest to newest. A key is absent when the registrant reports no matching concept, and the map is empty when XBRL company facts are unavailable.","title":"Facts","type":"object"},"sources":{"additionalProperties":{"type":"string"},"description":"Public EDGAR API URLs this snapshot was compiled from, keyed `submissions` and `companyfacts`. Re-fetching them reproduces the underlying facts.","title":"Sources","type":"object"},"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this snapshot was assembled. EDGAR is queried live, so it is the read time rather than a fixed data cut-off.","title":"As Of","type":"string"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the rule set behind the flags and scores in `events_30d`. It changes when the method changes; results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Compiled from public SEC filings; not investment advice.","description":"Fixed notice that this snapshot is compiled from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["cik","name","tickers","sic","sic_description","state_of_incorporation","fiscal_year_end","recent_filings","events_30d","insider_90d","facts","sources","as_of"],"title":"CompanyOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_rules","version":"0.1.0","status":"DRAFT","endpoint":"/v1/regs/rules","method":"GET","price_usd":0.0,"description":"US federal regulatory change tracking from the Federal Register: final rules, proposed rules, notices and presidential documents filtered by term, agency, type, date and significance, each with docket/RIN/CFR identifiers, effective and comment-close dates, and derived deadline flags (significant, comments_close_soon, effective_soon, final_rule_pending_effect) with day counts.","buyer_use_case":"Call this when an agent needs to know what rules are changing in a domain or at an agency — what's newly proposed, what's about to take effect, which comment windows are closing — without polling federalregister.gov and computing deadlines itself.","when_to_use":"You need current federal rulemaking activity for a topic or agency — new proposals, imminent effective dates, closing comment windows — as structured JSON in one call.\n","when_not_to_use":"You need full rule text analysis, public-comment contents (regulations.gov), state-level regulation, or legal advice.\n","avoids":["federalregister.gov API pagination and field selection","deadline math","significance filtering","agency slug lookup"],"input_schema":{"additionalProperties":false,"properties":{"term":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Full-text term, e.g. 'artificial intelligence'.","title":"Term"},"agency":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug, e.g. securities-and-exchange-commission.","title":"Agency"},"types":{"default":"rule,proposed_rule","description":"Comma-separated: rule, proposed_rule, notice, presidential.","title":"Types","type":"string"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date >= (ISO date). Default: last 30 days.","title":"Since"},"until":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date <= (ISO date), e.g. 2026-08-31. Default: no upper bound.","title":"Until"},"significant_only":{"default":false,"description":"Only E.O. 12866 significant documents.","title":"Significant Only","type":"boolean"},"limit":{"default":25,"description":"Maximum documents returned, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"RulesInput","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the whole query before the limit was applied; compare with count to see whether the window was truncated.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document, newest publication date first.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"method_id":{"default":"reg_rules_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RulesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"funding_signals","version":"0.1.0","status":"DRAFT","endpoint":"/v1/funding/signals","method":"GET","price_usd":0.02,"description":"US federal funding momentum for a technology keyword: USAspending contract and grant obligations by fiscal year with 3y growth, top recipients with UEIs, NIH RePORTER project counts by fiscal year with growth and recent project samples, plus derived flags (accelerating_federal_funding, nih_active, partial_current_fy).","buyer_use_case":"Call this when an agent needs the federal money trail behind a technology — is government funding accelerating, who is winning the awards, is NIH active — without integrating USAspending and RePORTER and computing fiscal-year growth itself.","when_to_use":"You need federal funding momentum, recipients, or NIH activity for a technology in one structured call.\n","when_not_to_use":"You need a full census of a technology (keyword-matched only), classified or state spending, or investment advice.\n","avoids":["USAspending API filters and pagination","RePORTER query syntax","fiscal-year growth math","recipient aggregation"],"input_schema":{"additionalProperties":false,"properties":{"term":{"description":"Technology keyword, e.g. 'quantum computing'.","maxLength":200,"minLength":2,"title":"Term","type":"string"},"years":{"default":5,"description":"How many fiscal years back to aggregate.","maximum":8,"minimum":2,"title":"Years","type":"integer"}},"required":["term"],"title":"FundingInput","type":"object"},"output_schema":{"$defs":{"FiscalYearSpend":{"properties":{"fiscal_year":{"description":"US federal fiscal year the amounts below cover. Federal FY N runs October 1 of year N-1 through September 30 of year N.","title":"Fiscal Year","type":"integer"},"total_obligations_usd":{"description":"Amount obligated on federal awards matching the keyword in this fiscal year, in whole US dollars (cents preserved). Obligations, not outlays: money the government committed, not necessarily money paid out.","title":"Total Obligations Usd","type":"number"},"contract_obligations_usd":{"description":"The share of total_obligations_usd obligated on contracts (USAspending award type codes A-D: BPA calls, purchase orders, delivery orders and definitive contracts), in whole US dollars. 0 when no contract matched.","title":"Contract Obligations Usd","type":"number"},"grant_obligations_usd":{"description":"The share of total_obligations_usd obligated on financial assistance (USAspending award type codes 02-05: block grants, formula grants, project grants and cooperative agreements), in whole US dollars. 0 when no grant matched.","title":"Grant Obligations Usd","type":"number"}},"required":["fiscal_year","total_obligations_usd","contract_obligations_usd","grant_obligations_usd"],"title":"FiscalYearSpend","type":"object"},"NihProject":{"properties":{"project_num":{"description":"NIH RePORTER project number, e.g. 5R01CA123456-03 (support year and activity code included), the identifier to look the project up with at reporter.nih.gov.","title":"Project Num","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title of the funded NIH project; null when RePORTER returns no title.","title":"Title"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the grantee organization RePORTER lists for the project; null when RePORTER returns no organization.","title":"Organization"},"award_amount_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Amount NIH awarded this project for its fiscal year, in whole US dollars; null when RePORTER reports no award amount.","title":"Award Amount Usd"},"fiscal_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Federal fiscal year (October 1 to September 30) the award falls in; null when RePORTER reports none.","title":"Fiscal Year"}},"required":["project_num","title","organization","award_amount_usd","fiscal_year"],"title":"NihProject","type":"object"},"Recipient":{"properties":{"name":{"description":"Award recipient name exactly as recorded in USAspending (typically the uppercase legal entity name); use this string when filtering award queries by recipient.","title":"Name","type":"string"},"amount_usd":{"description":"Total obligated to this recipient on keyword-matching federal awards over the trailing window, in whole US dollars. Obligations, not outlays.","title":"Amount Usd","type":"number"},"uei":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SAM.gov Unique Entity Identifier (12-character alphanumeric) for the recipient; null when USAspending does not expose a UEI for this aggregated recipient row.","title":"Uei"}},"required":["name","amount_usd","uei"],"title":"Recipient","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this answer was computed, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ). Upstream data can lag this instant.","title":"As Of","type":"string"},"term":{"description":"The keyword that was searched, echoed back. It is matched against USAspending award text and against NIH RePORTER project titles, terms and abstracts.","title":"Term","type":"string"},"fiscal_years":{"description":"The federal fiscal years covered, ascending; the last entry is the current, still-incomplete fiscal year. Federal FY N runs Oct 1 of N-1 to Sep 30 of N.","items":{"type":"integer"},"title":"Fiscal Years","type":"array"},"usaspending_by_fy":{"description":"One entry per fiscal year in which USAspending reported keyword-matching awards, ascending by fiscal_year. Years with no matching awards are omitted, so this list can be shorter than fiscal_years.","items":{"$ref":"#/$defs/FiscalYearSpend"},"title":"Usaspending By Fy","type":"array"},"usaspending_growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total obligations, last complete FY vs 3 FYs earlier, as a ratio - 1; null if base is 0.","title":"Usaspending Growth 3Y"},"top_recipients":{"description":"Up to 10 organizations receiving the most keyword-matching federal obligations over the three most recent fiscal years including the in-progress one, ordered by amount_usd descending as USAspending ranks them. Empty when nothing matched.","items":{"$ref":"#/$defs/Recipient"},"title":"Top Recipients","type":"array"},"nih_projects_by_fy":{"additionalProperties":{"type":"integer"},"description":"Number of NIH RePORTER projects matching the term, keyed by federal fiscal year as a string (e.g. '2025'), one key per entry in fiscal_years, ascending. Values are project counts, not dollars.","title":"Nih Projects By Fy","type":"object"},"nih_growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"NIH project count, last complete FY vs 3 FYs earlier, as a ratio - 1 (0.5 means 50% more projects); null when the earlier year had no matching projects.","title":"Nih Growth 3Y"},"nih_recent_projects":{"description":"A sample of up to 10 matching NIH projects from the last complete and current fiscal years, in the order RePORTER returns them — not ranked by award amount or date. Illustrative of who is funded, not an exhaustive list.","items":{"$ref":"#/$defs/NihProject"},"title":"Nih Recent Projects","type":"array"},"flags":{"description":"Machine-readable observations about this answer. 'partial_current_fy' is always present (the newest fiscal year is still in progress); 'accelerating_federal_funding' means obligations rose sharply over the 3-year comparison; 'nih_active' means at least one NIH project matched in a covered fiscal year.","items":{"type":"string"},"title":"Flags","type":"array"},"method_id":{"default":"funding_signals_rules_v1","description":"Identifier of the deterministic method version that produced this answer. Results carrying the same method_id are comparable over time; a method change gets a new id.","title":"Method Id","type":"string"},"disclaimer":{"default":"Keyword-matched US federal spending (USAspending) and NIH grants (RePORTER), both public domain; an activity signal, not a census of the technology and not investment advice.","description":"Fixed usage and limitation notice for this answer: the sources used, their public domain status, and what the numbers may not be relied on for.","title":"Disclaimer","type":"string"}},"required":["as_of","term","fiscal_years","usaspending_by_fy","usaspending_growth_3y","top_recipients","nih_projects_by_fy","nih_growth_3y","nih_recent_projects","flags"],"title":"FundingOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"technology_momentum","version":"0.1.1","status":"DRAFT","endpoint":"/v1/technology/momentum","method":"GET","price_usd":0.05,"description":"Scores whether a scientific or technical field is accelerating, growing, stable, or declining using longitudinal OpenAlex publication counts, highly-cited-work counts, institutional participation, and researcher activity over the last ten years, plus a bounded LLM judgment over that evidence.","buyer_use_case":"Call this when deciding whether a technology or research field is accelerating and you would otherwise need to search, page through, and aggregate thousands of publication and citation records yourself. Returns a momentum score, an acceleration score, growth ratios, leading institutions and researchers, and influential recent works, with a grounded confidence estimate.","when_to_use":"You need a quantified, source-cited answer to \"is this research or technology field accelerating, growing, stable, or declining?\" for one named topic, with growth ratios, leaders, and recent influential works, in one call.\n","when_not_to_use":"You need one paper's prospects, a literature review, raw bibliographic records, or a topic OpenAlex does not model (brand names, very new jargon) — the response will report a weak match.\n","avoids":["dozens of paginated scholarly API searches","aggregating thousands of works by year, institution, and author","age-normalized citation momentum computation","a long-context model call to interpret the aggregates","retries and rate-limit handling against upstream sources"],"input_schema":{"additionalProperties":false,"properties":{"topic":{"description":"Technology or research topic, free text.","maxLength":200,"minLength":2,"title":"Topic","type":"string"}},"required":["topic"],"title":"Input","type":"object"},"output_schema":{"$defs":{"GrowthSeries":{"description":"Growth ratios over trailing windows; serialised with the keys 1y, 3y and 5y.","properties":{"1y":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Change from the most recent single year against the year before it, as a ratio minus 1: 0.25 means 25% more, -0.1 means 10% fewer. Null when the earlier year held no works.","title":"1Y"},"3y":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Change from the three most recent years against the three years before them, as a ratio minus 1 (0.25 = 25% more). Null when the earlier window held no works.","title":"3Y"},"5y":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Change from the five most recent years against the five years before them, as a ratio minus 1 (0.25 = 25% more). Null when the earlier window held no works.","title":"5Y"}},"title":"GrowthSeries","type":"object"},"NamedEntity":{"properties":{"id":{"description":"OpenAlex short entity id: an institution id such as I27837315 in leading_institutions, an author id such as A5023888391 in leading_researchers.","title":"Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the institution or researcher; null when OpenAlex publishes no display name for the entity.","title":"Name"},"recent_works":{"description":"Count of matching works from the last three calendar years (the partial current year included) attributed to this entity.","title":"Recent Works","type":"integer"}},"required":["id","name","recent_works"],"title":"NamedEntity","type":"object"},"Provenance":{"properties":{"source":{"description":"Display name of the dataset the evidence was drawn from, e.g. 'OpenAlex'.","title":"Source","type":"string"},"rights":{"description":"Rights class of that source data under which this answer may be used, e.g. 'CC0'.","title":"Rights","type":"string"},"data_as_of":{"description":"Version stamp of the source snapshot behind this result, 'api:YYYY-MM-DD' where the date is the UTC day the records were retrieved.","title":"Data As Of","type":"string"},"model_family":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Family of the language model that made the judgment, as 'provider/family'; the exact model version and its configuration are not disclosed. Null when no model call was recorded.","title":"Model Family"}},"required":["source","rights","data_as_of"],"title":"Provenance","type":"object"},"QueryMatch":{"properties":{"mode":{"description":"phrase = exact phrase in title/abstract; terms = any-term fallback (broader).","enum":["phrase","terms"],"title":"Mode","type":"string"},"total_works_10y":{"description":"Number of works matching the query across the ten-year analysis window (the partial current year included), after the restriction to focus_topic_ids.","title":"Total Works 10Y","type":"integer"},"focus_topic_ids":{"description":"OpenAlex primary-topic ids, e.g. T10036, that the works set was restricted to, ordered by matching works descending; works outside these topics were dropped.","items":{"type":"string"},"title":"Focus Topic Ids","type":"array"}},"required":["mode","total_works_10y"],"title":"QueryMatch","type":"object"},"WorkRef":{"properties":{"id":{"description":"OpenAlex work id, short form, e.g. W2741809807.","title":"Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title of the work; null when OpenAlex holds no title for the record.","title":"Title"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Four-digit publication year recorded by OpenAlex; null when the record has no publication year.","title":"Year"},"cited_by":{"description":"Total citations OpenAlex records for this work as of data_as_of, counted over the work's whole life rather than the analysis window.","title":"Cited By","type":"integer"}},"required":["id","title","year","cited_by"],"title":"WorkRef","type":"object"}},"properties":{"result_id":{"description":"Identifier of this computed result, 'r_' followed by 20 hex characters; pass it to /v1/provenance/{result_id} for the full public provenance record.","title":"Result Id","type":"string"},"topic":{"description":"The topic query exactly as submitted, before normalisation; the works set was matched against this text.","title":"Topic","type":"string"},"query_match":{"$ref":"#/$defs/QueryMatch","description":"How the topic text was turned into a works set, and how large that set is."},"matched_topics":{"description":"Up to five OpenAlex primary topics the matching works fall into, ordered by works descending; each element has id (e.g. T10036), name, works (count in the window) and share (that count as a fraction of all matched works, 0-1).","items":{"additionalProperties":true,"type":"object"},"title":"Matched Topics","type":"array"},"momentum_score":{"description":"Overall trajectory of research activity on this topic, 0-1: higher means faster growing and broadening activity, lower means flat or shrinking. An estimate over the evidence below, not a measured growth rate.","title":"Momentum Score","type":"number"},"acceleration_score":{"description":"Whether the growth rate itself is changing, 0-1: about 0.5 means a roughly constant growth rate, above means growth is speeding up, below means it is slowing.","title":"Acceleration Score","type":"number"},"trend_label":{"description":"Categorical read of the trajectory, exactly one of: 'accelerating' (growing and speeding up), 'growing', 'stable', 'declining', or 'nascent' (a small body of work overall, whatever its growth).","enum":["accelerating","growing","stable","declining","nascent"],"title":"Trend Label","type":"string"},"confidence":{"description":"How well this result is supported, 0-1 with higher meaning better supported; a grounded estimate combining evidence quantity, consistency, coverage, and model self-assessment. Not a probability that the trend continues.","title":"Confidence","type":"number"},"research_growth":{"$ref":"#/$defs/GrowthSeries","description":"Growth in the count of matching publications over 1, 3 and 5-year trailing windows ending at the last complete calendar year; the partial current year is excluded."},"citation_growth":{"$ref":"#/$defs/GrowthSeries","description":"Growth in works ranking in the top decile of citations for their publication year (age-normalized); lagged to citation_growth_as_of_year."},"citation_growth_as_of_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Four-digit last calendar year included in citation_growth. Citation counts keep accruing, so later years are deliberately excluded rather than missing; null when the series could not be computed.","title":"Citation Growth As Of Year"},"institution_growth":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Growth in the number of institutions with >=3 matching works, last 3y vs prior 3y; null when unmeasurable.","title":"Institution Growth"},"leading_institutions":{"description":"Up to ten institutions with the most matching works in the last three calendar years, ordered by that count descending.","items":{"$ref":"#/$defs/NamedEntity"},"title":"Leading Institutions","type":"array"},"leading_researchers":{"description":"Up to ten authors with the most matching works in the last three calendar years, ordered by that count descending.","items":{"$ref":"#/$defs/NamedEntity"},"title":"Leading Researchers","type":"array"},"important_recent_works":{"description":"Up to ten matching works published in the last three calendar years, ordered by total citation count descending — the most-cited recent work first.","items":{"$ref":"#/$defs/WorkRef"},"title":"Important Recent Works","type":"array"},"rationale":{"description":"Two to four sentences explaining the scores, citing the specific counts and growth figures reported in this response.","title":"Rationale","type":"string"},"key_drivers":{"description":"Up to five short phrases naming what appears to be driving the trend. Unordered; an empty list means none were identified.","items":{"type":"string"},"title":"Key Drivers","type":"array"},"risks":{"description":"Up to five short phrases naming reasons the trend could reverse or be overstated, including data caveats. Unordered; an empty list means none were identified.","items":{"type":"string"},"title":"Risks","type":"array"},"warnings":{"description":"Machine-generated caveats about this particular result, such as sparse evidence, a broadened any-term match, or a label that conflicts with measured growth. Empty when no caveat applies; read it before relying on the scores.","items":{"type":"string"},"title":"Warnings","type":"array"},"evidence_count":{"description":"Number of distinct OpenAlex work records carried in the evidence packet behind this result. Aggregate counts such as total_works_10y summarise many more works than this.","title":"Evidence Count","type":"integer"},"data_as_of":{"description":"Version stamp of the source snapshot this result was computed from, 'api:YYYY-MM-DD' where the date is the UTC day the OpenAlex records were retrieved.","title":"Data As Of","type":"string"},"methodology_version":{"description":"Semantic version of the computation method behind this result; a change here means the scores were produced by a revised method and are not directly comparable.","title":"Methodology Version","type":"string"},"schema_version":{"description":"Version of this response schema; it changes when fields are removed or their meaning changes.","title":"Schema Version","type":"string"},"computed_at":{"description":"ISO-8601 UTC timestamp with milliseconds, e.g. 2026-09-03T12:00:00.000Z, of when this result was computed — the original computation, not this request.","title":"Computed At","type":"string"},"cache_hit":{"default":false,"description":"True when this response was served from a stored earlier computation rather than computed for this request; computed_at and data_as_of then describe that earlier run.","title":"Cache Hit","type":"boolean"},"provenance":{"anyOf":[{"$ref":"#/$defs/Provenance"},{"type":"null"}],"default":null,"description":"Public provenance for this answer: the source dataset, its rights class, the source snapshot date and the model family. Null when no provenance record was attached."},"disclaimer":{"default":"Model-derived analytical estimate over OpenAlex (CC0) evidence; not ground truth.","description":"Fixed notice that this result is a model-derived estimate over open scholarly metadata, not an authoritative or measured fact.","title":"Disclaimer","type":"string"}},"required":["result_id","topic","query_match","matched_topics","momentum_score","acceleration_score","trend_label","confidence","research_growth","citation_growth","citation_growth_as_of_year","institution_growth","leading_institutions","leading_researchers","important_recent_works","rationale","key_drivers","risks","warnings","evidence_count","data_as_of","methodology_version","schema_version","computed_at"],"title":"Output","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"technology_emerging","version":"0.1.0","status":"DRAFT","endpoint":"/v1/technology/emerging","method":"GET","price_usd":0.05,"description":"Ranked list of the fastest-accelerating research topics across the entire OpenAlex topic universe (~4,500 topics), recomputed weekly with a purely statistical momentum method: z-scored 3-year publication growth, 3-year acceleration, and lagged top-decile citation growth. Filter by field, minimum size, or emerging-only.","buyer_use_case":"Call this when you need to know what is accelerating right now without knowing what to search for — technology scouting, trend detection, portfolio ideation — instead of scanning thousands of topics yourself.","when_to_use":"You need a ranked, evidence-backed list of accelerating fields (optionally within one discipline) to seed scouting, diligence, or content, and would otherwise scan topic by topic.\n","when_not_to_use":"You already know the topic and want a judgment with leaders and works — use technology_momentum; or you want one topic's numbers — use technology_lookup.\n","avoids":["thousands of per-topic queries","universe-wide normalization","weekly recomputation"],"input_schema":{"additionalProperties":false,"properties":{"limit":{"default":25,"description":"Number of ranked topics to return.","maximum":100,"minimum":1,"title":"Limit","type":"integer"},"field":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Restrict to an OpenAlex field name, e.g. 'Engineering', 'Medicine'.","title":"Field"},"min_works":{"default":50,"description":"Minimum works in the last complete year (filters noise).","minimum":1,"title":"Min Works","type":"integer"},"emerging_only":{"default":false,"description":"Only topics flagged emerging (high momentum, below-median size).","title":"Emerging Only","type":"boolean"}},"title":"EmergingInput","type":"object"},"output_schema":{"$defs":{"TopicScore":{"properties":{"topic_id":{"description":"OpenAlex topic identifier: the letter T followed by digits, e.g. T10299. Stable across scans, so it is the key to use when tracking one topic over time.","title":"Topic Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex display name of the topic, e.g. 'Photonic and Optical Devices'. Null when the topic appeared in the counts but carried no metadata in this scan.","title":"Name"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex field the topic sits in, e.g. 'Engineering', 'Medicine'. Null when OpenAlex does not classify the topic into a field.","title":"Field"},"subfield":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex subfield the topic sits in, one level below field, e.g. 'Electrical and Electronic Engineering'. Null when OpenAlex does not classify it.","title":"Subfield"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Position of this topic in the scan's momentum ranking, 1 = highest momentum, out of universe_size topics. Null for topics excluded from ranking (too little recent output, or a broad catch-all topic name).","title":"Rank"},"momentum_stat":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Relative momentum of this topic against every other topic in the same scan, in standard-deviation-like units centred on the universe median: 0 is typical, above 0 is growing faster than the universe, below 0 slower; roughly -6 to +6 in practice. Comparable only within one scan_id and method_id. Null when the topic is unranked.","title":"Momentum Stat"},"growth_1y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change in works published in last_full_year versus the year before, as a fraction: 0.25 means +25%, -0.1 means -10%. Null when the earlier year had no works.","title":"Growth 1Y"},"growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change between the 3 years ending in last_full_year and the 3 years before them, as a fraction of the earlier window's total (0.25 = +25%). Null when the earlier 3-year window had no works.","title":"Growth 3Y"},"growth_5y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change between the 5 years ending in last_full_year and the 5 years before them, as a fraction of the earlier window's total (0.25 = +25%). Null when the earlier 5-year window had no works, which is common for topics near the start of the scan window.","title":"Growth 5Y"},"acceleration_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"growth_3y minus the equivalent 3-year growth one window earlier, in the same fractional units. Positive means the topic's growth is speeding up, negative that it is slowing even if still growing. Null when either window's growth is null.","title":"Acceleration 3Y"},"decile_growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Same 3-year growth measure applied to highly cited output only (works in the top citation decile for their publication year), and ending one year earlier than the other windows because citations need time to accrue. Null when the earlier window had no such works.","title":"Decile Growth 3Y"},"works_last_full_year":{"description":"Count of OpenAlex works whose primary topic is this topic and that were published in last_full_year. The topic's current absolute size.","title":"Works Last Full Year","type":"integer"},"works_10y":{"description":"Total works with this primary topic across the scan's whole year range (the last ten complete years plus the partial current year). Used as the topic's overall size.","title":"Works 10Y","type":"integer"},"is_emerging":{"description":"True when the topic is both near the top of this scan's momentum ranking and small by works_10y relative to the ranked universe, i.e. fast-growing while still small. False for large fast movers and for unranked topics.","title":"Is Emerging","type":"boolean"}},"required":["topic_id","name","field","subfield","rank","momentum_stat","growth_1y","growth_3y","growth_5y","acceleration_3y","decile_growth_3y","works_last_full_year","works_10y","is_emerging"],"title":"TopicScore","type":"object"}},"properties":{"scan_id":{"description":"Identifier of the universe scan that produced every number in this response. It changes when a newer scan completes; quote it when comparing two responses.","title":"Scan Id","type":"string"},"computed_at":{"description":"ISO-8601 UTC timestamp of when this scan's statistics were computed from the collected counts. Identical for every topic in the scan.","title":"Computed At","type":"string"},"data_as_of":{"description":"Provenance of the underlying OpenAlex counts, e.g. 'api:2026-08-24' meaning they were read from the OpenAlex API on that date.","title":"Data As Of","type":"string"},"last_full_year":{"description":"Most recent complete calendar year covered by the scan. Every growth window ends here; the current, partial year is never the end of a growth window.","title":"Last Full Year","type":"integer"},"universe_size":{"description":"Number of topics in this scan, i.e. the comparison set that rank and momentum_stat are measured against (including topics that were not eligible for ranking).","title":"Universe Size","type":"integer"},"method_id":{"default":"technology_momentum_stat_v1","description":"Identifier and version of the scoring method. Scores are comparable only across responses carrying the same method_id; a method change gets a new id.","title":"Method Id","type":"string"},"topics":{"description":"One entry per OpenAlex topic that passed the request filters, ordered by momentum rank ascending (highest momentum first), truncated to the requested limit.","items":{"$ref":"#/$defs/TopicScore"},"title":"Topics","type":"array"},"disclaimer":{"default":"Statistical ranking over OpenAlex (CC0) publication counts; an estimate, not ground truth.","description":"Fixed notice on how to read this product: it is a statistical estimate over publication counts, not a curated or verified list. Same text on every response.","title":"Disclaimer","type":"string"}},"required":["scan_id","computed_at","data_as_of","last_full_year","universe_size","topics"],"title":"EmergingOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"technology_lookup","version":"0.1.0","status":"DRAFT","endpoint":"/v1/technology/lookup","method":"GET","price_usd":0.0,"description":"Statistical momentum for one OpenAlex topic (by id or name) from the weekly universe scan: rank among ~4,500 topics, momentum z-score, 1y/3y/5y publication growth, acceleration, lagged top-decile citation growth, and the per-year series. No LLM; instant; one cent.","buyer_use_case":"Call this for a cheap, deterministic momentum check on a known field before spending on a full judgment (technology_momentum) — or in bulk to screen a list of topics.","when_to_use":"You have a topic and want its numbers now, or you are screening many topics.\n","when_not_to_use":"You need leaders, influential works and a reasoned judgment — use technology_momentum.\n","avoids":["per-year aggregation","universe normalization","rate-limit handling"],"input_schema":{"additionalProperties":false,"properties":{"topic":{"description":"OpenAlex topic id (e.g. T10299) or a topic name in free text (e.g. photonic computing), case-insensitive; names are resolved fuzzily and the response says which topic was matched.","maxLength":200,"minLength":2,"title":"Topic","type":"string"}},"required":["topic"],"title":"LookupInput","type":"object"},"output_schema":{"$defs":{"LookupMatch":{"description":"How the requested name was resolved to an OpenAlex topic. Agents copy human phrases\n(\"photonic computing\"); OpenAlex topic names are formal (\"Photonic and Optical Devices\"),\nso a fuzzy match with the alternatives is more useful than a 422.","properties":{"mode":{"description":"How the request was matched, one of: 'id' (an OpenAlex topic id was supplied), 'exact' (full topic-name match), 'substring', 'tokens' (every query word appears in the name) or 'fuzzy' (best word-overlap match). Anything past 'exact' means the caller should check `matched` before trusting the numbers.","title":"Mode","type":"string"},"requested":{"description":"The caller's topic string, whitespace-trimmed, echoed back for comparison.","title":"Requested","type":"string"},"matched":{"description":"OpenAlex display name of the topic actually returned. Equal to `requested` only when mode is 'exact'; otherwise it is the resolver's best candidate.","title":"Matched","type":"string"},"alternatives":{"description":"Other plausible topic names, best first","items":{"type":"string"},"title":"Alternatives","type":"array"}},"required":["mode","requested","matched"],"title":"LookupMatch","type":"object"},"TopicScore":{"properties":{"topic_id":{"description":"OpenAlex topic identifier: the letter T followed by digits, e.g. T10299. Stable across scans, so it is the key to use when tracking one topic over time.","title":"Topic Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex display name of the topic, e.g. 'Photonic and Optical Devices'. Null when the topic appeared in the counts but carried no metadata in this scan.","title":"Name"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex field the topic sits in, e.g. 'Engineering', 'Medicine'. Null when OpenAlex does not classify the topic into a field.","title":"Field"},"subfield":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex subfield the topic sits in, one level below field, e.g. 'Electrical and Electronic Engineering'. Null when OpenAlex does not classify it.","title":"Subfield"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Position of this topic in the scan's momentum ranking, 1 = highest momentum, out of universe_size topics. Null for topics excluded from ranking (too little recent output, or a broad catch-all topic name).","title":"Rank"},"momentum_stat":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Relative momentum of this topic against every other topic in the same scan, in standard-deviation-like units centred on the universe median: 0 is typical, above 0 is growing faster than the universe, below 0 slower; roughly -6 to +6 in practice. Comparable only within one scan_id and method_id. Null when the topic is unranked.","title":"Momentum Stat"},"growth_1y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change in works published in last_full_year versus the year before, as a fraction: 0.25 means +25%, -0.1 means -10%. Null when the earlier year had no works.","title":"Growth 1Y"},"growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change between the 3 years ending in last_full_year and the 3 years before them, as a fraction of the earlier window's total (0.25 = +25%). Null when the earlier 3-year window had no works.","title":"Growth 3Y"},"growth_5y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change between the 5 years ending in last_full_year and the 5 years before them, as a fraction of the earlier window's total (0.25 = +25%). Null when the earlier 5-year window had no works, which is common for topics near the start of the scan window.","title":"Growth 5Y"},"acceleration_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"growth_3y minus the equivalent 3-year growth one window earlier, in the same fractional units. Positive means the topic's growth is speeding up, negative that it is slowing even if still growing. Null when either window's growth is null.","title":"Acceleration 3Y"},"decile_growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Same 3-year growth measure applied to highly cited output only (works in the top citation decile for their publication year), and ending one year earlier than the other windows because citations need time to accrue. Null when the earlier window had no such works.","title":"Decile Growth 3Y"},"works_last_full_year":{"description":"Count of OpenAlex works whose primary topic is this topic and that were published in last_full_year. The topic's current absolute size.","title":"Works Last Full Year","type":"integer"},"works_10y":{"description":"Total works with this primary topic across the scan's whole year range (the last ten complete years plus the partial current year). Used as the topic's overall size.","title":"Works 10Y","type":"integer"},"is_emerging":{"description":"True when the topic is both near the top of this scan's momentum ranking and small by works_10y relative to the ranked universe, i.e. fast-growing while still small. False for large fast movers and for unranked topics.","title":"Is Emerging","type":"boolean"}},"required":["topic_id","name","field","subfield","rank","momentum_stat","growth_1y","growth_3y","growth_5y","acceleration_3y","decile_growth_3y","works_last_full_year","works_10y","is_emerging"],"title":"TopicScore","type":"object"}},"properties":{"scan_id":{"description":"Identifier of the universe scan this topic's numbers come from. It changes when a newer scan completes; quote it when comparing two responses.","title":"Scan Id","type":"string"},"computed_at":{"description":"ISO-8601 UTC timestamp of when this scan's statistics were computed from the collected counts. Identical for every topic in the scan.","title":"Computed At","type":"string"},"data_as_of":{"description":"Provenance of the underlying OpenAlex counts, e.g. 'api:2026-08-24' meaning they were read from the OpenAlex API on that date.","title":"Data As Of","type":"string"},"last_full_year":{"description":"Most recent complete calendar year covered by the scan. Every growth window ends here; the current, partial year is never the end of a growth window.","title":"Last Full Year","type":"integer"},"universe_size":{"description":"Number of topics in this scan, i.e. the comparison set this topic's rank and momentum_stat are measured against.","title":"Universe Size","type":"integer"},"method_id":{"default":"technology_momentum_stat_v1","description":"Identifier and version of the scoring method. Scores are comparable only across responses carrying the same method_id; a method change gets a new id.","title":"Method Id","type":"string"},"query_match":{"anyOf":[{"$ref":"#/$defs/LookupMatch"},{"type":"null"}],"default":null,"description":"How the requested string was resolved to the topic returned; read it before trusting a name-based lookup. Absent when no resolution record was kept."},"topic":{"$ref":"#/$defs/TopicScore","description":"Momentum scorecard for the single matched topic in the latest scan."},"works_by_year":{"additionalProperties":{"type":"integer"},"description":"Works published per year with this topic as primary topic, keyed by 4-digit year string and covering the scan's whole range (last ten complete years plus the current, still incomplete year — expect its count to look low).","title":"Works By Year","type":"object"},"top_decile_by_year":{"additionalProperties":{"type":"integer"},"description":"Same years and keys as works_by_year, but counting only that year's works in the top citation decile for their publication year. Recent years understate this because citations are still accruing.","title":"Top Decile By Year","type":"object"},"disclaimer":{"default":"Statistical momentum over OpenAlex (CC0) publication counts; an estimate, not ground truth.","description":"Fixed notice on how to read this product: a statistical estimate over publication counts, not a curated or verified assessment. Same text on every response.","title":"Disclaimer","type":"string"}},"required":["scan_id","computed_at","data_as_of","last_full_year","universe_size","topic","works_by_year","top_decile_by_year"],"title":"LookupOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"entity_resolve","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/entity/resolve","method":"GET","price_usd":0.0,"description":"One name in, the identifiers several domains key on out — SEC Central Index Key, Legal Entity Identifier, ticker, NAICS, official website — plus labels, aliases, industry, country and headquarters, and ready-to-call next_endpoints into our endpoints where an identifier maps, each with the price of that call. When a CIK is present the crosswalk into SEC data becomes a key join instead of a name match. Free.","buyer_use_case":"An agent holding only a company or organization name needs the keys that unlock other datasets, without inventing a mapping or matching on names.","when_to_use":"You have a name and need identifiers that work in other systems.","when_not_to_use":"SEC-only resolution (/v1/sec/resolve is authoritative for CIK) or federal award recipients (/v1/funding/recipients).\n","avoids":["hand-built identifier mappings","name-matching false positives","SPARQL"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Name of any entity to resolve: company, person, place, product or organisation (e.g. Lockheed Martin). Matched against English Wikidata labels and aliases; a name that matches nothing is an error.","maxLength":100,"minLength":2,"title":"Q","type":"string"},"candidates":{"default":5,"description":"How many Wikidata search hits to request; the best hit is resolved in full and the rest are returned as other_candidates. Default 5.","maximum":10,"minimum":1,"title":"Candidates","type":"integer"}},"required":["q"],"title":"EntityResolveIn","type":"object"},"output_schema":{"$defs":{"EntityMatch":{"properties":{"qid":{"description":"Wikidata item identifier for this alternative match, the letter Q followed by digits (e.g. Q95). Send it to Wikidata directly, or resolve a better name here.","title":"Qid","type":"string"},"label":{"description":"English Wikidata label for this alternative match; empty when it has none.","title":"Label","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One-line English description Wikidata carries for this item, e.g. 'American aerospace company'. The quickest way to tell rival matches apart. Null when Wikidata records none.","title":"Description"}},"required":["qid","label","description"],"title":"EntityMatch","type":"object"},"ExternalId":{"properties":{"key":{"description":"Machine key naming which identifier this is. One of: 'sec_cik', 'ticker', 'lei', 'website', 'naics'.","title":"Key","type":"string"},"label":{"description":"Human-readable name of the identifier type, e.g. 'SEC Central Index Key' or 'Legal Entity Identifier'.","title":"Label","type":"string"},"value":{"description":"The identifier itself, in that type's own format: SEC CIK digits, an exchange ticker, a 20-character LEI, an https URL for website, or a NAICS code. Reported as claimed on Wikidata and not independently verified.","title":"Value","type":"string"},"our_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative AnswerPool path, already filled in with value, that serves this identifier. Null for identifier types AnswerPool has no endpoint for (LEI, website).","title":"Our Endpoint"}},"required":["key","label","value","our_endpoint"],"title":"ExternalId","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, Z suffix) at which this response was assembled; upstream Wikidata statements may have been read shortly before.","title":"As Of","type":"string"},"query":{"description":"The name string you sent, echoed back unchanged.","title":"Query","type":"string"},"qid":{"description":"Wikidata item identifier of the single best match for your query, the letter Q followed by digits (e.g. Q95). Everything else here describes this item.","title":"Qid","type":"string"},"label":{"description":"English Wikidata label of the resolved item, i.e. its canonical name, which may differ from the name you sent.","title":"Label","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One-line English description of the resolved item. Check it before trusting the resolution: it is the cheapest confirmation you got the entity you meant. Null when Wikidata records none.","title":"Description"},"aliases":{"description":"Other English names Wikidata records for this item - trading names, former names, abbreviations. At most 10, in Wikidata's own order; empty when none.","items":{"type":"string"},"title":"Aliases","type":"array"},"instance_of":{"description":"English labels for what kind of thing this entity is (Wikidata P31), e.g. 'public company'. At most 3, in statement order; a value with no English label appears as its raw Q-id. Empty when the item makes no such claim.","items":{"type":"string"},"title":"Instance Of","type":"array"},"industry":{"description":"English labels of the industries claimed for this entity (Wikidata P452). At most 3, in statement order; a value with no English label appears as its raw Q-id. Empty when the item makes no such claim.","items":{"type":"string"},"title":"Industry","type":"array"},"country":{"description":"English labels of the countries this entity is associated with (Wikidata P17). At most 3, in statement order; a value with no English label appears as its raw Q-id. Empty when the item makes no such claim.","items":{"type":"string"},"title":"Country","type":"array"},"headquarters":{"description":"English labels of the places this entity is headquartered in (Wikidata P159), usually cities. At most 3, in statement order; a value with no English label appears as its raw Q-id. Empty when the item makes no such claim.","items":{"type":"string"},"title":"Headquarters","type":"array"},"external_ids":{"description":"One entry per cross-domain identifier claimed for the resolved entity, at most one per type, listed in a fixed order: SEC CIK, ticker, LEI, website, NAICS. Types the item claims nothing for are simply absent, so this list may be empty.","items":{"$ref":"#/$defs/ExternalId"},"title":"External Ids","type":"array"},"next_endpoints":{"description":"Ready-to-call follow-ups built from the identifiers above, one per identifier that maps into an AnswerPool endpoint, each with what that call costs. Empty when nothing resolved to an identifier we serve.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"other_candidates":{"description":"The remaining name matches after the one that was resolved, next-best first in Wikidata's search order. A non-empty list means the name was ambiguous; compare descriptions before relying on qid. Empty when nothing else matched.","items":{"$ref":"#/$defs/EntityMatch"},"title":"Other Candidates","type":"array"},"note":{"default":"One lookup, the identifiers several domains key on. When an SEC CIK is present, the crosswalk into our SEC endpoints is a key join rather than a name match.","description":"What this resolution is for and why a returned SEC CIK beats name matching.","title":"Note","type":"string"},"source":{"default":"Wikidata (CC0)","description":"Names the upstream dataset every value here derives from, and its licence.","title":"Source","type":"string"},"disclaimer":{"default":"Wikidata is community-edited and unverified: identifiers here are claims, not authority. Where AnswerPool holds the authoritative source (SEC CIK via EDGAR), the linked endpoint is the one to trust. No Wikipedia article text is used or served.","description":"How far these values can be trusted: community-edited claims, which side is authoritative, and what is deliberately never served.","title":"Disclaimer","type":"string"}},"required":["as_of","query","qid","label","description","aliases","instance_of","industry","country","headquarters","external_ids","other_candidates"],"title":"EntityResolveOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"fda_drug_events","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/fda/drug-events","method":"GET","price_usd":0.0,"description":"The reactions most often mentioned in adverse-event reports naming a drug, and the serious/non-serious split. These are counts of VOLUNTARY, unverified reports — not incidence rates and not causal findings, and a widely prescribed drug accumulates more reports simply by being widely prescribed. The response says so. Free.","buyer_use_case":"An agent doing pharmacovigilance signal generation wants the reported reaction profile with the interpretation limits stated, not a number that invites a wrong conclusion.","when_to_use":"You want the reported reaction profile for a drug, understanding it is not a rate.","when_not_to_use":"Anything requiring incidence, causality or comparison between drugs without exposure data — this data cannot support those.\n","avoids":["FAERS query construction","MedDRA term aggregation"],"input_schema":{"additionalProperties":false,"properties":{"drug":{"description":"Medicinal product name as reported to FAERS, generic or brand, case-insensitive (e.g. atorvastatin or Lipitor). A name with no adverse-event reports is an error.","maxLength":80,"minLength":2,"title":"Drug","type":"string"},"top":{"default":15,"description":"How many reaction terms to return, ordered by report count descending; the seriousness split is unaffected. Default 15.","maximum":50,"minimum":1,"title":"Top","type":"integer"}},"required":["drug"],"title":"DrugEventsIn","type":"object"},"output_schema":{"$defs":{"TermCount":{"properties":{"term":{"description":"The grouped value being counted; its meaning depends on the list it appears in — a recall class, firm name, state code, recall status, reaction term or seriousness label.","title":"Term","type":"string"},"count":{"description":"How many records FDA counted for this term within the query's filters — recall events, or adverse-event reports, never units sold or people exposed.","title":"Count","type":"integer"}},"required":["term","count"],"title":"TermCount","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp when this response was computed, ISO-8601 with milliseconds and a Z suffix, e.g. 2026-09-03T17:00:00.000Z.","title":"As Of","type":"string"},"drug":{"description":"The medicinal product name searched, echoing the request exactly; reports were matched on the product name as reported to FDA, not on an ingredient code.","title":"Drug","type":"string"},"reports_matched":{"description":"Adverse-event report counts summed across every reaction term FDA returned for this drug. A report listing several reactions is counted under each, so this exceeds the number of distinct reports and is not an incidence rate.","title":"Reports Matched","type":"integer"},"top_reactions":{"description":"One element per reported reaction (MedDRA preferred terms, usually uppercase), ordered by report count descending and capped at the requested top.","items":{"$ref":"#/$defs/TermCount"},"title":"Top Reactions","type":"array"},"by_seriousness":{"description":"Report counts split by whether the reporter flagged the case serious: term is 'serious' or 'non-serious', ordered by count descending. Empty when FDA returned no seriousness breakdown for this drug.","items":{"$ref":"#/$defs/TermCount"},"title":"By Seriousness","type":"array"},"interpretation":{"default":"These are counts of REPORTS mentioning the drug, not rates and not causal findings. Compare drugs only if you also account for how differently they are prescribed — otherwise the more common drug always looks worse.","description":"Fixed reading guidance: report counts are not rates or causal findings, and cross-drug comparison needs prescribing volume to mean anything.","title":"Interpretation","type":"string"},"source":{"default":"openFDA (US Food and Drug Administration), CC0","description":"Attribution for the underlying data: openFDA, published by FDA under CC0.","title":"Source","type":"string"},"disclaimer":{"default":"Adverse-event reports are VOLUNTARY, unverified, and subject to heavy reporting bias. A count of reports is NOT an incidence rate and does NOT establish that a product caused an outcome; a widely prescribed drug will accumulate more reports simply by being widely prescribed. Use for signal generation only. openFDA's own terms apply: do not rely on this to make decisions regarding medical care, and assume all results are unvalidated. Groupings and shares are computed by AnswerPool. Device nomenclature (GMDN) fields are excluded for licensing reasons.","description":"The adverse-event caveat: reports are voluntary, unverified and reporting-biased, a count is not an incidence rate and does not establish causation, so use this for signal generation only.","title":"Disclaimer","type":"string"}},"required":["as_of","drug","reports_matched","top_reactions","by_seriousness"],"title":"DrugEventsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"fda_recall_trends","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/fda/recall-trends","method":"GET","price_usd":0.0,"description":"The shape of recall activity over a window: counts by hazard classification with the Class I share computed, the firms recalling most, the states involved and the status mix. FDA does the grouping server-side, so this is an aggregate rather than thousands of records. Free.","buyer_use_case":"An agent assessing safety pressure in a category wants the distribution and the serious-recall share, not a record dump to tally.","when_to_use":"You want the distribution of recall activity across a category or window.","when_not_to_use":"Individual recall records — /v1/fda/recalls.","avoids":["paging thousands of enforcement records","hand-grouping by class or firm"],"input_schema":{"additionalProperties":false,"properties":{"category":{"default":"drug","description":"Which openFDA enforcement dataset to aggregate: drug, device or food. Default drug.","pattern":"^(drug|device|food)$","title":"Category","type":"string"},"days":{"default":365,"description":"Length in days of the report_date window the counts cover, counted back from today. Default 365.","maximum":3650,"minimum":30,"title":"Days","type":"integer"},"top":{"default":10,"description":"How many terms to keep in each ranked list (classification, firm, state, status), ordered by count descending. Default 10.","maximum":25,"minimum":1,"title":"Top","type":"integer"}},"title":"RecallTrendsIn","type":"object"},"output_schema":{"$defs":{"TermCount":{"properties":{"term":{"description":"The grouped value being counted; its meaning depends on the list it appears in — a recall class, firm name, state code, recall status, reaction term or seriousness label.","title":"Term","type":"string"},"count":{"description":"How many records FDA counted for this term within the query's filters — recall events, or adverse-event reports, never units sold or people exposed.","title":"Count","type":"integer"}},"required":["term","count"],"title":"TermCount","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp when this response was computed, ISO-8601 with milliseconds and a Z suffix, e.g. 2026-09-03T17:00:00.000Z.","title":"As Of","type":"string"},"category":{"description":"The openFDA enforcement dataset aggregated, echoing the request: drug, device or food.","title":"Category","type":"string"},"window_days":{"description":"Length in days of the report_date window the counts cover, counted back from the current UTC date; echoes the request.","title":"Window Days","type":"integer"},"total_in_window":{"description":"Recall events in the window, summed across the classification counts in by_classification. It is the denominator behind class_i_share_pct.","title":"Total In Window","type":"integer"},"by_classification":{"description":"One element per FDA hazard class present in the window — term is 'Class I', 'Class II' or 'Class III' — ordered by count descending.","items":{"$ref":"#/$defs/TermCount"},"title":"By Classification","type":"array"},"class_i_share_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Class I recalls as a percentage of total_in_window, 0-100 and rounded to one decimal. Null when no classified recalls fell in the window.","title":"Class I Share Pct"},"top_recalling_firms":{"description":"One element per recalling firm, ordered by recall count descending and capped at the requested top. Firm names are FDA's, unnormalized, so one company may split across spellings.","items":{"$ref":"#/$defs/TermCount"},"title":"Top Recalling Firms","type":"array"},"by_state":{"description":"One element per recalling-firm location, term being a two-letter US state code where available, ordered by recall count descending and capped at the requested top.","items":{"$ref":"#/$defs/TermCount"},"title":"By State","type":"array"},"by_status":{"description":"One element per enforcement status (typically Ongoing, Completed, Terminated, Pending), ordered by recall count descending and capped at the requested top.","items":{"$ref":"#/$defs/TermCount"},"title":"By Status","type":"array"},"note":{"default":"Counts come from FDA's own server-side aggregation over the window; shares are computed by AnswerPool. Counts are recall events, not units or exposure.","description":"Fixed reading guidance: which numbers FDA aggregated, which AnswerPool derived, and what a count does and does not measure.","title":"Note","type":"string"},"source":{"default":"openFDA (US Food and Drug Administration), CC0","description":"Attribution for the underlying data: openFDA, published by FDA under CC0.","title":"Source","type":"string"},"disclaimer":{"default":"openFDA's own terms apply: do not rely on this to make decisions regarding medical care, and assume all results are unvalidated. Groupings and shares are computed by AnswerPool. Device nomenclature (GMDN) fields are excluded for licensing reasons.","description":"openFDA's own terms restated: results are unvalidated and not for medical decisions, groupings are AnswerPool's, and GMDN device nomenclature is excluded.","title":"Disclaimer","type":"string"}},"required":["as_of","category","window_days","total_in_window","by_classification","class_i_share_pct","top_recalling_firms","by_state","by_status"],"title":"RecallTrendsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"fda_recalls","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/fda/recalls","method":"GET","price_usd":0.0,"description":"Drug, device or food recalls filtered by firm, state, classification or window, with FDA's hazard classification (Class I is a reasonable probability of serious harm or death) and our day-counts since the report. Device nomenclature fields are excluded for licensing reasons. Free.","buyer_use_case":"An agent monitoring product safety or a company's compliance record needs recalls as flat records with the hazard class already interpreted.","when_to_use":"You need the recall records themselves for a firm, state or window.","when_not_to_use":"The distribution across many recalls — /v1/fda/recall-trends.","avoids":["openFDA Lucene query syntax","YYYYMMDD date handling","hazard class lookup"],"input_schema":{"additionalProperties":false,"properties":{"category":{"default":"drug","description":"Which openFDA enforcement dataset to search: drug, device or food. Default drug.","pattern":"^(drug|device|food)$","title":"Category","type":"string"},"firm":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Recalling firm name, sent to openFDA as a phrase match on recalling_firm, e.g. Pfizer. Omit for all firms.","title":"Firm"},"state":{"anyOf":[{"pattern":"^[A-Z]{2}$","type":"string"},{"type":"null"}],"default":null,"description":"Two-letter uppercase US state code of the recalling firm, e.g. CA. Omit for all states.","title":"State"},"classification":{"anyOf":[{"pattern":"^(Class I|Class II|Class III)$","type":"string"},{"type":"null"}],"default":null,"description":"Exact FDA recall class: Class I, Class II or Class III. Omit for all classes.","title":"Classification"},"days":{"default":365,"description":"Length in days of the report_date window, counted back from today. Default 365.","maximum":3650,"minimum":7,"title":"Days","type":"integer"},"limit":{"default":25,"description":"Maximum recall records returned; matched reports openFDA's total for the same query. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"RecallsIn","type":"object"},"output_schema":{"$defs":{"Recall":{"properties":{"recall_number":{"description":"FDA's recall number for this enforcement action, e.g. D-0123-2026 for a drug, Z-... for a device, F-... for a food. Stable identifier for the action at FDA.","title":"Recall Number","type":"string"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FDA's hazard classification: 'Class I' (reasonable probability of serious harm or death), 'Class II' (temporary or reversible harm) or 'Class III' (unlikely harm). Null when FDA has not classified the action yet.","title":"Classification"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FDA's enforcement status of the recall, typically Ongoing, Completed, Terminated or Pending. Null when the record carries no status.","title":"Status"},"recalling_firm":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the firm conducting the recall, as FDA recorded it — unnormalized, so the same company can appear under several spellings. Null if absent.","title":"Recalling Firm"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter US state code of the recalling firm's address, e.g. NJ. Null or non-US-shaped for firms outside the United States.","title":"State"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Country of the recalling firm's address, e.g. 'United States'. Null when the record carries no country.","title":"Country"},"product_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FDA's product category for the recalled item, matching the dataset queried: Drugs, Devices or Food. Null when absent.","title":"Product Type"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FDA's stated reason for the recall, e.g. 'Lack of Assurance of Sterility'. Free text written by FDA, not a coded value. Null when absent.","title":"Reason"},"product_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"FDA's description of the recalled product, truncated to the first 400 characters. Null when the record carries no description.","title":"Product Description"},"report_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date FDA published the enforcement report, as ISO-8601 YYYY-MM-DD (converted from FDA's YYYYMMDD). This is the date the window filter applies to. Null when the record carries no usable report date.","title":"Report Date"},"initiation_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the firm began the recall, as ISO-8601 YYYY-MM-DD; usually earlier than report_date. Null when the record carries no usable initiation date.","title":"Initiation Date"},"days_since_report":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from report_date to the current UTC date, computed by AnswerPool. Null when report_date is null or unparseable.","title":"Days Since Report"},"voluntary_or_mandated":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Whether the firm started the recall or FDA required it, e.g. 'Voluntary: Firm Initiated' or 'FDA Mandated'. Null when absent.","title":"Voluntary Or Mandated"}},"required":["recall_number","classification","status","recalling_firm","state","country","product_type","reason","product_description","report_date","initiation_date","days_since_report","voluntary_or_mandated"],"title":"Recall","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp when this response was computed, ISO-8601 with milliseconds and a Z suffix, e.g. 2026-09-03T17:00:00.000Z.","title":"As Of","type":"string"},"category":{"description":"The openFDA enforcement dataset searched, echoing the request: drug, device or food.","title":"Category","type":"string"},"window_days":{"description":"Length in days of the report_date window searched, counted back from the current UTC date; echoes the request.","title":"Window Days","type":"integer"},"matched":{"description":"Total recall records openFDA reports as matching the whole query, which is usually larger than count. Falls back to the number returned when openFDA omits a total.","title":"Matched","type":"integer"},"count":{"description":"Number of recall records in the recalls array — at most the requested limit, not the size of the full match set.","title":"Count","type":"integer"},"class_i_in_page":{"description":"How many of the returned records are classified Class I. Counted over this page only, so it is not the Class I total for the query.","title":"Class I In Page","type":"integer"},"recalls":{"description":"One element per recall enforcement action, in the order openFDA returns them for the query — no sort is requested, so do not read it as newest-first.","items":{"$ref":"#/$defs/Recall"},"title":"Recalls","type":"array"},"note":{"default":"Class I means a reasonable probability of serious harm or death, Class II temporary or reversible harm, Class III unlikely harm. Classification is FDA's; day-counts are ours.","description":"Fixed reading guidance: what the three FDA hazard classes mean and which fields come from FDA rather than from AnswerPool.","title":"Note","type":"string"},"source":{"default":"openFDA (US Food and Drug Administration), CC0","description":"Attribution for the underlying data: openFDA, published by FDA under CC0.","title":"Source","type":"string"},"disclaimer":{"default":"openFDA's own terms apply: do not rely on this to make decisions regarding medical care, and assume all results are unvalidated. Groupings and shares are computed by AnswerPool. Device nomenclature (GMDN) fields are excluded for licensing reasons.","description":"openFDA's own terms restated: results are unvalidated and not for medical decisions, groupings are AnswerPool's, and GMDN device nomenclature is excluded.","title":"Disclaimer","type":"string"}},"required":["as_of","category","window_days","matched","count","class_i_in_page","recalls"],"title":"RecallsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"funding_agency_directory","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/funding/agencies","method":"GET","price_usd":0.0,"description":"The USAspending toptier agency directory — agency name, abbreviation, toptier code and current budget authority — searchable and sorted by budget size in one call. The toptier code keys per-agency spending queries. Free.","buyer_use_case":"An agent needs the toptier code or budget scale for a federal agency before agency-filtered spending analysis.","when_to_use":"You need an agency's toptier code, canonical name, or budget scale for spending queries.\n","when_not_to_use":"Federal Register regulatory agencies — that is /v1/regs/agencies (different slug space).","avoids":["agency code guessing","budget authority hunting"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":60,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the agency name, or its exact abbreviation, e.g. NASA. Omit for the whole directory.","title":"Q"},"limit":{"default":25,"description":"Maximum agencies returned, ordered by budget authority descending. Default 25.","maximum":120,"minimum":1,"title":"Limit","type":"integer"}},"title":"AgencyDirIn","type":"object"},"output_schema":{"$defs":{"Agency":{"properties":{"toptier_code":{"description":"USAspending top-tier agency code, a 3-4 character numeric string such as '097' for the Department of Defense. This is the value agency-filtered spending queries use; it is not the Federal Register agency slug.","title":"Toptier Code","type":"string"},"name":{"description":"Official top-tier agency name as published by USAspending, e.g. 'Department of Energy'.","title":"Name","type":"string"},"abbreviation":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Short agency abbreviation such as NASA or DOD; null when USAspending publishes none for the agency.","title":"Abbreviation"},"budget_authority_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total budget authority for the agency in whole US dollars, for the fiscal year USAspending currently reports as active (a federal fiscal year runs Oct 1 to Sep 30). Budget authority, not obligations or outlays; null when not reported.","title":"Budget Authority Usd"}},"required":["toptier_code","name","abbreviation","budget_authority_usd"],"title":"Agency","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this directory was served, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ).","title":"As Of","type":"string"},"count":{"description":"Number of entries in agencies, at most the requested limit. 0 when the search text matched no agency name or abbreviation.","title":"Count","type":"integer"},"agencies":{"description":"One entry per matching top-tier federal agency, ordered by budget_authority_usd descending; agencies with no reported budget authority sort last.","items":{"$ref":"#/$defs/Agency"},"title":"Agencies","type":"array"},"disclaimer":{"default":"Reference data from USAspending.gov (US federal public domain); not procurement advice.","description":"Fixed notice naming the source of this reference data, its public domain status, and that it is not procurement advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","agencies"],"title":"AgenciesOut","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"funding_naics_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/funding/naics","method":"GET","price_usd":0.0,"description":"Searches NAICS industry codes by description text or code prefix via USAspending and returns code, description and whether the code is retired, in one normalized shape. The code is the filter every federal contract analysis needs. Free.","buyer_use_case":"An agent analyzing federal contracting knows an industry (\"machine learning\", \"shipbuilding\") and needs the NAICS code that award queries filter on.","when_to_use":"You need a NAICS code for a federal-spending query and have only an industry name or partial code.\n","when_not_to_use":"Non-US industry classification (use the relevant national scheme).","avoids":["Census NAICS manual reading","guessing codes in award filters"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Search text for this lookup, matched by USAspending autocomplete against the codes, names and descriptions it holds, e.g. semiconductor. No match returns an empty list.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":20,"description":"Maximum matches returned, in the relevance order USAspending autocomplete gives them. Default 20.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"QueryIn","type":"object"},"output_schema":{"$defs":{"CodeMatch":{"properties":{"code":{"description":"The resolved code: a 2-6 digit NAICS industry code from the NAICS lookup, or a 4-character federal Product or Service Code (PSC) from the PSC lookup. Pass it verbatim as the naics or psc filter of a federal award query.","title":"Code","type":"string"},"description":{"description":"Official title USAspending publishes for the code — the NAICS industry title or the PSC product/service description.","title":"Description","type":"string"},"retired":{"default":false,"description":"True when USAspending records a retirement year for this NAICS code, meaning it no longer applies to new awards but may still appear on historical ones. Always false for PSC results, where retirement is not reported.","title":"Retired","type":"boolean"}},"required":["code","description"],"title":"CodeMatch","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this lookup was served, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ).","title":"As Of","type":"string"},"count":{"description":"Number of entries in matches, at most the requested limit. 0 when the search text matched no code.","title":"Count","type":"integer"},"matches":{"description":"One entry per matching code, in the relevance order USAspending autocomplete returns them — not sorted numerically or alphabetically. Empty on no match.","items":{"$ref":"#/$defs/CodeMatch"},"title":"Matches","type":"array"},"disclaimer":{"default":"Reference data from USAspending.gov (US federal public domain); not procurement advice.","description":"Fixed notice naming the source of this reference data, its public domain status, and that it is not procurement advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","matches"],"title":"CodesOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"funding_program_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/funding/programs","method":"GET","price_usd":0.0,"description":"Searches federal assistance listings (grant/loan programs, formerly CFDA) by title text via USAspending, returning program number, title and popular name. The program number keys every federal grants analysis. Free.","buyer_use_case":"An agent researching grants knows a program by topic or popular name (\"cancer research\", \"Pell\") and needs its assistance-listing number.","when_to_use":"You need the assistance-listing number behind a federal grant program name or topic.\n","when_not_to_use":"Contract (procurement) analysis — use NAICS/PSC lookups instead.","avoids":["sam.gov assistance-listing browsing","CFDA number guessing"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Search text for this lookup, matched by USAspending autocomplete against the codes, names and descriptions it holds, e.g. semiconductor. No match returns an empty list.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":20,"description":"Maximum matches returned, in the relevance order USAspending autocomplete gives them. Default 20.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"QueryIn","type":"object"},"output_schema":{"$defs":{"Program":{"properties":{"program_number":{"description":"Assistance Listing number (formerly CFDA) in NN.NNN form, e.g. 93.398, where the part before the dot identifies the awarding agency. This is the identifier federal grant queries filter on.","title":"Program Number","type":"string"},"title":{"description":"Official title of the assistance listing as published in USAspending.","title":"Title","type":"string"},"popular_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Short common name for the program, e.g. 'Pell Grants'; null when the assistance listing has no popular name recorded.","title":"Popular Name"}},"required":["program_number","title","popular_name"],"title":"Program","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this lookup was served, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ).","title":"As Of","type":"string"},"count":{"description":"Number of entries in programs, at most the requested limit. 0 when the search text matched no assistance listing.","title":"Count","type":"integer"},"programs":{"description":"One entry per matching federal assistance listing, in the relevance order USAspending autocomplete returns them — not sorted by program number or title.","items":{"$ref":"#/$defs/Program"},"title":"Programs","type":"array"},"disclaimer":{"default":"Reference data from USAspending.gov (US federal public domain); not procurement advice.","description":"Fixed notice naming the source of this reference data, its public domain status, and that it is not procurement advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","programs"],"title":"ProgramsOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"funding_psc_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/funding/psc","method":"GET","price_usd":0.0,"description":"Searches federal Product or Service Codes (what the government bought) by description text or code prefix via USAspending, returning code + description in one normalized shape. Complements NAICS (who sold it). Free.","buyer_use_case":"An agent needs the PSC code to filter federal awards by what was purchased (\"engineering R&D\", \"IT services\").","when_to_use":"You need to filter federal awards by what was purchased and have only a description.\n","when_not_to_use":"Industry-of-seller filtering — that is NAICS (/v1/funding/naics).","avoids":["GSA PSC manual PDFs","guessing codes"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Search text for this lookup, matched by USAspending autocomplete against the codes, names and descriptions it holds, e.g. semiconductor. No match returns an empty list.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":20,"description":"Maximum matches returned, in the relevance order USAspending autocomplete gives them. Default 20.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"QueryIn","type":"object"},"output_schema":{"$defs":{"CodeMatch":{"properties":{"code":{"description":"The resolved code: a 2-6 digit NAICS industry code from the NAICS lookup, or a 4-character federal Product or Service Code (PSC) from the PSC lookup. Pass it verbatim as the naics or psc filter of a federal award query.","title":"Code","type":"string"},"description":{"description":"Official title USAspending publishes for the code — the NAICS industry title or the PSC product/service description.","title":"Description","type":"string"},"retired":{"default":false,"description":"True when USAspending records a retirement year for this NAICS code, meaning it no longer applies to new awards but may still appear on historical ones. Always false for PSC results, where retirement is not reported.","title":"Retired","type":"boolean"}},"required":["code","description"],"title":"CodeMatch","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this lookup was served, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ).","title":"As Of","type":"string"},"count":{"description":"Number of entries in matches, at most the requested limit. 0 when the search text matched no code.","title":"Count","type":"integer"},"matches":{"description":"One entry per matching code, in the relevance order USAspending autocomplete returns them — not sorted numerically or alphabetically. Empty on no match.","items":{"$ref":"#/$defs/CodeMatch"},"title":"Matches","type":"array"},"disclaimer":{"default":"Reference data from USAspending.gov (US federal public domain); not procurement advice.","description":"Fixed notice naming the source of this reference data, its public domain status, and that it is not procurement advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","matches"],"title":"CodesOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"funding_recipient_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/funding/recipients","method":"GET","price_usd":0.0,"description":"Searches federal award recipients by name via USAspending and returns deduplicated canonical recipient names (with UEI when exposed). Recipient names in federal data are messy — this returns the exact strings award queries match on. Free.","buyer_use_case":"An agent needs the canonical recipient name variants (\"Lockheed Martin\" vs \"LOCKHEED MARTIN CORP\") before querying who received federal awards.","when_to_use":"You are about to query federal awards by recipient and need the exact name variants the data uses.\n","when_not_to_use":"SEC filer resolution — that is /v1/sec/cik.","avoids":["recipient name variant misses","manual USAspending searching"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Search text for this lookup, matched by USAspending autocomplete against the codes, names and descriptions it holds, e.g. semiconductor. No match returns an empty list.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":20,"description":"Maximum matches returned, in the relevance order USAspending autocomplete gives them. Default 20.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"QueryIn","type":"object"},"output_schema":{"$defs":{"Recipient":{"properties":{"name":{"description":"Recipient name exactly as it appears in USAspending award data (typically the uppercase legal entity name); use this string verbatim when filtering awards by recipient, since variants of the same company are stored separately.","title":"Name","type":"string"},"uei":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SAM.gov Unique Entity Identifier (12-character alphanumeric) for this recipient; null when the USAspending autocomplete response carries no UEI for the name.","title":"Uei"}},"required":["name","uei"],"title":"Recipient","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this lookup was served, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ).","title":"As Of","type":"string"},"count":{"description":"Number of entries in recipients after duplicate names are removed, at most the requested limit. 0 when the search text matched no recipient.","title":"Count","type":"integer"},"recipients":{"description":"One entry per distinct recipient name, keeping the relevance order USAspending autocomplete returns and dropping later repeats of a name already listed. Not ranked by dollars — this lookup resolves names, it does not measure spending.","items":{"$ref":"#/$defs/Recipient"},"title":"Recipients","type":"array"},"note":{"default":"Name resolution for award queries; UEI present when USAspending exposes it.","description":"Fixed note on how to use this result: the names are the strings award queries match on, and UEIs appear only when USAspending publishes them.","title":"Note","type":"string"},"disclaimer":{"default":"Reference data from USAspending.gov (US federal public domain); not procurement advice.","description":"Fixed notice naming the source of this reference data, its public domain status, and that it is not procurement advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","recipients"],"title":"RecipientsOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"funding_resolve","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/funding/resolve","method":"GET","price_usd":0.0,"description":"One call that searches NAICS, PSC, assistance listings, recipients and agencies at once and returns whatever matched, each with the parameter name a spending query would filter on. Replaces guessing which of the five lookups applies. Free.","buyer_use_case":"An agent holds one string — an industry, a product, a program, a company or an agency — and needs the federal identifier for it without five trial calls.","when_to_use":"You have one string and do not know which federal code space it belongs to.","when_not_to_use":"You already know the space — call that lookup directly for more results.","avoids":["five sequential autocomplete calls","picking the wrong code space"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Term to resolve at once across the NAICS, PSC, assistance listing, recipient and agency code spaces, e.g. semiconductors. Resolving nowhere returns a 400.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit_per_kind":{"default":3,"description":"Maximum matches returned per code space (naics, psc, program, recipient, agency). Default 3.","maximum":10,"minimum":1,"title":"Limit Per Kind","type":"integer"}},"required":["q"],"title":"FundingResolveIn","type":"object"},"output_schema":{"$defs":{"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"},"ResolvedRef":{"properties":{"kind":{"description":"Which federal code space this match came from: one of 'naics', 'psc', 'program' (assistance listing), 'recipient' or 'agency'.","title":"Kind","type":"string"},"code":{"description":"The identifier in that code space: a 2-6 digit NAICS code, a 4-character PSC, an Assistance Listing number NN.NNN, a recipient UEI (falling back to the recipient name when USAspending exposes no UEI), or a 3-4 character top-tier agency code.","title":"Code","type":"string"},"label":{"description":"Human-readable name for the code — the NAICS or PSC description, the program title, the recipient name, or the agency name.","title":"Label","type":"string"},"filter_param":{"description":"Name of the query parameter to pass this code as in a federal spending query: 'naics', 'psc', 'program_number', 'recipient' or 'agency'.","title":"Filter Param","type":"string"}},"required":["kind","code","label","filter_param"],"title":"ResolvedRef","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp this resolution was served, ISO-8601 with milliseconds and a Z suffix (YYYY-MM-DDTHH:MM:SS.sssZ).","title":"As Of","type":"string"},"query":{"description":"The search string that was resolved, echoed back unchanged.","title":"Query","type":"string"},"count":{"description":"Total number of entries in matches across all five code spaces, at most five times the requested per-kind limit. Always 1 or more: a term that resolves nowhere returns a 400 error instead of an empty result.","title":"Count","type":"integer"},"matches":{"description":"One entry per resolved identifier, grouped by code space in a fixed order — NAICS first, then PSC, assistance listing, recipient, agency — and within each group in the order the upstream lookup returns them. Code spaces with no match are absent.","items":{"$ref":"#/$defs/ResolvedRef"},"title":"Matches","type":"array"},"next_endpoints":{"description":"Suggested follow-up calls for this query: the endpoint, a ready-to-call relative URL with the query already filled in, what it answers, and what it costs.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"note":{"default":"Searches every federal code space at once — NAICS, PSC, assistance listing, recipient, agency — so one call replaces guessing which lookup applies.","description":"Fixed note describing the coverage of this endpoint: every federal code space is searched in one call rather than choosing a single lookup up front.","title":"Note","type":"string"},"disclaimer":{"default":"Reference data from USAspending.gov (US federal public domain); not procurement advice.","description":"Fixed notice naming the source of this reference data, its public domain status, and that it is not procurement advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","count","matches","next_endpoints"],"title":"FundingResolveOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"graph_auditor_clients","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/graph/auditor","method":"GET","price_usd":0.02,"description":"Exact-phrase EDGAR full-text search for an audit firm's name across 10-Ks in a window, aggregated per registrant — a text-mention proxy for the firm's public-company client base (audit reports name the auditor), stated as such in every response.","buyer_use_case":"An agent maps auditor concentration — who audits the competitors, exposure to one firm's client base.","when_to_use":"Auditor-concentration or shared-auditor analysis.","when_not_to_use":"A definitive engagement record — mentions can include predecessor auditors; it is a text proxy.\n","avoids":["10-K full-text infrastructure","per-registrant aggregation"],"input_schema":{"additionalProperties":false,"properties":{"name":{"description":"Audit firm, e.g. \"Ernst & Young LLP\".","maxLength":80,"minLength":3,"title":"Name","type":"string"},"lookback_days":{"default":400,"description":"Window in days over the 10-K filing date, counted back from today. Default 400, about one annual reporting cycle.","maximum":1825,"minimum":30,"title":"Lookback Days","type":"integer"},"limit":{"default":25,"description":"Maximum client companies returned, ordered by matching filing count descending then CIK. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["name"],"title":"AuditorIn","type":"object"},"output_schema":{"$defs":{"CompanyHit":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant whose filings contain the searched text, 10 digits zero-padded, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC full-text search reports it, e.g. 'Apple Inc.'. Null when the search record carries no display name.","title":"Company"},"filings":{"description":"Number of this registrant's filings inspected for this request that contain a searched identifier, counted across all identifiers. It can understate a heavy citer because only the leading matches per identifier are inspected.","title":"Filings","type":"integer"},"forms":{"description":"Distinct SEC form types of those matching filings, e.g. 10-K, 8-K, S-1, sorted alphabetically. Empty when the search records report no form type.","items":{"type":"string"},"title":"Forms","type":"array"},"latest_filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date of the most recent matching filing for this registrant, ISO-8601 YYYY-MM-DD, always inside the requested lookback window. Null when no matching filing carried a date.","title":"Latest Filed"},"matched":{"description":"Which of the searched identifiers appear verbatim in this registrant's filings, sorted alphabetically. A textual citation is evidence that the filer discussed the rule; it is not a determination of legal exposure.","items":{"type":"string"},"title":"Matched","type":"array"}},"required":["cik","company","filings","forms","latest_filed","matched"],"title":"CompanyHit","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp of when this response was computed from EDGAR.","title":"As Of","type":"string"},"auditor":{"description":"The audit-firm name that was searched, echoed exactly as requested. It is matched as a literal phrase in filing text, so a different spelling gives different hits.","title":"Auditor","type":"string"},"total_filing_matches":{"description":"Total 10-K filings EDGAR full-text search reports for that phrase in the window. `companies` is aggregated from the top-ranked page of those hits, so it can summarise fewer filings than this number.","title":"Total Filing Matches","type":"integer"},"count":{"description":"Number of companies in `companies`, after the requested limit is applied; not the number of audit clients the firm has.","title":"Count","type":"integer"},"companies":{"description":"One entry per company whose 10-K text mentions the firm name, ordered by matching filing count descending, then CIK ascending. A mention is evidence of an audit relationship, not confirmation of one — see `note`.","items":{"$ref":"#/$defs/CompanyHit"},"title":"Companies","type":"array"},"note":{"default":"Text-mention proxy: annual reports name their auditor in the audit report, but a mention can also occur in other contexts (predecessor auditor, litigation).","description":"Fixed caveat on what a text match does and does not prove for this product. Same text on every response.","title":"Note","type":"string"},"method_id":{"default":"sec_graph_rules_v1","description":"Identifier and version of the extraction method behind this response; a change in method gets a new id, so results are comparable only within one method_id.","title":"Method Id","type":"string"},"disclaimer":{"default":"Entity relationships extracted from public SEC filings; heuristic text/index joins, not a legal governance or ownership record. Not investment advice.","description":"Fixed notice on the limits of this product: relationships are extracted from public filing text and are not a legal or audit record. Same text on every response.","title":"Disclaimer","type":"string"}},"required":["as_of","auditor","total_filing_matches","count","companies"],"title":"AuditorOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"graph_interlocks","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/graph/interlocks","method":"GET","price_usd":0.05,"description":"Director/officer interlock map from SEC ownership filings (Forms 3/4/5): the insiders who filed for the target, and every other issuer those same people filed for, with their role at each. Built on our continuously accumulating ownership index; each response states the index start date. Deterministic; no LLM.","buyer_use_case":"Governance, conflict-of-interest and network analysis: an agent maps board and officer overlap without resolving people across thousands of filings itself.","when_to_use":"Governance or network analysis anchored on one company.","when_not_to_use":"Historical boards predating our ownership index (each response states index_started; coverage compounds daily).\n","avoids":["Forms 3/4/5 entity resolution","ownership-filing parsing","role extraction"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker is an error. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK of the target company, 1-10 digits, zero padding optional (e.g. 320193). Provide exactly one of cik or ticker.","title":"Cik"},"days":{"default":365,"description":"Length in days of the Form 3/4/5 filing-date window ending today; an insider counts as shared only if both companies filed inside it. Default 365.","maximum":3650,"minimum":7,"title":"Days","type":"integer"},"limit":{"default":25,"description":"Maximum linked companies returned, ordered by count of shared insiders descending then CIK. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"InterlocksIn","type":"object"},"output_schema":{"$defs":{"LinkedCompany":{"properties":{"cik":{"description":"SEC CIK of the linked company, zero-padded to 10 digits (e.g. 0000320193).","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker of the linked company from the EDGAR ticker map; null when the filer has no mapped ticker (private issuers, funds, delisted filers).","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Linked company's name as recorded on the ownership filings; null when the filings carried no issuer name.","title":"Company"},"shared_people":{"description":"One entry per insider who filed ownership forms for both the requested company and this company inside the window, ordered by owner CIK ascending. It asserts a shared filing history only, not a current, simultaneous or board-level relationship.","items":{"$ref":"#/$defs/SharedPerson"},"title":"Shared People","type":"array"}},"required":["cik","ticker","company","shared_people"],"title":"LinkedCompany","type":"object"},"SharedPerson":{"properties":{"owner_cik":{"description":"SEC CIK of the reporting owner (the insider, not a company) as filed on the ownership forms. The link is made on this identifier, not on name text, so it is the same person as far as SEC filer identity goes.","title":"Owner Cik","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Insider's name as it appears on the ownership filings (EDGAR style, usually 'Last First Middle'). Null when the filings carried no name.","title":"Name"},"role_at_target":{"description":"Role at the requested company as flagged on that company's most recent ownership filing for this person in the window: 'director', 'officer (<title>)', 'director, officer (<title>)', '10% owner', or 'other'.","title":"Role At Target","type":"string"},"role_at_other":{"description":"Same value set as role_at_target, for the linked company. The two roles are read from separate filings and need not have been held at the same moment.","title":"Role At Other","type":"string"},"last_seen":{"description":"EDGAR index timestamp (ISO-8601 to the second) of this person's most recent ownership filing for the linked company inside the window. Recency of the paper trail, not proof the role is current.","title":"Last Seen","type":"string"}},"required":["owner_cik","name","role_at_target","role_at_other","last_seen"],"title":"SharedPerson","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp of when this response was computed from the index.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the requested company, zero-padded to 10 digits (e.g. 0000320193), after resolving a ticker if one was supplied.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Requested company's name as recorded on its ownership filings; null when it filed no ownership form inside the window, in which case interlocks is empty.","title":"Company"},"index_started":{"description":"Timestamp of the earliest filing this service has in its own EDGAR index. Nothing before it can be matched however large `days` is, so a window reaching further back is effectively truncated here.","title":"Index Started","type":"string"},"insiders_seen":{"description":"Distinct reporting owners (by CIK) who filed an ownership form for the requested company inside the window; the pool the interlocks were drawn from. Insiders who reported no transactions in the window do not appear in the index.","title":"Insiders Seen","type":"integer"},"count":{"description":"Number of companies in `interlocks`, after the requested limit is applied; not the total number of links found.","title":"Count","type":"integer"},"interlocks":{"description":"One entry per other company that shares at least one insider CIK with the requested company inside the window, ordered by number of shared insiders descending, then CIK ascending.","items":{"$ref":"#/$defs/LinkedCompany"},"title":"Interlocks","type":"array"},"method_id":{"default":"sec_graph_rules_v1","description":"Identifier and version of the extraction method behind this response; a change in method gets a new id, so results are comparable only within one method_id.","title":"Method Id","type":"string"},"disclaimer":{"default":"Entity relationships extracted from public SEC filings; heuristic text/index joins, not a legal governance or ownership record. Not investment advice.","description":"Fixed notice on the limits of this product: relationships are joined from public filing indexes and are not a legal governance record. Same text on every response.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","company","index_started","insiders_seen","count","interlocks"],"title":"InterlocksOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"graph_person","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/graph/person","method":"GET","price_usd":0.02,"description":"Search SEC ownership filings by insider name substring or owner CIK; returns each matching person with every issuer they filed for, role, filing count and first/last seen dates — the person node of the entity graph. Coverage from index_started.","buyer_use_case":"An agent resolving \"who is this person and where else do they sit\" from a name on a filing.","when_to_use":"You have an insider's name or CIK and want their issuer footprint.","when_not_to_use":"Activity predating the ownership index (index_started is returned).","avoids":["name matching across filings","owner CIK resolution"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the insider name as filed on Forms 3/4/5 (e.g. buffett). Ignored when owner_cik is given; provide one of the two.","title":"Q"},"owner_cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"CIK of the reporting owner (the insider, not the issuer), 1-10 digits, zero padding optional. Provide q or owner_cik; owner_cik takes precedence over q.","title":"Owner Cik"},"days":{"default":365,"description":"Window in days over the ownership filing date, counted back from now. Default 365.","maximum":3650,"minimum":7,"title":"Days","type":"integer"},"limit":{"default":25,"description":"Maximum persons returned, ordered by owner CIK ascending. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"PersonIn","type":"object"},"output_schema":{"$defs":{"PersonIssuer":{"properties":{"cik":{"description":"SEC CIK of the issuer this person filed ownership forms for, zero-padded to 10 digits (e.g. 0000320193).","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker of the issuer from the EDGAR ticker map; null when the issuer has no mapped ticker.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer's name as recorded on the ownership filings; null when the filings carried no issuer name.","title":"Company"},"role":{"description":"Role at this issuer as flagged on the person's most recent ownership filing in the window: 'director', 'officer (<title>)', 'director, officer (<title>)', '10% owner', or 'other'. Roles held earlier in the window may differ.","title":"Role","type":"string"},"filings":{"description":"Number of this person's ownership filings for this issuer inside the window. The index carries ownership filings that reported at least one transaction, so this counts reported trades' filings rather than every Form 3/4/5 ever submitted.","title":"Filings","type":"integer"},"first_seen":{"description":"EDGAR index timestamp (ISO-8601 to the second) of the earliest such filing inside the window; bounded by the window and by when this service's index began, so it is not necessarily when the relationship started.","title":"First Seen","type":"string"},"last_seen":{"description":"EDGAR index timestamp (ISO-8601 to the second) of the most recent such filing inside the window. Recency of the paper trail, not proof the role is current.","title":"Last Seen","type":"string"}},"required":["cik","ticker","company","role","filings","first_seen","last_seen"],"title":"PersonIssuer","type":"object"},"PersonRow":{"properties":{"owner_cik":{"description":"SEC CIK of the reporting owner (the insider, not a company), zero-padded to 10 digits. Use it to pin follow-up requests to this exact filer instead of a name.","title":"Owner Cik","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Insider's name as filed on the ownership forms (EDGAR style, usually 'Last First Middle'). Null when the filings carried no name.","title":"Name"},"issuers":{"description":"One entry per company this filer submitted ownership forms for inside the window, ordered by issuer CIK ascending.","items":{"$ref":"#/$defs/PersonIssuer"},"title":"Issuers","type":"array"}},"required":["owner_cik","name","issuers"],"title":"PersonRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp of when this response was computed from the index.","title":"As Of","type":"string"},"index_started":{"description":"Timestamp of the earliest filing this service has in its own EDGAR index. Nothing before it can be found however large `days` is, so a longer window is effectively truncated here.","title":"Index Started","type":"string"},"count":{"description":"Number of persons in `persons`, after the requested limit is applied; not the total number of matching filers.","title":"Count","type":"integer"},"persons":{"description":"One entry per distinct reporting owner matching the request, ordered by owner CIK ascending. A name query can return several filers whose names contain the string.","items":{"$ref":"#/$defs/PersonRow"},"title":"Persons","type":"array"},"method_id":{"default":"sec_graph_rules_v1","description":"Identifier and version of the extraction method behind this response; a change in method gets a new id, so results are comparable only within one method_id.","title":"Method Id","type":"string"},"disclaimer":{"default":"Entity relationships extracted from public SEC filings; heuristic text/index joins, not a legal governance or ownership record. Not investment advice.","description":"Fixed notice on the limits of this product: relationships are joined from public filing indexes and are not a legal governance record. Same text on every response.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started","count","persons"],"title":"PersonOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"graph_subsidiaries","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/graph/subsidiaries","method":"GET","price_usd":0.05,"description":"Finds the target's latest annual report (10-K/20-F), locates its Exhibit 21 (subsidiaries of the registrant) and extracts subsidiary names and jurisdictions from the exhibit's tables. Best-effort deterministic parsing — exhibit formats vary — and the raw exhibit URL is always returned for verification.","buyer_use_case":"An agent building ownership trees or jurisdiction exposure without fetching and parsing EX-21 exhibits itself.","when_to_use":"You need the registrant's disclosed subsidiary list and jurisdictions.","when_not_to_use":"Complete ownership structures — issuers may omit minor subsidiaries, and parsing is best-effort (source_url is always included).\n","avoids":["EX-21 location","HTML table parsing","exhibit format variance"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker is an error. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK of the parent registrant, 1-10 digits, zero padding optional (e.g. 320193). Provide exactly one of cik or ticker.","title":"Cik"},"limit":{"default":200,"description":"Maximum subsidiary rows returned, in the order they appear in the Exhibit 21 table. Default 200.","maximum":500,"minimum":1,"title":"Limit","type":"integer"}},"title":"SubsIn","type":"object"},"output_schema":{"$defs":{"SubsidiaryRow":{"properties":{"name":{"description":"Entity name exactly as printed in the first column of the Exhibit 21 table, truncated at 200 characters. Not normalised and not matched to a CIK.","title":"Name","type":"string"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Jurisdiction of organisation as printed beside the name (e.g. 'Delaware', 'Ireland'). Null when the exhibit row carries no second column, which is common for single-column exhibits.","title":"Jurisdiction"}},"required":["name","jurisdiction"],"title":"SubsidiaryRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp of when this response was computed from EDGAR.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the parent registrant, zero-padded to 10 digits (e.g. 0000320193), after resolving a ticker if one was supplied.","title":"Cik","type":"string"},"name":{"description":"Registrant's name as EDGAR records it for that CIK; empty string if EDGAR has none.","title":"Name","type":"string"},"accession":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC accession number of the annual report that was read, dashed format (e.g. 0000320193-25-000073). Null when no 10-K, 10-K/A or 20-F is in the registrant's recent submissions.","title":"Accession"},"filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date (YYYY-MM-DD) of that annual report, so callers can tell how old the subsidiary list is. Null when no annual report was found.","title":"Filed"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Direct URL of the Exhibit 21 document that was parsed, always returned so a buyer can verify or re-parse it. Null when no annual report or no Exhibit 21 was located.","title":"Source Url"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null on a clean extraction. Otherwise it states why the list is empty: no annual report in recent submissions, no Exhibit 21 in that filing's index, or an Exhibit 21 found whose table could not be extracted (read source_url instead).","title":"Note"},"count":{"description":"Number of rows in `subsidiaries`, after the requested limit is applied; not necessarily the number of rows in the exhibit.","title":"Count","type":"integer"},"subsidiaries":{"description":"One entry per Exhibit 21 table row that reads like an entity, in the order printed in the exhibit. Registrants may omit subsidiaries they consider insignificant, so this is what the filing lists, not a complete corporate tree.","items":{"$ref":"#/$defs/SubsidiaryRow"},"title":"Subsidiaries","type":"array"},"method_id":{"default":"sec_graph_rules_v1","description":"Identifier and version of the extraction method behind this response; a change in method gets a new id, so results are comparable only within one method_id.","title":"Method Id","type":"string"},"disclaimer":{"default":"Entity relationships extracted from public SEC filings; heuristic text/index joins, not a legal governance or ownership record. Not investment advice.","description":"Fixed notice on the limits of this product: entity relationships are extracted best-effort from public filings and are not a legal ownership record. Same text on every response.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","name","accession","filed","source_url","note","count","subsidiaries"],"title":"SubsOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"impact_cfr_citers","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/impact/cfr","method":"GET","price_usd":0.02,"description":"Exact-phrase EDGAR full-text search for a CFR citation (e.g. \"17 CFR 240\") across all SEC filings in a window, aggregated per registrant with filing counts, forms and latest date. The building block for exposure screens on specific provisions.","buyer_use_case":"A compliance agent maps which issuers publicly reference the provisions its owner cares about.","when_to_use":"Your obligations map to known CFR parts and you want the citing issuers.","when_not_to_use":"Broad topic screens — use the rule impact map or regulation search.","avoids":["EDGAR full-text syntax","per-registrant aggregation"],"input_schema":{"additionalProperties":false,"properties":{"cfr_title":{"description":"CFR title number, 1 to 50 (e.g. 17 for Commodity and Securities Exchanges). Searched together with cfr_part as the exact phrase '17 CFR 240'.","maximum":50,"minimum":1,"title":"Cfr Title","type":"integer"},"cfr_part":{"description":"CFR part number within cfr_title (e.g. 240). Both are required; a part nobody cites in the window returns an empty company list.","maximum":9999,"minimum":1,"title":"Cfr Part","type":"integer"},"lookback_days":{"default":365,"description":"Length in days of the SEC filing-date window ending today.","maximum":1825,"minimum":30,"title":"Lookback Days","type":"integer"},"limit":{"default":25,"description":"Maximum companies returned, most matching filings first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["cfr_title","cfr_part"],"title":"CfrCitersIn","type":"object"},"output_schema":{"$defs":{"CompanyHit":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant whose filings contain the searched text, 10 digits zero-padded, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC full-text search reports it, e.g. 'Apple Inc.'. Null when the search record carries no display name.","title":"Company"},"filings":{"description":"Number of this registrant's filings inspected for this request that contain a searched identifier, counted across all identifiers. It can understate a heavy citer because only the leading matches per identifier are inspected.","title":"Filings","type":"integer"},"forms":{"description":"Distinct SEC form types of those matching filings, e.g. 10-K, 8-K, S-1, sorted alphabetically. Empty when the search records report no form type.","items":{"type":"string"},"title":"Forms","type":"array"},"latest_filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date of the most recent matching filing for this registrant, ISO-8601 YYYY-MM-DD, always inside the requested lookback window. Null when no matching filing carried a date.","title":"Latest Filed"},"matched":{"description":"Which of the searched identifiers appear verbatim in this registrant's filings, sorted alphabetically. A textual citation is evidence that the filer discussed the rule; it is not a determination of legal exposure.","items":{"type":"string"},"title":"Matched","type":"array"}},"required":["cik","company","filings","forms","latest_filed","matched"],"title":"CompanyHit","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z. SEC filings are read live, so this is also the read time.","title":"As Of","type":"string"},"query":{"description":"The exact phrase searched in SEC filing text: the CFR citation assembled from the requested title and part, e.g. '17 CFR 240', or the docket id or RIN supplied.","title":"Query","type":"string"},"total_filing_matches":{"description":"Total filings whose text contains that phrase within the lookback window, as reported by SEC full-text search. Counts the whole corpus, not just the registrants listed below.","title":"Total Filing Matches","type":"integer"},"count":{"description":"Number of registrants in `companies` after the `limit` cap; other registrants may cite the same phrase beyond this cap.","title":"Count","type":"integer"},"companies":{"description":"One entry per registrant whose filings in the lookback window contain the phrase, ordered by matching filings, most first, ties broken by CIK ascending. Empty when nobody cited it in the window.","items":{"$ref":"#/$defs/CompanyHit"},"title":"Companies","type":"array"},"method_id":{"default":"reg_impact_rules_v1","description":"Identifier and version of the join method behind this response, e.g. reg_impact_rules_v1. It changes when the method changes, so results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Heuristic cross-corpus join over public Federal Register and SEC EDGAR text; a citation or industry mapping indicates relevance, not legal exposure. Not legal advice.","description":"Fixed usage notice: this is a heuristic text join over public Federal Register and SEC filings, indicating relevance rather than legal exposure, and is not legal advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","total_filing_matches","count","companies"],"title":"CitersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"impact_company_rules","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/impact/company","method":"GET","price_usd":0.05,"description":"Resolves a ticker or CIK to its SEC industry classification (SIC), maps the industry to its federal regulators via a curated table (slugs verified against the Federal Register agency list), and returns those agencies' recent rules and proposed rules with deadline flags. A coarse industry-level heuristic, stated as such.","buyer_use_case":"An agent monitoring one company wants the regulatory pipeline relevant to its industry without building an agency map.","when_to_use":"You monitor one issuer and want its regulators' recent rulemaking.","when_not_to_use":"Firm-specific legal exposure — the mapping is industry-level; pair with the citation views for company-specific evidence.\n","avoids":["SIC lookups","agency mapping","Federal Register integration","deadline math"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Exchange ticker, e.g. AAPL. Give ticker or cik; cik wins if both are set, and an unknown ticker is rejected.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, digits only, zero-padding optional, e.g. 320193 or 0000320193. Give cik or ticker; cik wins if both are set.","title":"Cik"},"days":{"default":90,"description":"Length in days of the Federal Register publication-date window ending today. Default 90.","maximum":365,"minimum":7,"title":"Days","type":"integer"},"types":{"default":"rule,proposed_rule","description":"Comma-separated Federal Register document types: rule, proposed_rule, notice, presidential. Default rule,proposed_rule.","title":"Types","type":"string"},"significant_only":{"default":false,"description":"True keeps only E.O. 12866 significant documents; false (default) keeps all.","title":"Significant Only","type":"boolean"},"limit":{"default":25,"description":"Maximum Federal Register documents returned, newest publication first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"CompanyRulesIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z; both the company profile and the rules are read live.","title":"As Of","type":"string"},"cik":{"description":"SEC Central Index Key of the company the rules were selected for, 10 digits zero-padded, e.g. 0000320193, resolved from the ticker when one was given.","title":"Cik","type":"string"},"name":{"description":"Registrant name exactly as SEC EDGAR records it for this CIK, e.g. 'Apple Inc.'. Empty string when EDGAR reports no name.","title":"Name","type":"string"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The company's SEC Standard Industrial Classification code as EDGAR reports it, e.g. '3674'. Null when EDGAR carries no SIC, in which case only the SEC is mapped.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EDGAR's plain-English label for that SIC code, e.g. 'Semiconductors & Related Devices'. Null when EDGAR carries none.","title":"Sic Description"},"mapped_agencies":{"description":"Federal Register agency slugs whose rulemaking was searched, e.g. environmental-protection-agency, chosen from the company's SIC industry; the SEC is always included. An industry mapping indicates relevance, not legal exposure.","items":{"type":"string"},"title":"Mapped Agencies","type":"array"},"total_matching":{"description":"Total Federal Register documents matching those agencies, the requested document types and the date window, as reported by the Federal Register — normally larger than the number returned.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents in `documents` after the `limit` cap.","title":"Count","type":"integer"},"documents":{"description":"One entry per Federal Register document issued by a mapped agency inside the publication-date window, newest publication date first. These are the industry's rules, not documents that name the company.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"method_id":{"default":"reg_impact_rules_v1","description":"Identifier and version of the join method behind this response, e.g. reg_impact_rules_v1. It changes when the method changes, so results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Heuristic cross-corpus join over public Federal Register and SEC EDGAR text; a citation or industry mapping indicates relevance, not legal exposure. Not legal advice.","description":"Fixed usage notice: this is a heuristic text join over public Federal Register and SEC filings, indicating relevance rather than legal exposure, and is not legal advice.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","name","sic","sic_description","mapped_agencies","total_matching","count","documents"],"title":"CompanyRulesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"impact_docket_citers","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/impact/docket","method":"GET","price_usd":0.02,"description":"Exact-phrase EDGAR full-text search for an agency docket id (e.g. SEC-2026-001) or Regulation Identifier Number, aggregated per registrant. Follows who publicly engages with one specific rulemaking.","buyer_use_case":"An agent following one rulemaking wants the issuers that reference it in filings — commenters, affected parties, disclosers.","when_to_use":"You track one docket/RIN and want the issuers referencing it.","when_not_to_use":"Whole-provision screens — use the CFR citers view.","avoids":["EDGAR full-text syntax","per-registrant aggregation"],"input_schema":{"additionalProperties":false,"properties":{"docket_id":{"anyOf":[{"maxLength":60,"minLength":2,"pattern":"^[A-Za-z0-9._/-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Agency docket id searched as an exact phrase in filings, e.g. EPA-HQ-OAR-2021-0317. Give docket_id or rin; docket_id wins if both are set.","title":"Docket Id"},"rin":{"anyOf":[{"maxLength":12,"pattern":"^[0-9]{4}-[A-Z0-9]{2,6}$","type":"string"},{"type":"null"}],"default":null,"description":"Regulation Identifier Number, formatted NNNN-XXNN (e.g. 3235-AN00), searched as an exact phrase in filings. Give rin or docket_id; docket_id wins.","title":"Rin"},"lookback_days":{"default":365,"description":"Length in days of the SEC filing-date window ending today.","maximum":1825,"minimum":30,"title":"Lookback Days","type":"integer"},"limit":{"default":25,"description":"Maximum companies returned, most matching filings first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"DocketCitersIn","type":"object"},"output_schema":{"$defs":{"CompanyHit":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant whose filings contain the searched text, 10 digits zero-padded, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC full-text search reports it, e.g. 'Apple Inc.'. Null when the search record carries no display name.","title":"Company"},"filings":{"description":"Number of this registrant's filings inspected for this request that contain a searched identifier, counted across all identifiers. It can understate a heavy citer because only the leading matches per identifier are inspected.","title":"Filings","type":"integer"},"forms":{"description":"Distinct SEC form types of those matching filings, e.g. 10-K, 8-K, S-1, sorted alphabetically. Empty when the search records report no form type.","items":{"type":"string"},"title":"Forms","type":"array"},"latest_filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date of the most recent matching filing for this registrant, ISO-8601 YYYY-MM-DD, always inside the requested lookback window. Null when no matching filing carried a date.","title":"Latest Filed"},"matched":{"description":"Which of the searched identifiers appear verbatim in this registrant's filings, sorted alphabetically. A textual citation is evidence that the filer discussed the rule; it is not a determination of legal exposure.","items":{"type":"string"},"title":"Matched","type":"array"}},"required":["cik","company","filings","forms","latest_filed","matched"],"title":"CompanyHit","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z. SEC filings are read live, so this is also the read time.","title":"As Of","type":"string"},"query":{"description":"The exact phrase searched in SEC filing text: the CFR citation assembled from the requested title and part, e.g. '17 CFR 240', or the docket id or RIN supplied.","title":"Query","type":"string"},"total_filing_matches":{"description":"Total filings whose text contains that phrase within the lookback window, as reported by SEC full-text search. Counts the whole corpus, not just the registrants listed below.","title":"Total Filing Matches","type":"integer"},"count":{"description":"Number of registrants in `companies` after the `limit` cap; other registrants may cite the same phrase beyond this cap.","title":"Count","type":"integer"},"companies":{"description":"One entry per registrant whose filings in the lookback window contain the phrase, ordered by matching filings, most first, ties broken by CIK ascending. Empty when nobody cited it in the window.","items":{"$ref":"#/$defs/CompanyHit"},"title":"Companies","type":"array"},"method_id":{"default":"reg_impact_rules_v1","description":"Identifier and version of the join method behind this response, e.g. reg_impact_rules_v1. It changes when the method changes, so results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Heuristic cross-corpus join over public Federal Register and SEC EDGAR text; a citation or industry mapping indicates relevance, not legal exposure. Not legal advice.","description":"Fixed usage notice: this is a heuristic text join over public Federal Register and SEC filings, indicating relevance rather than legal exposure, and is not legal advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","total_filing_matches","count","companies"],"title":"CitersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"impact_rule_companies","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/impact/rule","method":"GET","price_usd":0.05,"description":"Cross-corpus join: takes one Federal Register document, extracts its docket ids, RIN and CFR references, and searches all SEC filings full-text for exact citations of them. Returns registrants ranked by how many of the rule's identifiers their filings cite, with filing counts, forms and dates. Deterministic; no LLM.","buyer_use_case":"An agent tracking a new rule needs the affected-issuer list without holding and joining both corpora itself.","when_to_use":"You hold a Federal Register document number and need the likely-affected issuer list.\n","when_not_to_use":"Legal determinations of exposure — citations indicate relevance, not obligation.\n","avoids":["dual-corpus infrastructure","EDGAR full-text query syntax","identifier extraction"],"input_schema":{"additionalProperties":false,"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341.","maxLength":40,"minLength":3,"pattern":"^[A-Za-z0-9._-]+$","title":"Document Number","type":"string"},"lookback_days":{"default":365,"description":"How far back to scan SEC filings.","maximum":1825,"minimum":30,"title":"Lookback Days","type":"integer"},"limit":{"default":25,"description":"Maximum companies returned, most rule identifiers matched first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["document_number"],"title":"RuleImpactIn","type":"object"},"output_schema":{"$defs":{"CompanyHit":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant whose filings contain the searched text, 10 digits zero-padded, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC full-text search reports it, e.g. 'Apple Inc.'. Null when the search record carries no display name.","title":"Company"},"filings":{"description":"Number of this registrant's filings inspected for this request that contain a searched identifier, counted across all identifiers. It can understate a heavy citer because only the leading matches per identifier are inspected.","title":"Filings","type":"integer"},"forms":{"description":"Distinct SEC form types of those matching filings, e.g. 10-K, 8-K, S-1, sorted alphabetically. Empty when the search records report no form type.","items":{"type":"string"},"title":"Forms","type":"array"},"latest_filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date of the most recent matching filing for this registrant, ISO-8601 YYYY-MM-DD, always inside the requested lookback window. Null when no matching filing carried a date.","title":"Latest Filed"},"matched":{"description":"Which of the searched identifiers appear verbatim in this registrant's filings, sorted alphabetically. A textual citation is evidence that the filer discussed the rule; it is not a determination of legal exposure.","items":{"type":"string"},"title":"Matched","type":"array"}},"required":["cik","company","filings","forms","latest_filed","matched"],"title":"CompanyHit","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z. Both corpora are read live, so this is also the read time.","title":"As Of","type":"string"},"document_number":{"description":"Federal Register document number of the rule that was joined, e.g. 2026-12341; echoes the request and is the id to re-fetch the rule at /v1/regs/document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register title of the rule as published. Empty string when the source record carries no title.","title":"Title","type":"string"},"agencies":{"description":"Full names of every agency issuing the rule, e.g. 'Environmental Protection Agency', in the order the Federal Register lists them; a joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the rule appeared in the Federal Register, ISO-8601 YYYY-MM-DD. Publication date, not effective date.","title":"Publication Date","type":"string"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the rule a significant regulatory action under E.O. 12866. Null when the source does not report significance, which is not the same as 'not significant'.","title":"Significant"},"identifiers_searched":{"description":"The exact phrases lifted from the rule and searched in SEC filing text — its docket ids, then its RIN, then its CFR references, a few at most. A rule carrying none of these cannot be joined and the request is rejected.","items":{"type":"string"},"title":"Identifiers Searched","type":"array"},"total_filing_matches":{"description":"Total filings matching those phrases in the lookback window as reported by SEC full-text search, summed over identifiers, so a filing citing two is counted twice. Counts the whole corpus, not just the registrants listed below.","title":"Total Filing Matches","type":"integer"},"count":{"description":"Number of registrants in `companies` after the `limit` cap; other registrants may cite the rule beyond this cap.","title":"Count","type":"integer"},"companies":{"description":"One entry per registrant whose filings in the lookback window quote at least one searched identifier, ordered by how many distinct identifiers they matched, then by matching filings, then by CIK ascending.","items":{"$ref":"#/$defs/CompanyHit"},"title":"Companies","type":"array"},"method_id":{"default":"reg_impact_rules_v1","description":"Identifier and version of the join method behind this response, e.g. reg_impact_rules_v1. It changes when the method changes, so results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Heuristic cross-corpus join over public Federal Register and SEC EDGAR text; a citation or industry mapping indicates relevance, not legal exposure. Not legal advice.","description":"Fixed usage notice: this is a heuristic text join over public Federal Register and SEC filings, indicating relevance rather than legal exposure, and is not legal advice.","title":"Disclaimer","type":"string"}},"required":["as_of","document_number","title","agencies","publication_date","significant","identifiers_searched","total_filing_matches","count","companies"],"title":"RuleImpactOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"ipo_calendar","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/ipo/calendar","method":"GET","price_usd":0.05,"description":"One call composing the whole pipeline for a window: issuers that just filed S-1/F-1, issuers amending, offerings that priced (424B4), and withdrawals — each bucket newest first. The staged snapshot a briefing or monitoring agent polls.","buyer_use_case":"A daily briefing agent wants the IPO pipeline pre-staged instead of composing four form feeds itself.","when_to_use":"You brief or monitor the pipeline as a whole, on a schedule.","when_not_to_use":"Single-stage feeds — the per-stage endpoints are cheaper.","avoids":["multi-feed composition","stage classification","dedup across amendments"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":30,"description":"Length in days of the filing-date window ending today, used for every stage.","maximum":180,"minimum":1,"title":"Days","type":"integer"},"limit":{"default":25,"description":"Maximum issuers returned per pipeline stage (filed, amending, priced, withdrawn), most recently filed first. Applied to each stage separately. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"CalendarIn","type":"object"},"output_schema":{"$defs":{"IpoFiling":{"properties":{"accession":{"description":"SEC accession number of this filing, formatted NNNNNNNNNN-NN-NNNNNN. Unique per filing and stable forever; use it to deduplicate across calls.","title":"Accession","type":"string"},"cik":{"description":"Filer's SEC CIK as a 10-digit zero-padded string, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name exactly as carried on the filing, with EDGAR's trailing ticker and CIK annotation removed. Null when EDGAR supplies no name for the filing.","title":"Company"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exchange ticker as annotated by EDGAR on this filing, e.g. RIVN. Frequently null for companies still in registration, because no ticker is listed until they trade.","title":"Ticker"},"form":{"description":"EDGAR form type of this filing, e.g. S-1, S-1/A, F-1, F-1/A, 424B4, RW or AW. Empty string in the rare case EDGAR reports no form type.","title":"Form","type":"string"},"filed":{"description":"SEC filing date of this document, ISO-8601 YYYY-MM-DD in EDGAR's own time zone. Empty string if EDGAR reports no date.","title":"Filed","type":"string"},"url":{"description":"Link to the filing-index page for this accession on sec.gov, where the prospectus and exhibits are listed.","title":"Url","type":"string"}},"required":["accession","cik","company","ticker","form","filed","url"],"title":"IpoFiling","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which every stage below was computed from EDGAR, ISO-8601 with milliseconds and a Z suffix.","title":"As Of","type":"string"},"window_days":{"description":"Length in days of the filing-date window ending today, applied identically to all four stages, echoing the days input.","title":"Window Days","type":"integer"},"filed":{"description":"Issuers in registration: one entry per issuer whose newest S-1/F-1 event in the window is an initial filing rather than an amendment, and that has neither priced nor withdrawn in the window. Most recently filed first, truncated to the limit.","items":{"$ref":"#/$defs/IpoFiling"},"title":"Filed","type":"array"},"amending":{"description":"Issuers amending: one entry per issuer whose newest S-1/F-1 event in the window is an amendment (form ending in /A), and that has neither priced nor withdrawn in the window. Most recently filed first, truncated to the limit.","items":{"$ref":"#/$defs/IpoFiling"},"title":"Amending","type":"array"},"priced":{"description":"One entry per 424(b)(4) final prospectus filed in the window, most recently filed first, truncated to the limit. Not deduplicated per issuer, and 424(b)(4) also covers follow-ons and shelf takedowns, so not every entry is an IPO.","items":{"$ref":"#/$defs/IpoFiling"},"title":"Priced","type":"array"},"withdrawn":{"description":"One entry per RW registration-withdrawal request filed in the window, most recently filed first, truncated to the limit. RW covers withdrawal of any registration statement, not only IPOs.","items":{"$ref":"#/$defs/IpoFiling"},"title":"Withdrawn","type":"array"},"method_id":{"default":"sec_ipo_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Registration and offering events from public SEC EDGAR filings; stage labels and the likely-IPO flag are deterministic heuristics, not offering advice. Not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"}},"required":["as_of","window_days","filed","amending","priced","withdrawn"],"title":"CalendarOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"ipo_company","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/ipo/company","method":"GET","price_usd":0.05,"description":"Every registration-related filing for one issuer — S-1/F-1 and amendments, 424(b) prospectuses, effectiveness notices, withdrawals — chronologically, merged from the issuer's live EDGAR submissions and our 2021+ filing index, with a current stage label (in_registration / amending / effective / priced / withdrawn). Look up by CIK or company-name substring.","buyer_use_case":"An agent following one IPO candidate gets the whole path and current status in one call.","when_to_use":"You follow one candidate and want its full registration history + stage.","when_not_to_use":"Market-wide pipeline snapshots — use the calendar.","avoids":["submissions parsing","form classification","stage logic"],"input_schema":{"additionalProperties":false,"properties":{"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, digits only, zero-padding optional, e.g. 320193 or 0000320193. Give cik or company; cik is used if both are set.","title":"Cik"},"company":{"anyOf":[{"maxLength":80,"minLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the registrant name as filed (e.g. rivian); the most recent registration-stage filer matching it wins. Provide cik or company; a substring matching no registrant is an error.","title":"Company"},"limit":{"default":100,"description":"Maximum registration events returned, oldest filing date first.","maximum":500,"minimum":1,"title":"Limit","type":"integer"}},"title":"CompanyIn","type":"object"},"output_schema":{"$defs":{"LifecycleEvent":{"properties":{"form":{"description":"EDGAR form type of this registration event: an S-1 or F-1 variant (including /A amendments and S-1MEF/F-1MEF), a 424B prospectus, EFFECT, RW or AW.","title":"Form","type":"string"},"filed":{"description":"SEC filing date of this event, ISO-8601 YYYY-MM-DD.","title":"Filed","type":"string"},"accession":{"description":"SEC accession number of this filing, formatted NNNNNNNNNN-NN-NNNNNN; events are deduplicated on it, so it appears at most once.","title":"Accession","type":"string"},"url":{"description":"Link to the filing-index page for this accession on sec.gov.","title":"Url","type":"string"}},"required":["form","filed","accession","url"],"title":"LifecycleEvent","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this lifecycle was assembled, ISO-8601 with milliseconds and a Z suffix.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the resolved issuer as a 10-digit zero-padded string, e.g. 0001874178. Use it for follow-up calls instead of the company name.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as filed with the SEC. Null only if neither the historical index nor EDGAR supplied a name for this CIK.","title":"Company"},"stage":{"description":"Where the issuer stands in the registration pipeline, derived from the forms in events: one of withdrawn, priced, effective, amending, in_registration, or no_registration_activity when no registration filings were found. Reflects the issuer's whole history, not just recent filings, and a later withdrawal or pricing outranks an earlier amendment.","title":"Stage","type":"string"},"count":{"description":"Number of events returned, i.e. after the limit was applied.","title":"Count","type":"integer"},"events":{"description":"The issuer's registration-lifecycle filings, oldest filing date first, so the list reads as the path toward going public. Combines our historical index with EDGAR's live submissions feed and is truncated to the requested limit.","items":{"$ref":"#/$defs/LifecycleEvent"},"title":"Events","type":"array"},"method_id":{"default":"sec_ipo_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Registration and offering events from public SEC EDGAR filings; stage labels and the likely-IPO flag are deterministic heuristics, not offering advice. Not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","company","stage","count","events"],"title":"CompanyOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"ipo_new_registrations","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/ipo/registrations","method":"GET","price_usd":0.02,"description":"Initial S-1 and F-1 registration statements (amendments excluded by default) filed in the last N days, newest first, from EDGAR full-text search — companies that just started the path to going public, with issuer, CIK and filing links.","buyer_use_case":"An agent watches for new IPO candidates the day they surface, without polling EDGAR form feeds itself.","when_to_use":"You track newly surfacing IPO candidates.","when_not_to_use":"Pricing or completion events — use the priced-offerings endpoint.","avoids":["EDGAR feed polling","S-1 vs amendment disambiguation"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":30,"description":"Length in days of the filing-date window ending today.","maximum":365,"minimum":1,"title":"Days","type":"integer"},"include_amendments":{"default":false,"description":"True keeps S-1/A and F-1/A; false (default) returns initial filings only.","title":"Include Amendments","type":"boolean"},"foreign":{"default":true,"description":"Include F-1 (foreign private issuers).","title":"Foreign","type":"boolean"},"limit":{"default":50,"description":"Maximum filings returned, most recently filed first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"NewRegsIn","type":"object"},"output_schema":{"$defs":{"IpoFiling":{"properties":{"accession":{"description":"SEC accession number of this filing, formatted NNNNNNNNNN-NN-NNNNNN. Unique per filing and stable forever; use it to deduplicate across calls.","title":"Accession","type":"string"},"cik":{"description":"Filer's SEC CIK as a 10-digit zero-padded string, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name exactly as carried on the filing, with EDGAR's trailing ticker and CIK annotation removed. Null when EDGAR supplies no name for the filing.","title":"Company"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exchange ticker as annotated by EDGAR on this filing, e.g. RIVN. Frequently null for companies still in registration, because no ticker is listed until they trade.","title":"Ticker"},"form":{"description":"EDGAR form type of this filing, e.g. S-1, S-1/A, F-1, F-1/A, 424B4, RW or AW. Empty string in the rare case EDGAR reports no form type.","title":"Form","type":"string"},"filed":{"description":"SEC filing date of this document, ISO-8601 YYYY-MM-DD in EDGAR's own time zone. Empty string if EDGAR reports no date.","title":"Filed","type":"string"},"url":{"description":"Link to the filing-index page for this accession on sec.gov, where the prospectus and exhibits are listed.","title":"Url","type":"string"}},"required":["accession","cik","company","ticker","form","filed","url"],"title":"IpoFiling","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed from EDGAR, ISO-8601 with milliseconds and a Z suffix. Filings made after it are not included.","title":"As Of","type":"string"},"window_days":{"description":"Length in days of the filing-date window ending today that was searched, echoing the days input.","title":"Window Days","type":"integer"},"count":{"description":"Number of filings in the filings list, i.e. after the limit was applied.","title":"Count","type":"integer"},"filings":{"description":"One entry per matching filing in the window, ordered by filing date, most recently filed first. Truncated to the requested limit.","items":{"$ref":"#/$defs/IpoFiling"},"title":"Filings","type":"array"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Plain-language caveat about what the returned form types do and do not cover. Null when this view has no extra caveat beyond the disclaimer.","title":"Note"},"method_id":{"default":"sec_ipo_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Registration and offering events from public SEC EDGAR filings; stage labels and the likely-IPO flag are deterministic heuristics, not offering advice. Not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"}},"required":["as_of","window_days","count","filings"],"title":"FilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"ipo_priced","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/ipo/priced","method":"GET","price_usd":0.02,"description":"Final 424(b)(4) prospectuses filed in a window — offerings that actually priced — each flagged likely_ipo when our 2021+ filing index shows no earlier 424(b) from the issuer (a first-ever pricing). 424(b) also covers follow-ons and shelf takedowns; the flag separates them heuristically.","buyer_use_case":"An agent tracking completed IPOs needs pricing events minus the follow-on noise.","when_to_use":"You act on completed pricings and want debuts distinguished.","when_not_to_use":"Registration starts — use the registrations endpoint.","avoids":["424(b) polling","follow-on disambiguation history joins"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":30,"description":"Length in days of the 424(b)(4) filing-date window ending today.","maximum":365,"minimum":1,"title":"Days","type":"integer"},"limit":{"default":50,"description":"Maximum offerings returned, most recently filed first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"PricedIn","type":"object"},"output_schema":{"$defs":{"PricedRow":{"properties":{"accession":{"description":"SEC accession number of this filing, formatted NNNNNNNNNN-NN-NNNNNN. Unique per filing and stable forever; use it to deduplicate across calls.","title":"Accession","type":"string"},"cik":{"description":"Filer's SEC CIK as a 10-digit zero-padded string, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name exactly as carried on the filing, with EDGAR's trailing ticker and CIK annotation removed. Null when EDGAR supplies no name for the filing.","title":"Company"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exchange ticker as annotated by EDGAR on this filing, e.g. RIVN. Frequently null for companies still in registration, because no ticker is listed until they trade.","title":"Ticker"},"form":{"description":"EDGAR form type of this filing, e.g. S-1, S-1/A, F-1, F-1/A, 424B4, RW or AW. Empty string in the rare case EDGAR reports no form type.","title":"Form","type":"string"},"filed":{"description":"SEC filing date of this document, ISO-8601 YYYY-MM-DD in EDGAR's own time zone. Empty string if EDGAR reports no date.","title":"Filed","type":"string"},"url":{"description":"Link to the filing-index page for this accession on sec.gov, where the prospectus and exhibits are listed.","title":"Url","type":"string"},"likely_ipo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True when our 2021+ SEC filing index shows no earlier 424(b) prospectus from this issuer, so the offering is plausibly a first-time IPO; false when an earlier one exists, indicating a follow-on or shelf takedown. Null when no index history is available to judge. A heuristic, not a confirmed IPO designation.","title":"Likely Ipo"}},"required":["accession","cik","company","ticker","form","filed","url"],"title":"PricedRow","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed from EDGAR, ISO-8601 with milliseconds and a Z suffix. Prospectuses filed after it are not included.","title":"As Of","type":"string"},"window_days":{"description":"Length in days of the 424(b)(4) filing-date window ending today that was searched, echoing the days input.","title":"Window Days","type":"integer"},"count":{"description":"Number of entries in the offerings list, i.e. after the limit was applied.","title":"Count","type":"integer"},"offerings":{"description":"One entry per 424(b)(4) final prospectus filed in the window, ordered by filing date, most recently filed first. Truncated to the requested limit.","items":{"$ref":"#/$defs/PricedRow"},"title":"Offerings","type":"array"},"note":{"default":"424(b) prospectuses cover IPOs, follow-ons and shelf takedowns; likely_ipo=true means our 2021+ filing index shows no earlier 424(b) from this issuer.","description":"Fixed caveat explaining that a 424(b)(4) filing is not by itself an IPO and how the likely_ipo flag should be read.","title":"Note","type":"string"},"method_id":{"default":"sec_ipo_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Registration and offering events from public SEC EDGAR filings; stage labels and the likely-IPO flag are deterministic heuristics, not offering advice. Not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"}},"required":["as_of","window_days","count","offerings"],"title":"PricedOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"ipo_withdrawn","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/ipo/withdrawn","method":"GET","price_usd":0.02,"description":"Registration withdrawal requests (RW) and applications (AW) filed in a window, newest first — deals that died. Withdrawals cover any registration statement, not only IPOs; the response says so.","buyer_use_case":"A sentiment or deal-tracking agent needs the dead-deal list without watching RW feeds.","when_to_use":"You track failed or pulled offerings as a market signal.","when_not_to_use":"Live pipeline state — use the calendar endpoint.","avoids":["RW/AW feed polling"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":60,"description":"Length in days of the RW/AW filing-date window ending today.","maximum":365,"minimum":1,"title":"Days","type":"integer"},"limit":{"default":50,"description":"Maximum withdrawal filings returned, most recently filed first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"WithdrawnIn","type":"object"},"output_schema":{"$defs":{"IpoFiling":{"properties":{"accession":{"description":"SEC accession number of this filing, formatted NNNNNNNNNN-NN-NNNNNN. Unique per filing and stable forever; use it to deduplicate across calls.","title":"Accession","type":"string"},"cik":{"description":"Filer's SEC CIK as a 10-digit zero-padded string, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name exactly as carried on the filing, with EDGAR's trailing ticker and CIK annotation removed. Null when EDGAR supplies no name for the filing.","title":"Company"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exchange ticker as annotated by EDGAR on this filing, e.g. RIVN. Frequently null for companies still in registration, because no ticker is listed until they trade.","title":"Ticker"},"form":{"description":"EDGAR form type of this filing, e.g. S-1, S-1/A, F-1, F-1/A, 424B4, RW or AW. Empty string in the rare case EDGAR reports no form type.","title":"Form","type":"string"},"filed":{"description":"SEC filing date of this document, ISO-8601 YYYY-MM-DD in EDGAR's own time zone. Empty string if EDGAR reports no date.","title":"Filed","type":"string"},"url":{"description":"Link to the filing-index page for this accession on sec.gov, where the prospectus and exhibits are listed.","title":"Url","type":"string"}},"required":["accession","cik","company","ticker","form","filed","url"],"title":"IpoFiling","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed from EDGAR, ISO-8601 with milliseconds and a Z suffix. Filings made after it are not included.","title":"As Of","type":"string"},"window_days":{"description":"Length in days of the filing-date window ending today that was searched, echoing the days input.","title":"Window Days","type":"integer"},"count":{"description":"Number of filings in the filings list, i.e. after the limit was applied.","title":"Count","type":"integer"},"filings":{"description":"One entry per matching filing in the window, ordered by filing date, most recently filed first. Truncated to the requested limit.","items":{"$ref":"#/$defs/IpoFiling"},"title":"Filings","type":"array"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Plain-language caveat about what the returned form types do and do not cover. Null when this view has no extra caveat beyond the disclaimer.","title":"Note"},"method_id":{"default":"sec_ipo_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Registration and offering events from public SEC EDGAR filings; stage labels and the likely-IPO flag are deterministic heuristics, not offering advice. Not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"}},"required":["as_of","window_days","count","filings"],"title":"FilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"kev_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/cyber/kev","method":"GET","price_usd":0.0,"description":"Search CISA's Known Exploited Vulnerabilities catalog — the ~1,700 CVEs confirmed exploited in the wild — by vendor, product, CVE id, ransomware linkage or date added, with the day-counts computed: days since CISA added it, days until (or past) the federal remediation deadline. CVE description prose is MITRE-licensed and is not redistributed; each entry links to the CVE record. Free.","buyer_use_case":"An agent triaging exposure needs to know whether a CVE is actually being exploited and how urgent the remediation clock is, not just that a CVE exists.","when_to_use":"You need to know whether a vulnerability is actively exploited and how urgent it is.","when_not_to_use":"CVE description text or full CVSS detail — follow cve_url; the catalog covers exploited CVEs only, not all published vulnerabilities.\n","avoids":["downloading and filtering the KEV JSON","deadline date arithmetic"],"input_schema":{"additionalProperties":false,"properties":{"vendor":{"anyOf":[{"maxLength":60,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the CISA vendor/project name, e.g. Microsoft. Omit for all vendors.","title":"Vendor"},"product":{"anyOf":[{"maxLength":60,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the CISA product name, e.g. Exchange Server. Omit for all products.","title":"Product"},"cve_id":{"anyOf":[{"pattern":"^(?i:CVE)-\\d{4}-\\d{4,7}$","type":"string"},{"type":"null"}],"default":null,"description":"Exact CVE identifier, e.g. CVE-2021-44228. A CVE that is not in the KEV catalog returns zero entries, not an error.","title":"Cve Id"},"ransomware_only":{"default":false,"description":"True returns only CVEs CISA marks as known-used in ransomware campaigns. Default false.","title":"Ransomware Only","type":"boolean"},"added_since":{"anyOf":[{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"Earliest KEV catalog addition date to include, as YYYY-MM-DD, e.g. 2026-01-01. Omit for the whole catalog.","title":"Added Since"},"limit":{"default":25,"description":"Maximum entries returned, most recently added to the catalog first; matched reports the full number of hits.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"KevIn","type":"object"},"output_schema":{"$defs":{"KevEntry":{"properties":{"cve_id":{"description":"CVE identifier of the exploited vulnerability, formatted CVE-YYYY-NNNN with four to seven digits, e.g. CVE-2021-44228. Empty only if CISA omitted the id.","title":"Cve Id","type":"string"},"vendor":{"description":"Vendor or project that publishes the affected product, exactly as CISA spells it (e.g. Microsoft, Apache, Cisco). Free text, not a controlled vocabulary.","title":"Vendor","type":"string"},"product":{"description":"Affected product name as CISA spells it (e.g. Exchange Server, Log4j2). Free text, not a controlled vocabulary; one CVE maps to exactly one vendor/product row.","title":"Product","type":"string"},"vulnerability_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Short CISA-authored title for the vulnerability, e.g. 'Apache Log4j2 Remote Code Execution Vulnerability'. Null when CISA supplies no name. This is not the MITRE-authored CVE description, which is not redistributed here.","title":"Vulnerability Name"},"date_added":{"description":"ISO-8601 date (YYYY-MM-DD) on which CISA added this CVE to the KEV catalog, i.e. when known exploitation was published — not when the CVE was disclosed.","title":"Date Added","type":"string"},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 date (YYYY-MM-DD) by which BOD 22-01 requires US federal civilian agencies to remediate this CVE. Null when CISA sets no deadline. It is a federal obligation date, unrelated to date_added beyond usually following it.","title":"Due Date"},"days_since_added":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days elapsed from date_added to today (UTC); 0 the day it was added, growing with age. Null when date_added is missing or unparseable.","title":"Days Since Added"},"days_until_due":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) until due_date: positive while the federal deadline is ahead, 0 on the deadline, negative once it has passed. Null when due_date is missing or unparseable.","title":"Days Until Due"},"past_due":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the federal remediation deadline has already passed (days_until_due is negative), false while it is still ahead. Null when there is no usable due_date.","title":"Past Due"},"known_ransomware_use":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when CISA marks this CVE as Known to be used in ransomware campaigns, false when CISA marks it Unknown. Null when CISA records neither value. False means 'not known to CISA', not 'confirmed unused'.","title":"Known Ransomware Use"},"required_action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CISA-authored remediation instruction for this entry, e.g. 'Apply mitigations per vendor instructions or discontinue use.' Null when CISA supplies none.","title":"Required Action"},"cwes":{"description":"CWE weakness-type identifiers CISA associates with this CVE, each formatted CWE-N (e.g. CWE-78). Empty list when CISA lists none; order is as CISA lists them.","items":{"type":"string"},"title":"Cwes","type":"array"},"cve_url":{"description":"Link to the authoritative CVE record on cve.org, where the MITRE-authored description and references live. Empty string when the entry carries no CVE id.","title":"Cve Url","type":"string"}},"required":["cve_id","vendor","product","vulnerability_name","date_added","due_date","days_since_added","days_until_due","past_due","known_ransomware_use","required_action","cwes","cve_url"],"title":"KevEntry","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp (ISO-8601, milliseconds, Z-suffixed) at which this response was produced; day-counts in each entry are measured against this date.","title":"As Of","type":"string"},"catalog_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CISA's own version stamp for the catalog edition served here, e.g. 2026.09.02. Null if CISA omits it. Use it to tell two responses apart.","title":"Catalog Version"},"catalog_released":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 timestamp at which CISA published this catalog edition, i.e. the data vintage. Null if CISA omits it; it is always at or before as_of.","title":"Catalog Released"},"catalog_size":{"description":"Total number of CVE entries in the whole KEV catalog edition, before any filter in this request was applied.","title":"Catalog Size","type":"integer"},"matched":{"description":"Number of catalog entries matching every filter in the request, before the limit is applied. Compare with count to detect truncation.","title":"Matched","type":"integer"},"count":{"description":"Number of entries actually returned in this response: matched capped at limit.","title":"Count","type":"integer"},"entries":{"description":"Matching KEV entries, one per CVE/vendor/product row, ordered by catalog addition date descending — most recently added first.","items":{"$ref":"#/$defs/KevEntry"},"title":"Entries","type":"array"},"note":{"default":"Day-counts are computed from the federal remediation deadline CISA sets for agencies; they are a severity/urgency signal for everyone else, not an obligation.","description":"Fixed interpretation note explaining that the remediation deadline binds US federal civilian agencies only, and is an urgency signal for everyone else.","title":"Note","type":"string"},"source":{"default":"CISA Known Exploited Vulnerabilities catalog","description":"Human-readable name of the upstream dataset these entries come from.","title":"Source","type":"string"},"disclaimer":{"default":"Source data from CISA (US federal public domain), retrieved at as_of; groupings and day-counts are computed by AnswerPool. CVE description text is authored by the MITRE CVE Program and is deliberately not redistributed here — follow cve_url for it. Not security advice; KEV inclusion means known exploitation, not that you are exposed.","description":"Fixed attribution and use terms: what CISA authored versus what AnswerPool computed, why CVE description prose is absent, and that this is not security advice.","title":"Disclaimer","type":"string"}},"required":["as_of","catalog_version","catalog_released","catalog_size","matched","count","entries"],"title":"KevOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"kev_stats","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/cyber/kev/stats","method":"GET","price_usd":0.0,"description":"Computed shape of the exploited-vulnerability catalog: which vendors appear most, both all-time and inside your window; additions by month; the most common weakness types (CWE); how much of the catalog is ransomware-linked; and how many entries are past their federal deadline. The aggregation no wrapper does. Free.","buyer_use_case":"An agent or analyst wants to know where real-world exploitation is concentrating rather than pulling 1,700 records and grouping them by hand.","when_to_use":"You want the distribution and trend of real-world exploitation.","when_not_to_use":"A specific CVE or vendor lookup — /v1/cyber/kev.","avoids":["downloading 1","700 records to group them","month bucketing","CWE tallying"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":90,"description":"Length in days of the recent-additions window, counted back from today; the all-time totals ignore it. Default 90.","maximum":730,"minimum":7,"title":"Days","type":"integer"},"top":{"default":10,"description":"How many rows to return in each ranked list (vendors all-time, vendors in window, CWEs), ordered by count descending. Default 10.","maximum":50,"minimum":1,"title":"Top","type":"integer"}},"title":"KevStatsIn","type":"object"},"output_schema":{"$defs":{"CountRow":{"properties":{"key":{"description":"The grouping label, whose vocabulary depends on the list this row belongs to: a CISA vendor/project name, a calendar month as YYYY-MM, or a CWE id such as CWE-78.","title":"Key","type":"string"},"count":{"description":"Number of KEV catalog entries falling under this key within that list's scope (whole catalog, or the recent-additions window).","title":"Count","type":"integer"}},"required":["key","count"],"title":"CountRow","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp (ISO-8601, milliseconds, Z-suffixed) at which these aggregates were computed; the recent-additions window is measured back from this date.","title":"As Of","type":"string"},"catalog_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CISA's own version stamp for the catalog edition aggregated here, e.g. 2026.09.02. Null if CISA omits it.","title":"Catalog Version"},"catalog_size":{"description":"Total number of CVE entries in the catalog edition these aggregates cover.","title":"Catalog Size","type":"integer"},"window_days":{"description":"Length in days of the recent-additions window, echoing the request; it bounds added_in_window and top_vendors_in_window only.","title":"Window Days","type":"integer"},"added_in_window":{"description":"Number of CVEs CISA added to the catalog within the last window_days days, counting back from as_of.","title":"Added In Window","type":"integer"},"ransomware_linked_total":{"description":"Number of entries in the whole catalog that CISA marks as Known to be used in ransomware campaigns. Not limited to the window.","title":"Ransomware Linked Total","type":"integer"},"ransomware_share_pct":{"description":"ransomware_linked_total as a percentage of catalog_size, rounded to one decimal place; 17.0 means 17 percent of catalogued entries are ransomware-linked.","title":"Ransomware Share Pct","type":"number"},"past_due_total":{"description":"Number of entries across the whole catalog whose federal remediation deadline already fell before as_of. Most of an aging catalog sits here.","title":"Past Due Total","type":"integer"},"top_vendors_all_time":{"description":"Vendors ranked by how many of their entries appear in the whole catalog, count descending; one row per vendor, at most the requested number of rows. Entries with no vendor name are grouped under the key Unknown.","items":{"$ref":"#/$defs/CountRow"},"title":"Top Vendors All Time","type":"array"},"top_vendors_in_window":{"description":"Same ranking as top_vendors_all_time but counting only entries added within the last window_days days, count descending.","items":{"$ref":"#/$defs/CountRow"},"title":"Top Vendors In Window","type":"array"},"additions_by_month":{"description":"Catalog additions per calendar month, one row per month keyed YYYY-MM, in chronological ascending order and covering at most the 24 most recent months present. Independent of window_days and of the ranked-list row limit.","items":{"$ref":"#/$defs/CountRow"},"title":"Additions By Month","type":"array"},"top_cwes":{"description":"Most common CWE weakness types across the whole catalog, keyed CWE-N and ordered by count descending, at most the requested number of rows. An entry with several CWEs counts toward each of them.","items":{"$ref":"#/$defs/CountRow"},"title":"Top Cwes","type":"array"},"note":{"default":"Counts are AnswerPool aggregates over the CISA catalog: which vendors' products are most often found exploited, how additions are trending, and how much of the catalog is ransomware-linked. Counts reflect what CISA has catalogued, which is a floor on real exploitation, not a census.","description":"Fixed interpretation note: these are aggregates over what CISA has catalogued, which is a floor on real-world exploitation rather than a census of it.","title":"Note","type":"string"},"source":{"default":"CISA Known Exploited Vulnerabilities catalog","description":"Human-readable name of the upstream dataset these aggregates are computed over.","title":"Source","type":"string"},"disclaimer":{"default":"Source data from CISA (US federal public domain), retrieved at as_of; groupings and day-counts are computed by AnswerPool. CVE description text is authored by the MITRE CVE Program and is deliberately not redistributed here — follow cve_url for it. Not security advice; KEV inclusion means known exploitation, not that you are exposed.","description":"Fixed attribution and use terms: what CISA authored versus what AnswerPool computed, why CVE description prose is absent, and that this is not security advice.","title":"Disclaimer","type":"string"}},"required":["as_of","catalog_version","catalog_size","window_days","added_in_window","ransomware_linked_total","ransomware_share_pct","past_due_total","top_vendors_all_time","top_vendors_in_window","additions_by_month","top_cwes"],"title":"KevStatsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"macro_indicators","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/macro/indicators","method":"GET","price_usd":0.0,"description":"Curated directory of the headline US macro indicators — CPI, core CPI, unemployment, participation, nonfarm payrolls, average hourly earnings, PPI, JOLTS openings — with the exact BLS series id each one lives under (verified against the live API). The resolution layer for macro questions: BLS series ids are unguessable. Free, static.","buyer_use_case":"An agent asked a macro question needs the right BLS series id before fetching data — this maps indicator names to verified ids in one call.","when_to_use":"You need the BLS series id or unit behind a headline indicator name.","when_not_to_use":"The actual numbers — /v1/macro/series or /v1/macro/snapshot.","avoids":["BLS series-id guessing","data-finder crawling"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":60,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive filter matched against the indicator code and name, or an exact BLS series id, e.g. cpi. Omit for the full directory.","title":"Q"}},"title":"IndicatorsIn","type":"object"},"output_schema":{"$defs":{"Indicator":{"properties":{"code":{"description":"Stable AnswerPool short code for the indicator, one of: cpi, core_cpi, unemployment_rate, participation_rate, nonfarm_payrolls, avg_hourly_earnings, ppi_final_demand, job_openings.","title":"Code","type":"string"},"series_id":{"description":"Exact BLS series id this indicator lives under, e.g. CUUR0000SA0 for CPI-U. Pass it verbatim to /v1/macro/series.","title":"Series Id","type":"string"},"name":{"description":"Human-readable BLS series title, including the seasonal-adjustment marker: SA for seasonally adjusted, NSA for not seasonally adjusted.","title":"Name","type":"string"},"unit":{"description":"Unit the series values carry — one of: 'index 1982-84=100' (CPI, core CPI), 'index Nov 2009=100' (PPI), 'percent' (unemployment, participation), 'thousands of jobs' (payrolls), 'thousands' (job openings), 'dollars' (hourly earnings).","title":"Unit","type":"string"}},"required":["code","series_id","name","unit"],"title":"Indicator","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp (ISO-8601, milliseconds, Z-suffixed) at which this directory response was produced. The directory itself is a curated, slow-changing list.","title":"As Of","type":"string"},"count":{"description":"Number of indicators returned, after any filter in the request; at most the eight headline indicators in the directory.","title":"Count","type":"integer"},"indicators":{"description":"One row per headline indicator, each mapping a short code to its verified BLS series id and unit. Ordered in the directory's fixed curated order (prices first, then labor force, payrolls and earnings, then PPI and job openings), not ranked.","items":{"$ref":"#/$defs/Indicator"},"title":"Indicators","type":"array"},"series_endpoint":{"default":"/v1/macro/series?series_id=<id>","description":"URL template for fetching observations of any listed series: substitute a series_id from this directory for the <id> placeholder.","title":"Series Endpoint","type":"string"},"source":{"default":"U.S. Bureau of Labor Statistics (api.bls.gov)","description":"Human-readable name of the upstream statistical agency and API behind this data.","title":"Source","type":"string"},"disclaimer":{"default":"Data from the U.S. Bureau of Labor Statistics, retrieved at as_of. BLS.gov cannot vouch for the data or analyses derived from these data after retrieval. Not investment advice.","description":"Fixed BLS attribution and use terms: the retrieval-time citation, the BLS cannot-vouch statement for derived data, and that this is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","indicators"],"title":"IndicatorsOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"macro_series","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/macro/series","method":"GET","price_usd":0.0,"description":"Fetches any BLS series by id and returns normalized points plus derived statistics — latest value, year-over-year percent change, change from prior period — computed consistently so agents skip the period-matching arithmetic. Cached hard. Free.","buyer_use_case":"An agent needs a macro time series as clean JSON with the YoY math already done — CPI inflation rate, wage growth, payroll changes.","when_to_use":"You have a series id (see /v1/macro/indicators) and want clean points + derived stats.","when_not_to_use":"All headline indicators at once — /v1/macro/snapshot.","avoids":["BLS response parsing","YoY period-matching arithmetic"],"input_schema":{"additionalProperties":false,"properties":{"series_id":{"description":"BLS series id, alphanumeric and case-insensitive, e.g. CUUR0000SA0; get one from /v1/macro/indicators. An id BLS returns no data for is a 400.","maxLength":30,"minLength":6,"pattern":"^[A-Za-z0-9]+$","title":"Series Id","type":"string"},"years":{"default":3,"description":"How many calendar years back from the current year to request. Default 3.","maximum":10,"minimum":1,"title":"Years","type":"integer"}},"required":["series_id"],"title":"SeriesIn","type":"object"},"output_schema":{"$defs":{"Point":{"properties":{"year":{"description":"Four-digit calendar year the observation belongs to, e.g. 2026.","title":"Year","type":"integer"},"period":{"description":"BLS period code within the year: M01-M12 for January-December, M13 for an annual average, Q01-Q04 for quarters and Q05 for the annual figure, S01/S02/S03 for semiannual, A01 for annual. Which codes appear depends on the series' frequency.","title":"Period","type":"string"},"period_name":{"description":"Human-readable name of the period, e.g. 'July', '1st Quarter' or 'Annual'. Falls back to the raw period code when BLS supplies no name.","title":"Period Name","type":"string"},"value":{"description":"The observation itself, in the series' own unit — an index level, a percent, thousands of jobs or dollars. The unit is not repeated here; read it from /v1/macro/indicators or the snapshot's unit field.","title":"Value","type":"number"}},"required":["year","period","period_name","value"],"title":"Point","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp (ISO-8601, milliseconds, Z-suffixed) at which this series was retrieved from BLS. Observations published after it are not reflected here.","title":"As Of","type":"string"},"series_id":{"description":"The BLS series id these observations belong to, upper-cased, e.g. LNS14000000.","title":"Series Id","type":"string"},"count":{"description":"Number of observations in points, i.e. how many periods BLS published inside the requested span of calendar years.","title":"Count","type":"integer"},"latest":{"anyOf":[{"$ref":"#/$defs/Point"},{"type":"null"}],"description":"Most recently published observation, the same object as the first element of points; the reference point for yoy_pct and change_from_prior_period."},"yoy_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Percent change of the latest value against the same period one calendar year earlier, rounded to two decimals. For an index series this is the inflation rate; for a series already measured in percent it is a relative change, not percentage points. Null when that year-earlier period is not in the requested span.","title":"Yoy Pct"},"change_from_prior_period":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Latest value minus the immediately preceding published observation, rounded to two decimals and carried in the series' own unit (percentage points for a rate, index points for an index, thousands of jobs for payrolls). Null with fewer than two observations.","title":"Change From Prior Period"},"points":{"description":"One element per published period, ordered newest first — the most recent observation is points[0] and time runs backwards through the list.","items":{"$ref":"#/$defs/Point"},"title":"Points","type":"array"},"source":{"default":"U.S. Bureau of Labor Statistics (api.bls.gov)","description":"Human-readable name of the upstream statistical agency and API behind this data.","title":"Source","type":"string"},"disclaimer":{"default":"Data from the U.S. Bureau of Labor Statistics, retrieved at as_of. BLS.gov cannot vouch for the data or analyses derived from these data after retrieval. Not investment advice.","description":"Fixed BLS attribution and use terms: the retrieval-time citation, the BLS cannot-vouch statement for derived data, and that this is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","series_id","count","latest","yoy_pct","change_from_prior_period","points"],"title":"SeriesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"macro_snapshot","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/macro/snapshot","method":"GET","price_usd":0.0,"description":"The eight headline US indicators — CPI and core CPI YoY, unemployment, participation, payroll change, wage growth, PPI YoY, JOLTS openings — fetched in one batched BLS call with derived stats, cached. The single request an agent makes before any US-economy reasoning. Free.","buyer_use_case":"An agent needs the current state of the US economy as one structured object instead of eight series fetches and hand math.","when_to_use":"You want the current headline macro picture in one request.","when_not_to_use":"Deep history of one series — /v1/macro/series.","avoids":["eight separate series fetches","YoY arithmetic","series-id lookup"],"input_schema":{"additionalProperties":false,"properties":{},"title":"SnapshotIn","type":"object"},"output_schema":{"$defs":{"SnapshotIndicator":{"properties":{"code":{"description":"Stable AnswerPool short code for the indicator, one of: cpi, core_cpi, unemployment_rate, participation_rate, nonfarm_payrolls, avg_hourly_earnings, ppi_final_demand, job_openings.","title":"Code","type":"string"},"name":{"description":"Human-readable BLS series title, including the seasonal-adjustment marker: SA for seasonally adjusted, NSA for not seasonally adjusted.","title":"Name","type":"string"},"unit":{"description":"Unit that latest_value carries — one of: 'index 1982-84=100' (CPI, core CPI), 'index Nov 2009=100' (PPI), 'percent' (unemployment, participation), 'thousands of jobs' (payrolls), 'thousands' (job openings), 'dollars' (hourly earnings).","title":"Unit","type":"string"},"latest_value":{"description":"Most recently published observation for this indicator, expressed in unit — an index level, not a growth rate, for the index series.","title":"Latest Value","type":"number"},"latest_period":{"description":"Period that latest_value refers to, as period name and year, e.g. 'July 2026'. Indicators publish on different schedules, so these need not all be the same month.","title":"Latest Period","type":"string"},"yoy_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Percent change of latest_value against the same period one calendar year earlier, rounded to two decimals — the inflation rate for the index series, a relative change (not percentage points) for a series already measured in percent. Null when the year-earlier period has not been published.","title":"Yoy Pct"},"change_from_prior_period":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"latest_value minus the immediately preceding published observation, rounded to two decimals and carried in unit — e.g. thousands of jobs added for payrolls, percentage points for a rate. Null when only one observation exists.","title":"Change From Prior Period"}},"required":["code","name","unit","latest_value","latest_period","yoy_pct","change_from_prior_period"],"title":"SnapshotIndicator","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp (ISO-8601, milliseconds, Z-suffixed) at which the whole snapshot was retrieved from BLS, in one batched request.","title":"As Of","type":"string"},"count":{"description":"Number of indicators carrying data in this snapshot, at most eight; an indicator BLS published nothing recent for is omitted rather than returned empty.","title":"Count","type":"integer"},"indicators":{"description":"One element per headline indicator that has recent data, each with its latest value and derived changes. Ordered in the fixed curated order (prices first, then labor force, payrolls and earnings, then PPI and job openings), not ranked.","items":{"$ref":"#/$defs/SnapshotIndicator"},"title":"Indicators","type":"array"},"source":{"default":"U.S. Bureau of Labor Statistics (api.bls.gov)","description":"Human-readable name of the upstream statistical agency and API behind this data.","title":"Source","type":"string"},"disclaimer":{"default":"Data from the U.S. Bureau of Labor Statistics, retrieved at as_of. BLS.gov cannot vouch for the data or analyses derived from these data after retrieval. Not investment advice.","description":"Fixed BLS attribution and use terms: the retrieval-time citation, the BLS cannot-vouch statement for derived data, and that this is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","indicators"],"title":"SnapshotOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"nih_activity_codes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/nih/activity-codes","method":"GET","price_usd":0.0,"description":"Common NIH activity codes — R01, R21, K99/R00, U01, P30, SBIR/STTR and more — with the mechanism name and a one-line meaning, searchable in one call. Decodes the code on every NIH grant record. Free, static.","buyer_use_case":"An agent parsing NIH awards hits an activity code and needs to know what funding mechanism it represents (career award vs center vs small business).","when_to_use":"You have an NIH activity code to decode or want the standard mechanisms for a career stage or program type.\n","when_not_to_use":"Non-NIH agencies (NSF and others use different schemes).","avoids":["NIH grants-policy page reading","mechanism confusion"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":60,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring matched against each entry's code, name and description, e.g. R01 or cancer. Omit for the full list.","title":"Q"}},"title":"RefIn","type":"object"},"output_schema":{"$defs":{"RefEntry":{"properties":{"code":{"description":"The NIH code this entry decodes: an institute or center abbreviation such as NCI, NHLBI or OD from the institutes view, or a grant activity code such as R01, K99 or U54 from the activity-codes view.","title":"Code","type":"string"},"name":{"description":"Official expansion of the code: the full institute or center name, or the name of the grant mechanism the activity code stands for.","title":"Name","type":"string"},"description":{"description":"One-line plain-language meaning: the institute's research focus, or what the funding mechanism is for and its typical scope.","title":"Description","type":"string"}},"required":["code","name","description"],"title":"RefEntry","type":"object"}},"properties":{"as_of":{"description":"UTC ISO-8601 timestamp with milliseconds and a Z suffix, marking when this response was generated. The glossary itself is static, so it is not a data date.","title":"As Of","type":"string"},"count":{"description":"Number of glossary entries matching the query, equal to the length of `entries`. With no query this is the full size of the glossary.","title":"Count","type":"integer"},"entries":{"description":"One entry per matching institute/center or activity code. Order follows the curated glossary (institutes then centers; activity codes grouped by series), not alphabetical or relevance order, and filtering preserves it.","items":{"$ref":"#/$defs/RefEntry"},"title":"Entries","type":"array"},"disclaimer":{"default":"NIH reference data (US federal public domain); not medical or grant advice.","description":"Fixed rights and scope notice: the glossary is US federal public-domain NIH reference material and is not medical or grant advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","entries"],"title":"RefOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"nih_institute_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/nih/institutes","method":"GET","price_usd":0.0,"description":"The 27 NIH institutes and centers — code (NCI, NHLBI, …), full name and research focus — searchable in one call. The institute code keys NIH funding queries and grant records. Free, static, no upstream calls.","buyer_use_case":"An agent reading NIH grant data hits an institute code and needs what it is and what it funds, or needs to pick the right institute for a research area.","when_to_use":"You have an NIH institute code to decode, or a research area to map to its funding institute.\n","when_not_to_use":"Actual grant/project searches — use /v1/funding/signals (NIH RePORTER data).","avoids":["NIH org-page crawling","institute code guessing"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":60,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring matched against each entry's code, name and description, e.g. R01 or cancer. Omit for the full list.","title":"Q"}},"title":"RefIn","type":"object"},"output_schema":{"$defs":{"RefEntry":{"properties":{"code":{"description":"The NIH code this entry decodes: an institute or center abbreviation such as NCI, NHLBI or OD from the institutes view, or a grant activity code such as R01, K99 or U54 from the activity-codes view.","title":"Code","type":"string"},"name":{"description":"Official expansion of the code: the full institute or center name, or the name of the grant mechanism the activity code stands for.","title":"Name","type":"string"},"description":{"description":"One-line plain-language meaning: the institute's research focus, or what the funding mechanism is for and its typical scope.","title":"Description","type":"string"}},"required":["code","name","description"],"title":"RefEntry","type":"object"}},"properties":{"as_of":{"description":"UTC ISO-8601 timestamp with milliseconds and a Z suffix, marking when this response was generated. The glossary itself is static, so it is not a data date.","title":"As Of","type":"string"},"count":{"description":"Number of glossary entries matching the query, equal to the length of `entries`. With no query this is the full size of the glossary.","title":"Count","type":"integer"},"entries":{"description":"One entry per matching institute/center or activity code. Order follows the curated glossary (institutes then centers; activity codes grouped by series), not alphabetical or relevance order, and filtering preserves it.","items":{"$ref":"#/$defs/RefEntry"},"title":"Entries","type":"array"},"disclaimer":{"default":"NIH reference data (US federal public domain); not medical or grant advice.","description":"Fixed rights and scope notice: the glossary is US federal public-domain NIH reference material and is not medical or grant advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","entries"],"title":"RefOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"peers_industry","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/peers/industry","method":"GET","price_usd":0.02,"description":"The roster of SEC registrants sharing one SIC industry code (given directly or resolved from a ticker/CIK), joined to corpus-wide XBRL frames for total assets and revenue, sorted largest first. The raw candidate set behind the peer ranking.","buyer_use_case":"An agent maps an industry's public players by size before deeper analysis.","when_to_use":"You want the industry's public players and their scale, fast.","when_not_to_use":"Ranked similarity to one company — use the peers endpoint.","avoids":["SIC directory scraping","frames joins","size aggregation"],"input_schema":{"additionalProperties":false,"properties":{"sic":{"anyOf":[{"maximum":9999,"minimum":100,"type":"integer"},{"type":"null"}],"default":null,"description":"SEC SIC industry code, 3 or 4 digits, e.g. 3571 (see /v1/sec/sic). Takes precedence over ticker and cik, which are only used to look one up.","title":"Sic"},"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL), used to look up the registrant's SIC. Ignored when sic is given; otherwise send ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193), used to look up the registrant's SIC. Ignored when sic is given; otherwise send cik or ticker.","title":"Cik"},"limit":{"default":50,"description":"Maximum registrants returned from the industry, ordered by reported total assets descending. Default 50.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"IndustryIn","type":"object"},"output_schema":{"$defs":{"IndustryRow":{"properties":{"cik":{"description":"SEC Central Index Key of this registrant, 10 digits zero-padded (e.g. 0000320193). Use it directly against the other SEC endpoints.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker from the SEC company-ticker map. Null when the registrant has no ticker there (unlisted or non-equity filers).","title":"Ticker"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC data reports it. Null in the rare case neither the ticker map nor the XBRL frame carried a name for this CIK.","title":"Name"},"assets_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total assets in US dollars at the end of frame_year (us-gaap Assets, instant). Null when this registrant filed no such fact for the period.","title":"Assets Usd"},"revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Revenue in US dollars for the whole of frame_year. Null when the registrant reported no calendar-year revenue fact, common for off-calendar fiscal years.","title":"Revenue Usd"}},"required":["cik","ticker","name","assets_usd","revenue_usd"],"title":"IndustryRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, Z suffix) at which this response was assembled. The figures themselves are as of frame_year.","title":"As Of","type":"string"},"sic":{"description":"SEC Standard Industrial Classification code whose roster this is, 3 or 4 digits (e.g. 3571) - either the code you sent or the one looked up from your ticker/CIK.","title":"Sic","type":"integer"},"frame_year":{"description":"Four-digit calendar year of the SEC XBRL frames the assets and revenue figures come from: the most recent complete calendar year with data available.","title":"Frame Year","type":"integer"},"count":{"description":"Number of registrant rows actually returned in companies.","title":"Count","type":"integer"},"companies":{"description":"One entry per registrant EDGAR lists under this SIC code, ordered by total assets descending (largest first); registrants with no assets figure sort last.","items":{"$ref":"#/$defs/IndustryRow"},"title":"Companies","type":"array"},"method_id":{"default":"sec_peers_rules_v1","description":"Versioned identifier of the method that assembled this roster; a change to the method changes this value.","title":"Method Id","type":"string"},"disclaimer":{"default":"Similarity computed from public SEC XBRL facts and industry codes; a peer ranking is an analytical signal, not investment advice.","description":"Terms of use and the analytical (non-advice) nature of this industry roster.","title":"Disclaimer","type":"string"}},"required":["as_of","sic","frame_year","count","companies"],"title":"IndustryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"peers_percentile","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/peers/percentile","method":"GET","price_usd":0.05,"description":"Percentile and rank for a company against its quantitative peer group on revenue, assets, net income and net margin, with the peer median, minimum and maximum for each. Answers \"is this good or bad for its size class?\" in one call instead of fetching the peer list and then every peer's fundamentals. A metric is null when the company did not report it in the frame year rather than imputed.","buyer_use_case":"An agent judging a company needs its standing among comparables, not raw figures it has to benchmark itself with N further calls.","when_to_use":"You need a company's standing relative to comparables, quantitatively.","when_not_to_use":"Just the peer list (/v1/peers/similar) or the company's own figures (/v1/sec/xbrl/financials, /v1/sec/xbrl/ratios).\n","avoids":["N peer fundamentals lookups","hand-built percentile math","mismatched frame years"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker of the company being ranked, case-insensitive (e.g. AAPL). Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK of the company being ranked, 1-10 digits, zero padding optional (e.g. 320193). Provide exactly one of cik or ticker.","title":"Cik"},"peers":{"default":20,"description":"How many same-industry peers form the comparison set the percentiles are computed against. Default 20.","maximum":50,"minimum":3,"title":"Peers","type":"integer"}},"title":"PercentileIn","type":"object"},"output_schema":{"$defs":{"PercentileRow":{"properties":{"metric":{"description":"Which figure this row ranks. One of: 'revenue', 'assets', 'net_income', 'margin'.","title":"Metric","type":"string"},"definition":{"description":"Plain-English definition of the metric as measured here, e.g. 'Net income / revenue', so a caller need not guess what was compared.","title":"Definition","type":"string"},"higher_is_better":{"description":"True when a larger value, and so a higher percentile, is the favourable direction for this metric. Tells you which way to read percentile and rank.","title":"Higher Is Better","type":"boolean"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"The target company's own figure for this metric: US dollars for revenue, assets and net_income, a ratio for margin (0.25 means 25%). Null when the target reported no such figure for the frame year; it is never imputed.","title":"Value"},"percentile":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Where the target sits in its peer group on a 0-100 scale: the share of compared peers whose value is at or below the target's, so 50 is typical for the group and 100 is top of the group. Null when value or peers_compared is missing.","title":"Percentile"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The target's position among itself and the compared peers by this metric, 1 meaning no peer reported a larger value. Null whenever percentile is null.","title":"Rank"},"peers_compared":{"description":"How many peers reported this metric and so form the denominator behind percentile, rank, median, min and max. Can be smaller than peer_group_size.","title":"Peers Compared","type":"integer"},"peer_median":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Middle value among the compared peers (the upper of the two middles when the count is even), in the same units as value. Null when no peer reported it.","title":"Peer Median"},"peer_min":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest value among the compared peers, in the same units as value. Null when no peer reported this metric.","title":"Peer Min"},"peer_max":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Largest value among the compared peers, in the same units as value. Null when no peer reported this metric.","title":"Peer Max"}},"required":["metric","definition","higher_is_better","value","percentile","rank","peers_compared","peer_median","peer_min","peer_max"],"title":"PercentileRow","type":"object"},"TargetBlock":{"properties":{"cik":{"description":"SEC Central Index Key of the company the comparison is built around, 10 digits zero-padded (e.g. 0000320193).","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker of the target from the SEC company-ticker map. Null when the registrant has no ticker there.","title":"Ticker"},"name":{"description":"Registrant name of the target exactly as EDGAR carries it on its filings.","title":"Name","type":"string"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC Standard Industrial Classification code of the target, normally 4 digits (e.g. 3571), as a string. This code defines the industry the peers were drawn from.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC's plain-English name for that SIC code, e.g. 'Electronic Computers'. Null when EDGAR supplies no description for the code.","title":"Sic Description"},"assets_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's total assets in US dollars at the end of frame_year, on the same basis as the peer rows. Null when it reported no such fact for that period.","title":"Assets Usd"},"revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's revenue in US dollars for the whole of frame_year. Null when it reported no calendar-year revenue fact.","title":"Revenue Usd"},"margin":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's net profit margin as a ratio (0.25 means 25%), net income over revenue. Null when either figure is missing or revenue is not positive.","title":"Margin"}},"required":["cik","ticker","name","sic","sic_description","assets_usd","revenue_usd","margin"],"title":"TargetBlock","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, Z suffix) at which this response was assembled. The figures compared are as of frame_year.","title":"As Of","type":"string"},"target":{"$ref":"#/$defs/TargetBlock","description":"The company being ranked, with its identifiers, industry and headline figures."},"frame_year":{"description":"Four-digit calendar year of the SEC XBRL frames both the target and every peer figure are drawn from, so all comparisons are same-period.","title":"Frame Year","type":"integer"},"peer_group_size":{"description":"How many peer companies form the comparison set. May be smaller than the number requested when the industry holds fewer registrants with usable figures.","title":"Peer Group Size","type":"integer"},"peer_selection":{"default":"Same-SIC registrants with XBRL frame data, ranked by size/margin distance; the nearest peers form the comparison set (same method as /v1/peers/similar).","description":"States exactly which companies the percentiles are measured against, the boundary that decides what 'typical' means in this response.","title":"Peer Selection","type":"string"},"metrics":{"description":"One entry per ranked metric, always in the same fixed order: revenue, assets, net_income, margin. Not sorted by score.","items":{"$ref":"#/$defs/PercentileRow"},"title":"Metrics","type":"array"},"method":{"default":"sec_peers_rules_v1","description":"Versioned identifier of the peer-selection and ranking method. Percentiles are only comparable across responses sharing this value.","title":"Method","type":"string"},"note":{"default":"Percentile is the share of the peer group at or below the target for that metric, so 50 is typical for the group and 100 is the highest. A metric is null when the target did not report it in the frame year rather than imputed.","description":"How to read the percentile scale and what a null metric means.","title":"Note","type":"string"},"disclaimer":{"default":"Similarity computed from public SEC XBRL facts and industry codes; a peer ranking is an analytical signal, not investment advice.","description":"Terms of use and the analytical (non-advice) nature of these percentiles.","title":"Disclaimer","type":"string"}},"required":["as_of","target","frame_year","peer_group_size","metrics"],"title":"PercentileOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"peers_similar","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/peers/similar","method":"GET","price_usd":0.05,"description":"Ranks the target's SIC-industry candidates by similarity computed from the full SEC XBRL corpus: log-scale distance on total assets and revenue plus profit-margin distance, with explicit penalties for missing data. Every peer row shows the numbers the ranking used (assets, revenue, net income, margin, distance, similarity). Caveat stated plainly: annual revenue frames cover calendar-fiscal-year filers; off-calendar filers rank mostly on assets.","buyer_use_case":"An agent needs a defensible comparable-company set as the building block for almost any analysis — without loading the whole XBRL corpus and building a similarity model.","when_to_use":"You need a comparable set — valuation context, benchmarking, screening.","when_not_to_use":"Cross-industry similarity or product-market competition — candidates come from the SEC industry (SIC) code.\n","avoids":["XBRL corpus loading","frames API joins","similarity model construction","SIC lookups"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker is an error. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK of the target company, 1-10 digits, zero padding optional (e.g. 320193). Provide exactly one of cik or ticker.","title":"Cik"},"limit":{"default":20,"description":"Maximum peer companies returned, ordered by similarity distance ascending (closest first). Default 20.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"PeersIn","type":"object"},"output_schema":{"$defs":{"PeerRow":{"properties":{"cik":{"description":"SEC Central Index Key of this peer, 10 digits zero-padded (e.g. 0000320193). Use it directly against the other SEC endpoints.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker from the SEC company-ticker map. Null when the registrant has no ticker in that map (unlisted or non-equity filers).","title":"Ticker"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC data reports it. Null in the rare case neither the ticker map nor the XBRL frame carried a name for this CIK.","title":"Name"},"assets_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total assets in US dollars reported by this peer at the end of frame_year (us-gaap Assets, instant). Null when it filed no such fact for that period.","title":"Assets Usd"},"revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Revenue in US dollars for the whole of frame_year. Null when the peer reported no calendar-year revenue fact, which is common for off-calendar fiscal years.","title":"Revenue Usd"},"net_income_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Net income (loss) in US dollars for frame_year; negative for a loss. Null when the peer reported no calendar-year net income fact.","title":"Net Income Usd"},"margin":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Net profit margin as a ratio, not a percentage: net income divided by revenue, so 0.25 means 25%. Null when either figure is missing or revenue is not positive.","title":"Margin"},"distance":{"description":"How far this peer sits from the target on the compared size and profitability measures: 0 is indistinguishable and larger is less alike. Comparable only against other rows in the same response and the same method_id.","title":"Distance","type":"number"},"similarity":{"description":"Convenience restatement of distance on a 0-1 scale where higher is more similar and 1.0 would be an exact match. Ranks identically to distance, inverted.","title":"Similarity","type":"number"}},"required":["cik","ticker","name","assets_usd","revenue_usd","net_income_usd","margin","distance","similarity"],"title":"PeerRow","type":"object"},"TargetBlock":{"properties":{"cik":{"description":"SEC Central Index Key of the company the comparison is built around, 10 digits zero-padded (e.g. 0000320193).","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker of the target from the SEC company-ticker map. Null when the registrant has no ticker there.","title":"Ticker"},"name":{"description":"Registrant name of the target exactly as EDGAR carries it on its filings.","title":"Name","type":"string"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC Standard Industrial Classification code of the target, normally 4 digits (e.g. 3571), as a string. This code defines the industry the peers were drawn from.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC's plain-English name for that SIC code, e.g. 'Electronic Computers'. Null when EDGAR supplies no description for the code.","title":"Sic Description"},"assets_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's total assets in US dollars at the end of frame_year, on the same basis as the peer rows. Null when it reported no such fact for that period.","title":"Assets Usd"},"revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's revenue in US dollars for the whole of frame_year. Null when it reported no calendar-year revenue fact.","title":"Revenue Usd"},"margin":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's net profit margin as a ratio (0.25 means 25%), net income over revenue. Null when either figure is missing or revenue is not positive.","title":"Margin"}},"required":["cik","ticker","name","sic","sic_description","assets_usd","revenue_usd","margin"],"title":"TargetBlock","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, Z suffix) at which this response was assembled. The underlying SEC facts are as of frame_year, not this instant.","title":"As Of","type":"string"},"target":{"$ref":"#/$defs/TargetBlock","description":"The company the peer set was selected for, with the figures the ranking used."},"frame_year":{"description":"Four-digit calendar year of the SEC XBRL frames every figure in this response is drawn from: the most recent complete calendar year with data available.","title":"Frame Year","type":"integer"},"candidates_in_industry":{"description":"How many registrants EDGAR listed under the target's SIC code before those with no usable figures were dropped, i.e. the size of the pool the ranking chose from.","title":"Candidates In Industry","type":"integer"},"count":{"description":"Number of peer rows actually returned in peers.","title":"Count","type":"integer"},"peers":{"description":"One entry per comparable company in the same SIC industry, ordered by distance ascending so the most similar company comes first; ties break by CIK.","items":{"$ref":"#/$defs/PeerRow"},"title":"Peers","type":"array"},"method_id":{"default":"sec_peers_rules_v1","description":"Versioned identifier of the ranking method that produced these rows. Distances and similarities are only comparable across responses sharing this value.","title":"Method Id","type":"string"},"disclaimer":{"default":"Similarity computed from public SEC XBRL facts and industry codes; a peer ranking is an analytical signal, not investment advice.","description":"Terms of use and the analytical (non-advice) nature of this peer ranking.","title":"Disclaimer","type":"string"}},"required":["as_of","target","frame_year","candidates_in_industry","count","peers"],"title":"PeersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_activity","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/activity","method":"GET","price_usd":0.0,"description":"Federal Register publishing volume per agency over your window with prior-window comparison and document-type totals — which agencies are accelerating, from server-side facet counts instead of paginating tens of thousands of documents. Free.","buyer_use_case":"An agent mapping regulatory pressure wants which agencies are publishing more (or less) than before, in one call.","when_to_use":"You want the agency-level activity map or trend, not the documents.","when_not_to_use":"The documents themselves — /v1/regs/rules or /v1/regs/agency.","avoids":["paginating the whole Federal Register","hand-built agency counts"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":90,"description":"Length in days of the publication-date window ending today; the equally long window before it is the trend baseline.","maximum":365,"minimum":7,"title":"Days","type":"integer"},"limit":{"default":25,"description":"Maximum agencies returned, most documents in the window first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"ActivityIn","type":"object"},"output_schema":{"$defs":{"AgencyActivity":{"properties":{"slug":{"description":"Federal Register agency slug, e.g. environmental-protection-agency; the value the `agency` input of the other regulation views expects.","title":"Slug","type":"string"},"name":{"description":"Full agency name as the Federal Register publishes it; falls back to the slug when the source gives no name.","title":"Name","type":"string"},"documents":{"description":"Federal Register documents of any type published by this agency inside the window, counted by publication date. A jointly issued document counts for each agency.","title":"Documents","type":"integer"},"prior_window":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The same document count for the equally long window immediately before the current one, as the trend baseline. 0 means the agency published nothing then; null means the baseline window is unavailable.","title":"Prior Window"},"change_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Percentage change in document count from prior_window to documents, rounded to one decimal: 25.0 means a quarter more, -10.0 a tenth fewer. Null when prior_window is 0 or unavailable, since the change is undefined.","title":"Change Pct"}},"required":["slug","name","documents","prior_window","change_pct"],"title":"AgencyActivity","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"window_days":{"description":"Length in days of the publication-date window ending today (UTC) that every count in this response covers; the trend baseline is the equally long window before it.","title":"Window Days","type":"integer"},"total_documents":{"description":"Sum of the per-agency document counts over the window across every agency, including agencies beyond the limit that are not listed in agencies.","title":"Total Documents","type":"integer"},"by_type":{"additionalProperties":{"type":"integer"},"description":"Document counts for the window keyed by Federal Register type code: RULE (final rules), PRORULE (proposed rules), NOTICE, PRESDOCU (presidential documents). A type with no documents in the window is absent rather than 0.","title":"By Type","type":"object"},"agencies":{"description":"One entry per agency that published in the window, most documents first, truncated to the requested limit.","items":{"$ref":"#/$defs/AgencyActivity"},"title":"Agencies","type":"array"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","window_days","total_documents","by_type","agencies"],"title":"ActivityOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_agency_feed","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/agency","method":"GET","price_usd":0.0,"description":"All rules and proposed rules (optionally notices and presidential documents) from one agency in a publication-date window, newest first, with deterministic deadline flags and day-counts.","buyer_use_case":"A compliance agent tracks everything one regulator publishes without integrating the Federal Register API or computing deadlines.","when_to_use":"You track one regulator and want its recent rulemaking with deadlines computed.","when_not_to_use":"Cross-agency topic tracking — use the search endpoint.","avoids":["federalregister.gov integration","deadline computation","agency slug pagination"],"input_schema":{"additionalProperties":false,"properties":{"agency":{"description":"Federal Register agency slug (see /v1/regs/agencies).","maxLength":120,"pattern":"^[a-z0-9-]+$","title":"Agency","type":"string"},"types":{"default":"rule,proposed_rule","description":"Comma-separated: rule, proposed_rule, notice, presidential.","title":"Types","type":"string"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date >= this ISO date, e.g. 2026-08-01. Default: the last 30 days.","title":"Since"},"until":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date <= (ISO date), e.g. 2026-08-31. Default: no upper bound.","title":"Until"},"limit":{"default":25,"description":"Maximum documents returned, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["agency"],"title":"AgencyFeedIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_agency_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/agencies","method":"GET","price_usd":0.0,"description":"Searches the ~470 Federal Register agencies by name or slug substring and returns the canonical slug every other regulation endpoint takes, plus the display name, short name and parent agency. Free, rate-limited.","buyer_use_case":"An agent knows an agency by name (\"SEC\", \"EPA\") and needs the slug that agency-filtered regulation endpoints require.","when_to_use":"You have an agency name or acronym and need the canonical slug for filtered rule-tracking calls.\n","when_not_to_use":"State or local agencies — the Federal Register covers US federal only.","avoids":["agencies endpoint pagination","slug-guessing errors"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Substring of the agency name or slug.","title":"Q"},"limit":{"default":50,"description":"Maximum agencies returned; matches are listed alphabetically by name.","maximum":500,"minimum":1,"title":"Limit","type":"integer"}},"title":"AgencyLookupIn","type":"object"},"output_schema":{"$defs":{"AgencyEntry":{"properties":{"slug":{"description":"Federal Register agency slug, e.g. securities-and-exchange-commission. This is the value the `agency` input of the other regulation views expects.","title":"Slug","type":"string"},"name":{"description":"Full agency name as the Federal Register publishes it, e.g. 'Environmental Protection Agency'.","title":"Name","type":"string"},"short_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agency acronym or short form, e.g. 'EPA'. Null when the Federal Register record carries none.","title":"Short Name"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Slug of the parent agency for a sub-agency, e.g. the department a bureau sits under. Null for top-level agencies and when the parent is not itself listed.","title":"Parent Slug"}},"required":["slug","name","short_name","parent_slug"],"title":"AgencyEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"count":{"description":"Number of agencies returned in agencies, at most the requested limit.","title":"Count","type":"integer"},"agencies":{"description":"One entry per Federal Register agency matching the query, in the order the Federal Register agency list returns them (alphabetical by name).","items":{"$ref":"#/$defs/AgencyEntry"},"title":"Agencies","type":"array"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","count","agencies"],"title":"AgenciesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_cfr_titles","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/cfr-titles","method":"GET","price_usd":0.0,"description":"The 50 Code of Federal Regulations titles with names, searchable — the map from a subject (energy, food and drugs, telecom) to the CFR title number that our CFR-part watch and rule feeds filter on. Free, static.","buyer_use_case":"An agent needs the CFR title number behind a regulated subject before setting up a CFR-part watch or reading citations.","when_to_use":"You need to map a regulated subject to its CFR title, or decode one.","when_not_to_use":"Actual rule documents — /v1/regs/cfr or /v1/regs/rules.","avoids":["govinfo CFR browsing","title guessing"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":60,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the CFR title name, e.g. 'energy'. Omit to list all 50 titles.","title":"Q"}},"title":"CfrTitlesIn","type":"object"},"output_schema":{"$defs":{"CfrTitle":{"properties":{"title":{"description":"CFR title number, 1 to 50, e.g. 17. This is the value the `cfr_title` input of the CFR watch view expects.","title":"Title","type":"integer"},"name":{"description":"Official subject name of the CFR title, e.g. 'Commodity and Securities Exchanges'. Title 35 is named 'Reserved' because no title 35 is currently in use.","title":"Name","type":"string"}},"required":["title","name"],"title":"CfrTitle","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"count":{"description":"Number of CFR titles returned in titles: 50 when no query filter was given, fewer when a name substring was supplied.","title":"Count","type":"integer"},"titles":{"description":"One entry per CFR title matching the query, always in ascending title-number order from 1 to 50.","items":{"$ref":"#/$defs/CfrTitle"},"title":"Titles","type":"array"},"watch_endpoint":{"default":"/v1/regs/cfr?title=<n>&part=<m>","description":"URL template for following Federal Register activity on a CFR title or part; substitute a title number for <n> and an optional part number for <m>.","title":"Watch Endpoint","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","count","titles"],"title":"CfrTitlesOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"reg_cfr_watch","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/cfr","method":"GET","price_usd":0.02,"description":"Rules and proposed rules that touch a given CFR title (and optionally part) in a publication window — e.g. everything amending 17 CFR 240. The watch for agents that care about specific regulatory provisions, not agencies or topics.","buyer_use_case":"A compliance agent monitors the exact CFR parts its owner is subject to and reacts only when those provisions change.","when_to_use":"Your obligations map to known CFR parts and you react only to those.","when_not_to_use":"Exploratory topic tracking — use search; whole-agency views — use the agency feed.","avoids":["CFR citation query syntax","cross-referencing affected parts"],"input_schema":{"additionalProperties":false,"properties":{"cfr_title":{"description":"CFR title number, 1 to 50, e.g. 17 for Commodity and Securities Exchanges. Required; pair with cfr_part to narrow to one part.","maximum":50,"minimum":1,"title":"Cfr Title","type":"integer"},"cfr_part":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"CFR part number within cfr_title, e.g. 240. Omit to watch the whole title.","title":"Cfr Part"},"types":{"default":"rule,proposed_rule","description":"Comma-separated Federal Register document types: rule, proposed_rule, notice, presidential. An unlisted type is rejected. Default rule,proposed_rule.","title":"Types","type":"string"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date >= this ISO date, e.g. 2026-06-01. Default: the last 90 days.","title":"Since"},"limit":{"default":25,"description":"Maximum documents touching this CFR title/part, newest publication first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["cfr_title"],"title":"CfrWatchIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_comment_deadlines","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/comment-deadlines","method":"GET","price_usd":0.02,"description":"Proposed rules whose public-comment window closes within N days (default 14), sorted soonest first, optionally agency- or term-filtered. Day-counts computed server-side from comments_close_on.","buyer_use_case":"A comment-drafting or compliance agent needs the actionable queue: what can still be commented on, ordered by urgency.","when_to_use":"You act on comment windows — drafting, alerting, or prioritizing by urgency.","when_not_to_use":"Closed dockets or final rules — use the docket tracker.","avoids":["scanning proposed-rule backlogs","comment-date math","urgency sorting"],"input_schema":{"additionalProperties":false,"properties":{"within_days":{"default":14,"description":"Comment periods closing within this many days.","maximum":90,"minimum":1,"title":"Within Days","type":"integer"},"agency":{"anyOf":[{"maxLength":120,"pattern":"^[a-z0-9-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug from /v1/regs/agencies, e.g. securities-and-exchange-commission; an unknown slug fails the call. Omit for all.","title":"Agency"},"term":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Full-text term the proposed rules must match, e.g. 'cybersecurity'. Omit for every open comment period.","title":"Term"},"limit":{"default":25,"description":"Maximum documents returned, soonest comment deadline first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"CommentDeadlinesIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_daily_digest","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/digest","method":"GET","price_usd":0.02,"description":"All rules and proposed rules published on one date (default today, UTC), significant documents first, optionally one agency. A single call that summarizes the day's rulemaking for briefing and triage agents.","buyer_use_case":"A briefing agent produces a daily regulatory summary; one call returns the day, pre-sorted by importance.","when_to_use":"You brief or triage by publication day and want importance-first ordering.","when_not_to_use":"Incremental monitoring across days — use the watch cursor.","avoids":["daily scanning","significance triage","deadline math"],"input_schema":{"additionalProperties":false,"properties":{"date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO publication date; default today (UTC).","title":"Date"},"agency":{"anyOf":[{"maxLength":120,"pattern":"^[a-z0-9-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug from /v1/regs/agencies, e.g. securities-and-exchange-commission; an unknown slug fails the call. Omit for all.","title":"Agency"},"limit":{"default":50,"description":"Maximum documents from that day, significant ones listed first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"DigestIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_doc_types","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/doc-types","method":"GET","price_usd":0.0,"description":"What each Federal Register document type implies — a final rule carries an effective date and amends the CFR, a proposed rule carries a comment deadline instead — plus the meaning of every flag AnswerPool applies across the regulation endpoints (significant, comments_close_soon, effective_soon, final_rule_pending_effect). Static. Free.","buyer_use_case":"An agent reading regulation responses needs to know what a type or flag actually implies before acting on a deadline.","when_to_use":"You need to interpret a document type or a flag on a regulation response.","when_not_to_use":"The documents themselves — /v1/regs/rules and the agency feeds.","avoids":["misreading a comment deadline as an effective date","guessing flag meanings"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":40,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of a code, name or description, e.g. 'rule'. Omit to list every document type and flag.","title":"Q"}},"title":"DocTypesIn","type":"object"},"output_schema":{"$defs":{"RegRefEntry":{"properties":{"code":{"description":"The literal value this entry defines: in document_types a Federal Register type code (RULE, PRORULE, NOTICE, PRESDOCU); in flags a flag string exactly as it appears in a document's flags list, e.g. comments_close_soon.","title":"Code","type":"string"},"name":{"description":"Human-readable label for the code, e.g. 'Final Rule' for RULE or 'Comment window closing' for comments_close_soon.","title":"Name","type":"string"},"description":{"description":"One-sentence explanation of what the document type or flag means for a document that carries it, including which dates it implies.","title":"Description","type":"string"}},"required":["code","name","description"],"title":"RegRefEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"count":{"description":"Total entries returned, document_types and flags combined, after any query filter.","title":"Count","type":"integer"},"document_types":{"description":"The Federal Register's own document types, always in the order RULE, PRORULE, NOTICE, PRESDOCU; entries not matching the query filter are omitted.","items":{"$ref":"#/$defs/RegRefEntry"},"title":"Document Types","type":"array"},"flags":{"description":"The AnswerPool status flags that can appear on a document, always in the order significant, comments_close_soon, effective_soon, final_rule_pending_effect; entries not matching the query filter are omitted.","items":{"$ref":"#/$defs/RegRefEntry"},"title":"Flags","type":"array"},"note":{"default":"Document types are the Federal Register's own; flags are AnswerPool's, applied consistently across every regulation endpoint.","description":"Fixed caveat on which vocabulary in this response comes from which party.","title":"Note","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","count","document_types","flags"],"title":"DocTypesOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"reg_docket","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/docket","method":"GET","price_usd":0.0,"description":"Every Federal Register document carrying a given agency docket id — proposed rule, final rule, notices, corrections — newest first. Follows one rulemaking through its lifecycle.","buyer_use_case":"An agent follows one rulemaking (e.g. a specific SEC docket) from proposal through final rule and effective date.","when_to_use":"You hold a docket id and want the rulemaking's history and current status.","when_not_to_use":"You only have a topic or agency — search first, then track the docket.","avoids":["docket id query syntax","lifecycle reconstruction"],"input_schema":{"additionalProperties":false,"properties":{"docket_id":{"description":"Agency docket id, e.g. SEC-2026-001 or EPA-HQ-OAR-2021-0317.","maxLength":60,"minLength":2,"pattern":"^[A-Za-z0-9._/-]+$","title":"Docket Id","type":"string"},"limit":{"default":50,"description":"Maximum documents in this docket, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["docket_id"],"title":"DocketIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_document","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/document","method":"GET","price_usd":0.0,"description":"Returns a single Federal Register document by its document number, normalized to the same shape as every feed (agencies, CFR references, docket ids, deadline day-counts, deterministic flags). Free, rate-limited.","buyer_use_case":"An agent holds a document number from a feed or citation and needs the full normalized record with deadline flags.","when_to_use":"You have a document number (e.g. from a watch feed) and need full details.","when_not_to_use":"Searching by topic or agency — use the search and feed endpoints.","avoids":["federalregister.gov API integration","deadline math"],"input_schema":{"additionalProperties":false,"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341.","maxLength":40,"minLength":3,"pattern":"^[A-Za-z0-9._-]+$","title":"Document Number","type":"string"}},"required":["document_number"],"title":"DocumentIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"document":{"$ref":"#/$defs/RegDoc","description":"The single Federal Register document matching the requested document number, with the same fields and flags as documents returned by the list views."},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","document"],"title":"DocumentOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_effective_soon","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/effective","method":"GET","price_usd":0.02,"description":"Final rules whose effective date falls within the next N days (default 30), sorted by effective date, optionally agency-filtered. Server-side effective-date range query plus computed day-counts.","buyer_use_case":"A compliance agent needs the readiness queue: which final rules become binding soon.","when_to_use":"You prepare for rules becoming binding — readiness, alerting, scheduling.","when_not_to_use":"Proposed rules — they have comment deadlines, not effective dates.","avoids":["effective-date range query syntax","date math","urgency sorting"],"input_schema":{"additionalProperties":false,"properties":{"within_days":{"default":30,"description":"Rules taking effect within this many days.","maximum":180,"minimum":1,"title":"Within Days","type":"integer"},"agency":{"anyOf":[{"maxLength":120,"pattern":"^[a-z0-9-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug from /v1/regs/agencies, e.g. securities-and-exchange-commission; an unknown slug fails the call. Omit for all.","title":"Agency"},"limit":{"default":25,"description":"Maximum rules returned, soonest effective date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"EffectiveSoonIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_executive_orders","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/eo","method":"GET","price_usd":0.0,"description":"Executive orders, proclamations or presidential memoranda from the Federal Register, newest first, optionally term-filtered. Normalized to the same document schema as all regulation feeds.","buyer_use_case":"A policy agent tracks new executive orders without parsing the Federal Register's presidential-documents section.","when_to_use":"You track presidential documents — EOs, proclamations, memoranda.","when_not_to_use":"Agency rulemaking — use the agency feed or search.","avoids":["presidential document type codes","federalregister.gov integration"],"input_schema":{"additionalProperties":false,"properties":{"doc_type":{"default":"executive_order","description":"Presidential document type: executive_order, proclamation or memorandum. Exactly one; default executive_order.","pattern":"^(executive_order|proclamation|memorandum)$","title":"Doc Type","type":"string"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date >= this ISO date, e.g. 2026-06-01. Default: the last 90 days.","title":"Since"},"term":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Full-text term over presidential documents, e.g. 'tariff'. Omit to return every one in the window.","title":"Term"},"limit":{"default":25,"description":"Maximum presidential documents returned, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"EoIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_resolve","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/resolve","method":"GET","price_usd":0.0,"description":"One call for any regulatory string — an agency name or acronym, a CFR citation like \"40 CFR 60\", a Federal Register document number, or a docket id — returning the canonical identifier and the endpoint URL that takes it. Free.","buyer_use_case":"An agent holding a citation or agency name needs the slug or document number our regulation endpoints require, without knowing which lookup to use.","when_to_use":"You have a citation, acronym or document number and need the identifier plus where to send it.","when_not_to_use":"Full-text search over documents — /v1/regs/search.","avoids":["slug guessing","parsing CFR citations by hand","choosing among regulation lookups"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"An agency name, acronym or slug, a CFR citation like '40 CFR 60', a document number like 2026-12341, or a docket id; resolving nothing is an error.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":10,"description":"Maximum matches returned, exact acronym and slug hits before prefix hits.","maximum":25,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"RegResolveIn","type":"object"},"output_schema":{"$defs":{"RegResolved":{"properties":{"kind":{"description":"What the query resolved to: 'agency' (a Federal Register agency), 'cfr_citation' (a CFR title, optionally a part), or 'document_number' (a Federal Register document number).","title":"Kind","type":"string"},"value":{"description":"The resolved identifier to reuse in later calls: an agency slug such as environmental-protection-agency, a citation such as '40 CFR part 60', or a document number such as 2026-12341.","title":"Value","type":"string"},"label":{"description":"Human-readable name for the match, e.g. 'Environmental Protection Agency (EPA)' or 'Federal Register document 2026-12341'.","title":"Label","type":"string"},"next_url":{"description":"Relative AnswerPool API path that returns this match's documents, e.g. /v1/regs/agency?agency=environmental-protection-agency. Call it as-is.","title":"Next Url","type":"string"}},"required":["kind","value","label","next_url"],"title":"RegResolved","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"query":{"description":"The submitted query string with surrounding whitespace trimmed, echoed back.","title":"Query","type":"string"},"count":{"description":"Number of matches found for the query; it can exceed the length of matches, which is truncated to the requested limit. A query that resolves to nothing is an error, so this is never 0.","title":"Count","type":"integer"},"matches":{"description":"One entry per resolved identifier, best match first: a CFR citation and a document number detected in the query come first, then agencies ordered by match quality (exact acronym, then exact slug or full name, then whole-word, then prefix matches), alphabetically by label within each tier.","items":{"$ref":"#/$defs/RegResolved"},"title":"Matches","type":"array"},"note":{"default":"One call for any regulatory string: an agency name or acronym, a CFR citation like '40 CFR 60', a Federal Register document number, or a docket id.","description":"Fixed note on the kinds of query string this endpoint accepts.","title":"Note","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","query","count","matches"],"title":"RegResolveOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/search","method":"GET","price_usd":0.0,"description":"Full-text search over Federal Register rules, proposed rules and notices, optionally agency-filtered, in a publication window; results carry deadline flags and day-counts.","buyer_use_case":"An agent tracks a topic (\"artificial intelligence\", \"stablecoin\") across all agencies.","when_to_use":"You track a topic across agencies rather than one regulator.","when_not_to_use":"You already know the agency — the agency feed is more precise.","avoids":["full-text query syntax","deadline math","type-code mapping"],"input_schema":{"additionalProperties":false,"properties":{"term":{"description":"Full-text search term over the whole Federal Register document, e.g. 'artificial intelligence'. A term nobody used returns no documents.","maxLength":200,"minLength":2,"title":"Term","type":"string"},"agency":{"anyOf":[{"maxLength":120,"pattern":"^[a-z0-9-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug from /v1/regs/agencies, e.g. securities-and-exchange-commission; an unknown slug fails the call. Omit for all.","title":"Agency"},"types":{"default":"rule,proposed_rule,notice","description":"Comma-separated Federal Register document types: rule, proposed_rule, notice, presidential. An unlisted type is rejected. Default rule,proposed_rule,notice.","title":"Types","type":"string"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date >= this ISO date, e.g. 2026-06-01. Default: the last 90 days.","title":"Since"},"until":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date <= (ISO date), e.g. 2026-08-31. Default: no upper bound.","title":"Until"},"limit":{"default":25,"description":"Maximum documents returned, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["term"],"title":"SearchIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_significant_rules","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/significant","method":"GET","price_usd":0.02,"description":"Only E.O. 12866 significant rules and proposed rules (the ones with major economic impact, reviewed by OIRA) in a publication window, optionally one agency. The high-signal subset of federal rulemaking.","buyer_use_case":"A research or policy agent wants only rulemaking that matters economically, not the long tail of routine documents.","when_to_use":"You want signal over volume — only rulemaking with major economic impact.","when_not_to_use":"Comprehensive agency tracking — use the agency feed.","avoids":["significance flag filtering","scanning routine documents"],"input_schema":{"additionalProperties":false,"properties":{"agency":{"anyOf":[{"maxLength":120,"pattern":"^[a-z0-9-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug from /v1/regs/agencies, e.g. securities-and-exchange-commission; an unknown slug fails the call. Omit for all.","title":"Agency"},"types":{"default":"rule,proposed_rule","description":"Comma-separated Federal Register document types: rule, proposed_rule, notice, presidential. An unlisted type is rejected. Default rule,proposed_rule.","title":"Types","type":"string"},"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"publication_date >= this ISO date, e.g. 2026-06-01. Default: the last 90 days.","title":"Since"},"limit":{"default":25,"description":"Maximum significant documents returned, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"SignificantIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"reg_watch","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/regs/watch","method":"GET","price_usd":0.0,"description":"Everything published since an ISO-date cursor (optionally one agency), newest first, plus a next_since cursor to poll with. Built for scheduled agents: call daily with the last cursor, get only what is new.","buyer_use_case":"A monitoring agent polls daily and processes only newly published documents.","when_to_use":"You poll on a schedule and want only documents you have not seen.","when_not_to_use":"One-off historical questions — use search or the agency feed.","avoids":["cursor bookkeeping","duplicate handling","federalregister.gov integration"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO date cursor; default last 7 days.","title":"Since"},"agency":{"anyOf":[{"maxLength":120,"pattern":"^[a-z0-9-]+$","type":"string"},{"type":"null"}],"default":null,"description":"Federal Register agency slug from /v1/regs/agencies, e.g. securities-and-exchange-commission; an unknown slug fails the call. Omit for all.","title":"Agency"},"types":{"default":"rule,proposed_rule","description":"Comma-separated Federal Register document types: rule, proposed_rule, notice, presidential. An unlisted type is rejected. Default rule,proposed_rule.","title":"Types","type":"string"},"limit":{"default":50,"description":"Maximum documents returned since the cursor, newest publication date first.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"WatchIn","type":"object"},"output_schema":{"$defs":{"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"total_matching":{"description":"Number of Federal Register documents matching the query before the limit was applied. On the comment-deadline view it is instead the number of documents left after the deadline window filter. Compare with count to see if results were cut off.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents returned in documents, at most the requested limit.","title":"Count","type":"integer"},"documents":{"description":"One entry per matching Federal Register document. Ordering depends on the view: newest publication date first for search, agency, docket, CFR, watch, executive-order and significant views; soonest comment deadline first for comment deadlines; soonest effective date first for effective-soon; significant documents first for the daily digest.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"next_since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Watch cursor: the UTC date (YYYY-MM-DD) of this call, to pass back as `since` on the next poll so only newer documents are returned. Null on every view other than the watch view.","title":"Next Since"},"method_id":{"default":"reg_views_rules_v1","description":"Stable identifier of the method and version that produced this response; it changes when the computation changes, so results from different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Regulatory information from the Federal Register (public domain); not legal advice.","description":"Fixed notice on the source of this data and the limits of its use.","title":"Disclaimer","type":"string"}},"required":["as_of","total_matching","count","documents"],"title":"RegDocsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"science_fields","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/science/fields","method":"GET","price_usd":0.0,"description":"One-call summary of every research field in our weekly scan: how many topics we track, total recent works volume, how many topics are flagged emerging, and the top-momentum topic. The map an agent reads before drilling into topics. Free.","buyer_use_case":"An agent surveying the research landscape wants field-level scale and momentum before picking topics to analyze.","when_to_use":"You want the field-level map before topic-level analysis.","when_not_to_use":"Topic-level detail — use /v1/science/topics.","avoids":["OpenAlex aggregation queries","per-field counting"],"input_schema":{"additionalProperties":false,"properties":{},"title":"FieldsIn","type":"object"},"output_schema":{"$defs":{"FieldSummary":{"properties":{"field":{"description":"OpenAlex field display name, e.g. 'Computer Science'; usable as the `field` filter on /v1/science/topics.","title":"Field","type":"string"},"topics":{"description":"Absolute number of topics in the latest scan classified under this field.","title":"Topics","type":"integer"},"works_last_full_year":{"description":"Sum over the field's topics of works published in the most recently completed calendar year; the current, partial year is excluded.","title":"Works Last Full Year","type":"integer"},"emerging_topics":{"description":"How many of the field's topics carry is_emerging = true in this scan; between 0 and `topics`.","title":"Emerging Topics","type":"integer"},"top_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the field's best-ranked topic by momentum in this scan. Null when that topic has no OpenAlex name.","title":"Top Topic"}},"required":["field","topics","works_last_full_year","emerging_topics","top_topic"],"title":"FieldSummary","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z; the underlying scan is weekly, so it is older.","title":"As Of","type":"string"},"count":{"description":"Number of fields in `fields`. Every field present in the latest scan is returned; there is no limit argument.","title":"Count","type":"integer"},"fields":{"description":"One entry per OpenAlex field present in the latest weekly scan, ordered by total last-full-year works, largest first. Topics OpenAlex leaves unclassified are omitted.","items":{"$ref":"#/$defs/FieldSummary"},"title":"Fields","type":"array"},"disclaimer":{"default":"Derived from OpenAlex (CC0) by AnswerPool's weekly scan; not investment advice.","description":"Fixed source and usage notice: these numbers are AnswerPool's own derivation over OpenAlex (CC0) and are not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","fields"],"title":"FieldsOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"science_related","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/science/related","method":"GET","price_usd":0.0,"description":"From one topic to its peers in the same OpenAlex subfield, ordered by shared wording with the anchor and then by the momentum our weekly scan computes — works volume, 3-year growth, momentum rank, emerging flag. `term_matched` reports how many peers share wording, because OpenAlex subfields are broad buckets: when it is 0 these are subfield neighbours rather than close topical matches. Served from stored scan state, no upstream call. Free.","buyer_use_case":"An agent that resolved one research topic wants the adjacent topics to widen a literature or technology survey without guessing names.","when_to_use":"You have a topic and want its subfield peers ranked, for landscape mapping.","when_not_to_use":"A graded verdict on one topic — /v1/technology/momentum ($0.05, LLM-graded).","avoids":["OpenAlex subfield traversal","guessing adjacent topic names"],"input_schema":{"additionalProperties":false,"properties":{"topic_id":{"anyOf":[{"maxLength":20,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"OpenAlex topic id of the anchor, e.g. T10320, matched exactly and case-insensitively. Give this or q; an unknown id is a 400.","title":"Topic Id"},"q":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Topic-name substring used to pick the anchor when topic_id is omitted, best momentum rank winning, e.g. quantum computing. Ignored if topic_id is given.","title":"Q"},"limit":{"default":15,"description":"Maximum peer topics taken from the anchor's subfield by momentum rank, then reordered by shared terms. Default 15.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"RelatedIn","type":"object"},"output_schema":{"$defs":{"RelatedTopic":{"properties":{"topic_id":{"description":"OpenAlex topic identifier of the peer, e.g. T10320. Feed it back to this endpoint or to /v1/technology/lookup to walk the directory.","title":"Topic Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex display name of the peer topic, e.g. 'Quantum Computing Algorithms'. Null when OpenAlex publishes no name for this id.","title":"Name"},"works_last_full_year":{"description":"Absolute number of OpenAlex works whose primary topic is this peer, published in the most recently completed calendar year; the current, partial year is excluded.","title":"Works Last Full Year","type":"integer"},"growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Fractional change between consecutive three-year totals: works in the last three full years against the three years before them; 0.5 means +50%. Null when the earlier three-year window is zero.","title":"Growth 3Y"},"momentum_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Position in this scan's momentum ranking across all ranked topics; 1 is the strongest. Null for topics the scan does not rank, such as very small topics and OpenAlex catch-all topics.","title":"Momentum Rank"},"is_emerging":{"description":"True when the peer pairs top-tier momentum with a still-small ten-year publication base — fast-moving and not yet mainstream. False otherwise, including unranked peers.","title":"Is Emerging","type":"boolean"}},"required":["topic_id","name","works_last_full_year","growth_3y","momentum_rank","is_emerging"],"title":"RelatedTopic","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z. This is response time, not data age — see data_as_of.","title":"As Of","type":"string"},"data_as_of":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Version stamp of the OpenAlex data behind the anchor and its peers, e.g. api:2026-08-30 — the date the weekly scan read the counts.","title":"Data As Of"},"anchor_topic_id":{"description":"OpenAlex topic id of the topic the peers were drawn around, e.g. T10320. Echoes the topic_id argument, or the id of the best-ranked topic matching `q`.","title":"Anchor Topic Id","type":"string"},"anchor_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex display name of the anchor topic. Null when OpenAlex publishes no name for the anchor id.","title":"Anchor Name"},"grouped_by":{"description":"Which level of the OpenAlex hierarchy the peers share with the anchor: 'subfield' normally, or 'field' when OpenAlex assigns the anchor no subfield.","title":"Grouped By","type":"string"},"group_value":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the shared subfield or field, e.g. 'Artificial Intelligence'. Null when the anchor has neither, in which case no peers are returned.","title":"Group Value"},"count":{"description":"Number of peer topics in `topics`, capped by `limit`. Not the total size of the anchor's subfield.","title":"Count","type":"integer"},"term_matched":{"description":"How many of the returned peers share at least one significant word with the anchor's name. 0 means the list is subfield neighbours only, not close topical matches.","title":"Term Matched","type":"integer"},"topics":{"description":"One entry per peer topic sharing the anchor's subfield (or field), the anchor itself excluded. Peers sharing more words with the anchor name come first, then better momentum rank.","items":{"$ref":"#/$defs/RelatedTopic"},"title":"Topics","type":"array"},"note":{"default":"Peers share the anchor's OpenAlex subfield (or field if the subfield is unknown), ordered by shared terms with the anchor then by momentum rank. OpenAlex subfields are broad, so `term_matched` says how many peers share wording with the anchor — when it is 0 these are subfield neighbours, not close topical matches.","description":"Fixed explanation of how peers are selected and ordered, and of the caveat that a shared OpenAlex subfield is a broad relationship rather than close topical kinship.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from OpenAlex (CC0) by AnswerPool's weekly scan; not investment advice.","description":"Fixed source and usage notice: these numbers are AnswerPool's own derivation over OpenAlex (CC0) and are not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","data_as_of","anchor_topic_id","anchor_name","grouped_by","group_value","count","term_matched","topics"],"title":"RelatedOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"science_topics","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/science/topics","method":"GET","price_usd":0.0,"description":"Searchable directory of ~4,500 OpenAlex research topics from our weekly scan: topic id, field, yearly works counts, 1y/3y growth, momentum rank and emerging flag — computed consistently every week. Resolve a topic or rank a field's topics in one call. Raw statistics, no LLM. Free.","buyer_use_case":"An agent needs to resolve a research area to a canonical topic (and see whether it is growing) before deeper analysis, or wants the top-momentum topics in a field.","when_to_use":"You need topic resolution or raw growth numbers for research areas — screening before the graded momentum products.\n","when_not_to_use":"Graded assessments with confidence and evidence — that is /v1/technology/momentum ($0.05, LLM-graded).\n","avoids":["OpenAlex topic pagination","hand-rolled growth math","inconsistent week-to-week baselines"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the topic name, e.g. quantum. Omit to browse the whole directory.","title":"Q"},"field":{"anyOf":[{"maxLength":60,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the OpenAlex field name, e.g. Computer Science; list the fields at /v1/science/fields.","title":"Field"},"sort":{"default":"momentum","description":"Ordering: momentum (momentum rank ascending), works (last full year works descending) or growth (3-year growth descending). Default momentum.","pattern":"^(momentum|works|growth)$","title":"Sort","type":"string"},"limit":{"default":25,"description":"Maximum topics returned after filtering and sorting. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"TopicsIn","type":"object"},"output_schema":{"$defs":{"Topic":{"properties":{"topic_id":{"description":"OpenAlex topic identifier, e.g. T10320. Stable across scans; pass it to /v1/science/related or /v1/technology/lookup.","title":"Topic Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex display name of the topic, e.g. 'Quantum Computing Algorithms'. Null when OpenAlex publishes no name for this id.","title":"Name"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex field the topic belongs to, e.g. 'Computer Science' — the broad tier of the topic hierarchy. Null when OpenAlex leaves the topic unclassified.","title":"Field"},"subfield":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenAlex subfield, e.g. 'Artificial Intelligence' — one tier narrower than field and still broad. Null when OpenAlex leaves the topic unclassified.","title":"Subfield"},"works_last_full_year":{"description":"Absolute number of OpenAlex works whose primary topic is this one, published in the most recently completed calendar year; the current, partial year is excluded.","title":"Works Last Full Year","type":"integer"},"works_10y":{"description":"Absolute number of works with this primary topic across the scan's eleven-year window: the ten calendar years before the current one plus the current year to date.","title":"Works 10Y","type":"integer"},"growth_1y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Fractional change in yearly works from the year before the last full year to the last full year: 0.25 means +25%, -0.1 means -10%. Null when the earlier year is zero.","title":"Growth 1Y"},"growth_3y":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Fractional change between consecutive three-year totals: works in the last three full years against the three years before them; 0.5 means +50%. Null when the earlier three-year window is zero.","title":"Growth 3Y"},"momentum_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Position in this scan's momentum ranking across all ranked topics; 1 is the strongest, higher numbers are weaker. Null for topics the scan does not rank, such as very small topics and OpenAlex catch-all topics.","title":"Momentum Rank"},"is_emerging":{"description":"True when the topic pairs top-tier momentum with a still-small ten-year publication base — fast-moving and not yet mainstream. False for larger or slower topics and for any topic without a momentum_rank.","title":"Is Emerging","type":"boolean"}},"required":["topic_id","name","field","subfield","works_last_full_year","works_10y","growth_1y","growth_3y","momentum_rank","is_emerging"],"title":"Topic","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z. This is response time, not data age — see data_as_of.","title":"As Of","type":"string"},"data_as_of":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Version stamp of the OpenAlex data behind these rows, e.g. api:2026-08-30 — the date the weekly scan read the counts. Null when no topic matched the query.","title":"Data As Of"},"count":{"description":"Number of topics in `topics`, after filtering, sorting and the `limit` cap. Not the total number of topics matching the filters in the scan.","title":"Count","type":"integer"},"topics":{"description":"One entry per matching topic in the latest weekly scan, ordered by the `sort` argument (momentum rank ascending, last-full-year works descending, or three-year growth descending), ties broken by topic id ascending.","items":{"$ref":"#/$defs/Topic"},"title":"Topics","type":"array"},"note":{"default":"Raw weekly-scan statistics; the LLM-graded brief is /v1/technology/emerging.","description":"Fixed reminder that this endpoint serves the raw weekly-scan statistics and where the LLM-graded emerging brief lives instead.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from OpenAlex (CC0) by AnswerPool's weekly scan; not investment advice.","description":"Fixed source and usage notice: these numbers are AnswerPool's own derivation over OpenAlex (CC0) and are not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","data_as_of","count","topics"],"title":"TopicsOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"sec_13f_crowding","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/crowding","method":"GET","price_usd":0.05,"description":"How institutional breadth in one issuer has moved across the quarters we hold: holder count, total reported value and share count per quarter, the change between them, and the managers that newly appeared or exited in the latest quarter. Amendments collapse to one filing per manager per quarter. Answers whether interest is building or draining — which a single-quarter holder list cannot.","buyer_use_case":"An agent tracking institutional interest wants the direction across quarters, not one snapshot it would have to re-fetch and diff itself.","when_to_use":"You need the direction of institutional interest in an issuer over time.","when_not_to_use":"The current holder list (/v1/sec/13f/holders) or one manager's book (/v1/sec/13f/manager).\n","avoids":["fetching every quarter and diffing","amendment double-counting","per-manager deduplication"],"input_schema":{"additionalProperties":false,"properties":{"issuer":{"description":"Issuer name prefix exactly as managers file it, case-insensitive (e.g. NVIDIA). A prefix with no recorded 13F holdings is an error.","maxLength":80,"minLength":2,"title":"Issuer","type":"string"},"quarters":{"default":6,"description":"How many of the most recent 13F report periods (calendar quarter ends) to trend over. Default 6; silently capped by the quarters currently indexed.","maximum":12,"minimum":2,"title":"Quarters","type":"integer"}},"required":["issuer"],"title":"CrowdingIn","type":"object"},"output_schema":{"$defs":{"CrowdingPeriod":{"properties":{"period":{"description":"The 13F report period this row summarizes, a calendar quarter end as YYYY-MM-DD (e.g. 2026-06-30).","title":"Period","type":"string"},"holders":{"description":"Number of distinct managers reporting a position in this issuer for the quarter, counting each manager once however many filings or lots it reported.","title":"Holders","type":"integer"},"total_value_usd":{"description":"Sum of those managers' reported position values in the issuer for the quarter, in US dollars rounded to cents.","title":"Total Value Usd","type":"number"},"total_shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Sum of the reported amounts held across those managers — share counts for equity lines, principal amounts for debt lines — rounded to two decimals. Null when no amounts were reported for the quarter.","title":"Total Shares"},"holders_change":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Change in holders against the previous quarter of this series; positive means more managers reported the issuer. Null for the earliest quarter returned.","title":"Holders Change"},"value_change_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Change in total_value_usd against the previous quarter of this series, as a percentage (8.99 means +8.99%). Null for the earliest quarter returned and when the previous quarter's total was zero.","title":"Value Change Pct"}},"required":["period","holders","total_value_usd","total_shares","holders_change","value_change_pct"],"title":"CrowdingPeriod","type":"object"}},"properties":{"as_of":{"description":"Timestamp this response was generated, ISO-8601 UTC with milliseconds and a Z suffix. Data freshness is set by the quarters in series, not by this.","title":"As Of","type":"string"},"issuer_query":{"description":"The issuer name prefix exactly as supplied in the request, echoed back.","title":"Issuer Query","type":"string"},"issuer_matched":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"An issuer name exactly as filed that the prefix matched; filers spell names differently and names are not normalized, so a prefix can span several spellings and this is one of them. Present whenever series has any rows.","title":"Issuer Matched"},"periods_covered":{"description":"Number of quarters in series: at most the quarters requested, and limited to the indexed quarters in which some manager reported this issuer.","title":"Periods Covered","type":"integer"},"series":{"description":"One element per report period in which the issuer was reported, ordered oldest quarter first so the per-quarter changes read forward.","items":{"$ref":"#/$defs/CrowdingPeriod"},"title":"Series","type":"array"},"new_managers":{"description":"Managers reporting the issuer in the newest quarter of the series but not in the quarter before it, by name as filed (manager CIK when no name was filed), sorted alphabetically and capped at 25 entries.","items":{"type":"string"},"title":"New Managers","type":"array"},"exited_managers":{"description":"Managers reporting the issuer in the quarter before the newest but not in the newest, by name as filed (manager CIK when no name was filed), sorted alphabetically and capped at 25 entries.","items":{"type":"string"},"title":"Exited Managers","type":"array"},"trend":{"description":"Direction of institutional breadth across the covered quarters: building (more managers report the issuer in the newest quarter than in the oldest), draining (fewer), flat (the same), or insufficient_history with under two quarters.","title":"Trend","type":"string"},"note":{"default":"Holder counts deduplicate amendments to one filing per manager per quarter. 13F is quarterly with the SEC's ~45-day lag, and covers only managers above the $100M threshold, so this is institutional breadth, not total ownership.","description":"Fixed caveat spelling out what these counts cover and the reporting lag behind them.","title":"Note","type":"string"},"disclaimer":{"default":"From SEC Form 13F filings (public domain), reported quarterly with a filing lag; identifiers served as filed. Not investment advice.","description":"Fixed source and permitted-use notice attached to every 13F response.","title":"Disclaimer","type":"string"}},"required":["as_of","issuer_query","issuer_matched","periods_covered","series","new_managers","exited_managers","trend"],"title":"CrowdingOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"sec_13f_holders","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/holders","method":"GET","price_usd":0.02,"description":"Institutional holders of one issuer in the latest reported period, by issuer-name prefix (as filed) or as-filed CUSIP - manager, value, shares, put/call flag - ranked by position value, deduplicated to each manager's newest filing.","buyer_use_case":"\"Who owns NVIDIA?\" answered from primary filings in one call.","when_to_use":"Ownership questions per issuer.","when_not_to_use":"Real-time ownership — quarterly with a lag; sub-5% retail holders never appear.","avoids":["scanning millions of 13F rows","amendment dedup","ranking"],"input_schema":{"additionalProperties":false,"properties":{"issuer":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Issuer name prefix as filed, case-insensitive (e.g. NVIDIA). Provide exactly one of issuer or cusip.","title":"Issuer"},"cusip":{"anyOf":[{"maxLength":9,"minLength":9,"type":"string"},{"type":"null"}],"default":null,"description":"9-character CUSIP exactly as filed, case-insensitive (e.g. 67066G104); take one from any holdings row this API returns. Provide exactly one of cusip or issuer.","title":"Cusip"},"limit":{"default":25,"description":"Maximum holding managers returned, one row each, ordered by reported position value descending. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"HoldersIn","type":"object"},"output_schema":{"$defs":{"HolderRow":{"properties":{"manager_cik":{"description":"SEC CIK of the institutional manager holding the issuer, 10-digit zero-padded; pass it to the manager and changes views for that manager's full book.","title":"Manager Cik","type":"string"},"manager_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager name from the filing's cover page, as filed. Null when the cover page carried no name.","title":"Manager Name"},"value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Market value of this manager's position in the issuer, in US dollars as reported on the filing. Null when the filing left the value blank.","title":"Value Usd"},"shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Amount held as reported — a share count for equity lines, a principal amount for debt lines. Never a dollar figure. Null when the filing left it blank.","title":"Shares"},"put_call":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Option overlay as filed, Put or Call. Null for an ordinary long position, which is the common case.","title":"Put Call"},"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name exactly as this manager filed it, which is what the issuer query matched on. Null when the filing left it blank.","title":"Issuer"},"cusip":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CUSIP exactly as filed on this row (normally 9 characters). Null when the filing left it blank.","title":"Cusip"},"accession":{"description":"SEC accession number of the 13F-HR this position was read from, formatted 0001566307-26-000071.","title":"Accession","type":"string"}},"required":["manager_cik","manager_name","value_usd","shares","put_call","issuer","cusip","accession"],"title":"HolderRow","type":"object"}},"properties":{"as_of":{"description":"Timestamp this response was generated, ISO-8601 UTC with milliseconds and a Z suffix. Says nothing about data freshness — periods_held does.","title":"As Of","type":"string"},"periods_held":{"description":"13F report periods currently indexed, each a calendar quarter end as YYYY-MM-DD, newest first (at most the 8 most recent). Every answer is drawn from these.","items":{"type":"string"},"title":"Periods Held","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Versioned identifier of the deterministic rule set behind this response. It changes when the method changes, so results carrying one id are comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"From SEC Form 13F filings (public domain), reported quarterly with a filing lag; identifiers served as filed. Not investment advice.","description":"Fixed source and permitted-use notice attached to every 13F response.","title":"Disclaimer","type":"string"},"period":{"description":"Report period covered: always the newest indexed quarter (the first entry of periods_held), as YYYY-MM-DD. This view does not look at earlier quarters.","title":"Period","type":"string"},"count":{"description":"Number of holding managers in the holders list, at most the requested limit.","title":"Count","type":"integer"},"holders":{"description":"One element per institutional manager reporting the issuer that quarter, largest reported position value first. A manager that filed several lines for the issuer appears once, represented by its largest line.","items":{"$ref":"#/$defs/HolderRow"},"title":"Holders","type":"array"}},"required":["as_of","periods_held","period","count","holders"],"title":"HoldersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_13f_manager","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/manager","method":"GET","price_usd":0.02,"description":"A manager's most recent 13F-HR holdings - issuer, class, as-filed CUSIP/FIGI, value and shares - largest positions first, with the filing's accession for provenance. The dataset competitors gate behind their top subscription tiers.","buyer_use_case":"\"What does this fund hold?\" in one call, from the primary source.","when_to_use":"Per-manager portfolio questions; search view resolves the CIK first.","when_not_to_use":"Sub-quarterly freshness — 13F is quarterly with a filing lag.","avoids":["13F XML/dataset parsing","amendment handling","ranking"],"input_schema":{"additionalProperties":false,"properties":{"cik":{"description":"CIK of the 13F filer (institutional manager), 1-10 digits, zero padding optional (e.g. 1067983 for Berkshire Hathaway). A CIK with no 13F-HR in the held periods is an error; find one with /v1/sec/13f/managers.","maxLength":10,"pattern":"^\\d{1,10}$","title":"Cik","type":"string"},"period":{"anyOf":[{"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"13F report period, the calendar quarter end as YYYY-MM-DD (e.g. 2026-06-30). Omit for the newest quarter held, falling back to earlier held quarters.","title":"Period"},"limit":{"default":50,"description":"Maximum holdings returned from the selected filing, ordered by reported position value descending. Default 50.","maximum":500,"minimum":1,"title":"Limit","type":"integer"}},"required":["cik"],"title":"ManagerIn","type":"object"},"output_schema":{"$defs":{"HoldingRow":{"properties":{"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name exactly as the manager typed it on the filing (e.g. NVIDIA CORP); spellings are not normalized across filers. Null when the filing left it blank.","title":"Issuer"},"class_title":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title of the security class as filed (e.g. COM, COM CL A, NOTE 3.5% 2029). Null when the filing left it blank.","title":"Class Title"},"cusip":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CUSIP exactly as filed (normally 9 characters), tied to this filing rather than served as reference data. Null when the filing left it blank.","title":"Cusip"},"figi":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OpenFIGI identifier (12 characters) exactly as filed. The column is optional on Form 13F, so it is null for most rows.","title":"Figi"},"value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Market value of the position in US dollars as reported on the filing. Null when the filing left the value blank.","title":"Value Usd"},"shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Amount held as reported: a share count when share_type is SH, a principal amount when it is PRN. Never a dollar figure. Null when the filing left it blank.","title":"Shares"},"share_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Unit of the shares field as filed: SH (shares) or PRN (principal amount). Null when the filing left it blank.","title":"Share Type"},"put_call":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Option overlay as filed, Put or Call. Null for an ordinary long position, which is the common case.","title":"Put Call"},"accession":{"description":"SEC accession number of the 13F-HR this row was read from, formatted 0001566307-26-000071; use it to pull the original filing from EDGAR.","title":"Accession","type":"string"}},"required":["issuer","class_title","cusip","figi","value_usd","shares","share_type","put_call","accession"],"title":"HoldingRow","type":"object"}},"properties":{"as_of":{"description":"Timestamp this response was generated, ISO-8601 UTC with milliseconds and a Z suffix. Says nothing about data freshness — periods_held does.","title":"As Of","type":"string"},"periods_held":{"description":"13F report periods currently indexed, each a calendar quarter end as YYYY-MM-DD, newest first (at most the 8 most recent). Every answer is drawn from these.","items":{"type":"string"},"title":"Periods Held","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Versioned identifier of the deterministic rule set behind this response. It changes when the method changes, so results carrying one id are comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"From SEC Form 13F filings (public domain), reported quarterly with a filing lag; identifiers served as filed. Not investment advice.","description":"Fixed source and permitted-use notice attached to every 13F response.","title":"Disclaimer","type":"string"},"cik":{"description":"The manager's CIK as served, 10-digit zero-padded; the requested cik is left-padded with zeros to 10 digits before lookup.","title":"Cik","type":"string"},"manager_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager name from the served filing's cover page, as filed. Null when the cover page carried no name.","title":"Manager Name"},"period":{"description":"Report period actually served, a calendar quarter end as YYYY-MM-DD. With no period requested this is the newest quarter in which this manager filed a 13F-HR, which can be older than the newest entry of periods_held.","title":"Period","type":"string"},"accession":{"description":"SEC accession number of the filing these holdings come from: the manager's most recently filed 13F-HR for the period, so an amendment supersedes the original.","title":"Accession","type":"string"},"total_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total value of all positions on that filing's summary page, in US dollars as reported — the whole reported portfolio, not just the rows returned here. Null when the filing carries no summary page.","title":"Total Value Usd"},"positions_reported":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of holding entries the filing itself reports on its summary page. Compare with count, which is how many rows this response returns. Null when the filing carries no summary page.","title":"Positions Reported"},"count":{"description":"Number of holdings rows in this response, at most the requested limit and often fewer than positions_reported.","title":"Count","type":"integer"},"holdings":{"description":"One element per holding line on that single filing, largest reported position value first. A manager may report an issuer on several lines (separate lots), so an issuer can appear more than once.","items":{"$ref":"#/$defs/HoldingRow"},"title":"Holdings","type":"array"}},"required":["as_of","periods_held","cik","manager_name","period","accession","total_value_usd","positions_reported","count","holdings"],"title":"ManagerHoldingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_13f_manager_changes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/changes","method":"GET","price_usd":0.05,"description":"New, exited, increased and decreased positions for one manager between its two latest reported quarters - the derived layer competitors sell as premium analytics, computed from primary filings with both accessions cited.","buyer_use_case":"\"What did this fund buy and sell last quarter?\" in one call.","when_to_use":"Flow questions per manager; needs the manager CIK.","when_not_to_use":"Intra-quarter trades — 13F shows quarter-end snapshots only.","avoids":["two-quarter joins","amendment handling","diff logic"],"input_schema":{"additionalProperties":false,"properties":{"cik":{"description":"CIK of the 13F filer (institutional manager), 1-10 digits, zero padding optional (e.g. 1067983 for Berkshire Hathaway). Needs a 13F-HR in both of the two most recently indexed quarters; find a manager with /v1/sec/13f/managers.","maxLength":10,"pattern":"^\\d{1,10}$","title":"Cik","type":"string"},"limit":{"default":50,"description":"Maximum position changes returned, ordered by the larger of the current and prior reported position value, descending. Default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["cik"],"title":"ChangesIn","type":"object"},"output_schema":{"$defs":{"ChangeRow":{"properties":{"issuer":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as filed for the position. Positions are matched between quarters on CUSIP where one was filed and on this name otherwise. Null when left blank.","title":"Issuer"},"cusip":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CUSIP exactly as filed for the position (normally 9 characters). Null when the filing left it blank, in which case the issuer name did the matching.","title":"Cusip"},"change":{"description":"What happened between the two quarters: new (not reported in the prior quarter), exited (not reported in the current one), increased or decreased (reported amount moved). Positions whose reported amount is unchanged are not returned.","title":"Change","type":"string"},"value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Reported value of the position in the current quarter in US dollars, summed over that filing's lines for it. Null when change is exited.","title":"Value Usd"},"prev_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Reported value of the position in the prior quarter in US dollars, summed over that filing's lines for it. Null when change is new.","title":"Prev Value Usd"},"shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Reported amount held in the current quarter — share count for equity lines, principal amount for debt lines — summed over that filing's lines for the position. Null when change is exited.","title":"Shares"},"prev_shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Reported amount held in the prior quarter, on the same basis as shares. Null when change is new.","title":"Prev Shares"}},"required":["issuer","cusip","change","value_usd","prev_value_usd","shares","prev_shares"],"title":"ChangeRow","type":"object"}},"properties":{"as_of":{"description":"Timestamp this response was generated, ISO-8601 UTC with milliseconds and a Z suffix. Says nothing about data freshness — periods_held does.","title":"As Of","type":"string"},"periods_held":{"description":"13F report periods currently indexed, each a calendar quarter end as YYYY-MM-DD, newest first (at most the 8 most recent). Every answer is drawn from these.","items":{"type":"string"},"title":"Periods Held","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Versioned identifier of the deterministic rule set behind this response. It changes when the method changes, so results carrying one id are comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"From SEC Form 13F filings (public domain), reported quarterly with a filing lag; identifiers served as filed. Not investment advice.","description":"Fixed source and permitted-use notice attached to every 13F response.","title":"Disclaimer","type":"string"},"cik":{"description":"The manager's CIK as served, 10-digit zero-padded; the requested cik is left-padded with zeros to 10 digits before lookup.","title":"Cik","type":"string"},"manager_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager name from the current quarter's filing cover page, as filed. Null when the cover page carried no name.","title":"Manager Name"},"period":{"description":"The more recent quarter compared: the newest indexed report period, a calendar quarter end as YYYY-MM-DD.","title":"Period","type":"string"},"prev_period":{"description":"The quarter compared against: the second-newest indexed report period as YYYY-MM-DD. It is the previous quarter we hold, not necessarily the calendar quarter immediately before period.","title":"Prev Period","type":"string"},"count":{"description":"Number of change rows in the changes list, at most the requested limit.","title":"Count","type":"integer"},"changes":{"description":"One element per position that changed between the two quarters, ordered by the larger of its current and prior reported value, descending.","items":{"$ref":"#/$defs/ChangeRow"},"title":"Changes","type":"array"}},"required":["as_of","periods_held","cik","manager_name","period","prev_period","count","changes"],"title":"ChangesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_13f_manager_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/search","method":"GET","price_usd":0.0,"description":"Search 13F filing managers by name substring - returns manager CIK, state, latest reported period, position count and total reported value. The free funnel into the paid 13F views. Quarterly data with the SEC's filing lag; identifiers as filed (ADR-0011).","buyer_use_case":"Resolve \"Berkshire\" to the manager CIK the holdings views take.","when_to_use":"First call before any 13F holdings question.","when_not_to_use":"Operating companies — use SEC CIK lookup; 13F CIKs are managers.","avoids":["full-text EDGAR search for managers","manual CIK hunting"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Case-insensitive substring of the manager name as filed on the 13F (e.g. berkshire). No match returns an empty list, not an error.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":10,"description":"Maximum managers returned, one row per manager, ordered by total reported portfolio value descending. Default 10.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"ManagerSearchIn","type":"object"},"output_schema":{"$defs":{"ManagerRow":{"properties":{"cik":{"description":"SEC CIK of the institutional manager, 10-digit zero-padded (e.g. 0001067983). This is the value the holdings and changes views take as their cik input.","title":"Cik","type":"string"},"manager_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager name from the filing's cover page, as filed. Null when the cover page carried no name.","title":"Manager Name"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager's state or country of business from the cover page: a two-letter US state code (e.g. NY) or an SEC country code. Null when not reported.","title":"State"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Report period of the filing summarized here, a calendar quarter end as YYYY-MM-DD (e.g. 2026-06-30). Null when the filing omitted the period.","title":"Period"},"holdings_count":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of holding entries the manager reports on the filing's summary page. Null when the filing carries no summary page.","title":"Holdings Count"},"value_total_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total value of all positions on the filing's summary page, in US dollars as reported. Covers 13F securities only, not the manager's total assets. Null when the filing carries no summary page.","title":"Value Total Usd"},"accession":{"description":"SEC accession number of the 13F-HR summarized here, formatted 0001566307-26-000071.","title":"Accession","type":"string"}},"required":["cik","manager_name","state","period","holdings_count","value_total_usd","accession"],"title":"ManagerRow","type":"object"}},"properties":{"as_of":{"description":"Timestamp this response was generated, ISO-8601 UTC with milliseconds and a Z suffix. Says nothing about data freshness — periods_held does.","title":"As Of","type":"string"},"periods_held":{"description":"13F report periods currently indexed, each a calendar quarter end as YYYY-MM-DD, newest first (at most the 8 most recent). Every answer is drawn from these.","items":{"type":"string"},"title":"Periods Held","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Versioned identifier of the deterministic rule set behind this response. It changes when the method changes, so results carrying one id are comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"From SEC Form 13F filings (public domain), reported quarterly with a filing lag; identifiers served as filed. Not investment advice.","description":"Fixed source and permitted-use notice attached to every 13F response.","title":"Disclaimer","type":"string"},"count":{"description":"Number of managers in the managers list, at most the requested limit.","title":"Count","type":"integer"},"managers":{"description":"One element per manager whose filed name matched, for the newest indexed quarter, ranked by total reported portfolio value descending. Amendments collapse to a single row per manager.","items":{"$ref":"#/$defs/ManagerRow"},"title":"Managers","type":"array"}},"required":["as_of","periods_held","count","managers"],"title":"ManagerSearchOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_13f_new_managers","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/new","method":"GET","price_usd":0.0,"description":"Institutional managers whose first-ever 13F (against our multi-quarter 13F index) is the given quarter — newly registered funds crossing the $100M reporting threshold, with holdings count and portfolio value, largest first. Needs the filing history we store; EDGAR cannot answer it directly. Free.","buyer_use_case":"An agent tracking fund formation wants each quarter's first-time 13F reporters — new institutional money — without building 13F history.","when_to_use":"You want net-new 13F reporters, not all filers.","when_not_to_use":"An existing manager's holdings — /v1/sec/13f/manager.","avoids":["13F history maintenance","threshold-crossing detection"],"input_schema":{"additionalProperties":false,"properties":{"period":{"anyOf":[{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"Quarter end (default latest)","title":"Period"},"limit":{"default":50,"description":"Maximum first-time managers returned, ordered by total reported portfolio value descending then CIK. Default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"NewManagersIn","type":"object"},"output_schema":{"$defs":{"NewManager":{"properties":{"cik":{"description":"Institutional investment manager's SEC Central Index Key, 10 digits zero-padded (e.g. 0001067983). Use this form when calling other views that take a cik.","title":"Cik","type":"string"},"manager_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing manager's name exactly as reported on the 13F cover page; null when the cover page is missing from the SEC dataset for this filing.","title":"Manager Name"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing manager's state or country as reported on the 13F cover page — a two-letter US state code, or an SEC country code for a non-US manager; null when unreported.","title":"State"},"first_period":{"description":"Report period (calendar quarter end) of this manager's first 13F, ISO-8601 YYYY-MM-DD. It always equals the response's `period`, since these are first-time filers for that quarter. This is the period covered, not the filing date.","title":"First Period","type":"string"},"holdings_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Number of line items in the manager's 13F information table for the period, as reported on the filing's summary page. Null when the summary page is absent.","title":"Holdings Count"},"value_total_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total value of the reported portfolio for the period, in US dollars exactly as reported on the 13F summary page and never rescaled by us. Null when the summary page is absent.","title":"Value Total Usd"}},"required":["cik","manager_name","state","first_period","holdings_count","value_total_usd"],"title":"NewManager","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the SEC 13F data sets.","title":"As Of","type":"string"},"period":{"description":"13F report period covered, the calendar quarter end as ISO-8601 YYYY-MM-DD (e.g. 2026-06-30). Echoes the requested period, or the latest period present in our 13F data when none was requested.","title":"Period","type":"string"},"count":{"description":"Number of managers in `managers` after the limit. Equal to the length of `managers`, not the total number of first-time filers in the period.","title":"Count","type":"integer"},"managers":{"description":"One manager filing 13F for the first time in this period per element, ordered by total reported portfolio value descending (largest first), with unreported values last and ties broken by CIK ascending. Amendments are excluded.","items":{"$ref":"#/$defs/NewManager"},"title":"Managers","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","period","count","managers"],"title":"NewManagersOutput","type":"object"},"cache_ttl_days":7,"methodology_version":"0.1.0"},{"id":"sec_13f_top_managers","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/13f/top","method":"GET","price_usd":0.0,"description":"Managers ranked by total reported 13F value for the latest period, optionally filtered by state - the market map of institutional money.","buyer_use_case":"The institutional landscape in one ranked call.","when_to_use":"Market-structure and prospecting questions.","when_not_to_use":"AUM — 13F reports covered securities only, not total AUM.","avoids":["dataset aggregation","ranking","state filtering"],"input_schema":{"additionalProperties":false,"properties":{"limit":{"default":25,"description":"Maximum managers returned for the newest quarter held, ordered by total reported portfolio value descending. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"},"state":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter US state code as reported on the filing, case-insensitive (e.g. NY). Omit for all states; a code no manager reports returns an empty list.","title":"State"}},"title":"TopManagersIn","type":"object"},"output_schema":{"$defs":{"ManagerRow":{"properties":{"cik":{"description":"SEC CIK of the institutional manager, 10-digit zero-padded (e.g. 0001067983). This is the value the holdings and changes views take as their cik input.","title":"Cik","type":"string"},"manager_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager name from the filing's cover page, as filed. Null when the cover page carried no name.","title":"Manager Name"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Manager's state or country of business from the cover page: a two-letter US state code (e.g. NY) or an SEC country code. Null when not reported.","title":"State"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Report period of the filing summarized here, a calendar quarter end as YYYY-MM-DD (e.g. 2026-06-30). Null when the filing omitted the period.","title":"Period"},"holdings_count":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of holding entries the manager reports on the filing's summary page. Null when the filing carries no summary page.","title":"Holdings Count"},"value_total_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total value of all positions on the filing's summary page, in US dollars as reported. Covers 13F securities only, not the manager's total assets. Null when the filing carries no summary page.","title":"Value Total Usd"},"accession":{"description":"SEC accession number of the 13F-HR summarized here, formatted 0001566307-26-000071.","title":"Accession","type":"string"}},"required":["cik","manager_name","state","period","holdings_count","value_total_usd","accession"],"title":"ManagerRow","type":"object"}},"properties":{"as_of":{"description":"Timestamp this response was generated, ISO-8601 UTC with milliseconds and a Z suffix. Says nothing about data freshness — periods_held does.","title":"As Of","type":"string"},"periods_held":{"description":"13F report periods currently indexed, each a calendar quarter end as YYYY-MM-DD, newest first (at most the 8 most recent). Every answer is drawn from these.","items":{"type":"string"},"title":"Periods Held","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Versioned identifier of the deterministic rule set behind this response. It changes when the method changes, so results carrying one id are comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"From SEC Form 13F filings (public domain), reported quarterly with a filing lag; identifiers served as filed. Not investment advice.","description":"Fixed source and permitted-use notice attached to every 13F response.","title":"Disclaimer","type":"string"},"period":{"description":"Report period ranked: always the newest indexed quarter (the first entry of periods_held), a calendar quarter end as YYYY-MM-DD.","title":"Period","type":"string"},"count":{"description":"Number of managers in the managers list, at most the requested limit.","title":"Count","type":"integer"},"managers":{"description":"One element per manager that filed a 13F-HR for the period (restricted to the requested state when given), ranked by total reported portfolio value descending.","items":{"$ref":"#/$defs/ManagerRow"},"title":"Managers","type":"array"}},"required":["as_of","periods_held","period","count","managers"],"title":"TopManagersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_auditor_change","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/auditor-change","method":"GET","price_usd":0.02,"description":"8-K filings with Item 4.01 (change in registrant's certifying accountant) - a classic accounting red flag, pre-filtered. sec-api sells this as a standalone product.","buyer_use_case":"Accounting-risk monitoring in one call.","when_to_use":"Accounting-quality screens.","when_not_to_use":"Restatements — the non-reliance view is Item 4.02.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_bankruptcy","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/bankruptcy","method":"GET","price_usd":0.02,"description":"8-K filings with Item 1.03 (bankruptcy or receivership) in a window - the highest-salience corporate event, pre-filtered.","buyer_use_case":"Distress monitoring in one call.","when_to_use":"Distress and credit monitoring.","when_not_to_use":"Broader distress signals — the distress screen joins four item types.","avoids":["item filtering","polling","label mapping"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_by_item","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/item","method":"GET","price_usd":0.0,"description":"8-K filings carrying one item code (e.g. 5.02 officer changes, 2.02 earnings) in a window - the per-item feeds sec-api sells as separate products.","buyer_use_case":"One item code, one call, market-wide.","when_to_use":"You know the item code; the glossary lists them.","when_not_to_use":"Multiple items — the feed view takes a comma list.","avoids":["item filtering","EDGAR polling"],"input_schema":{"additionalProperties":false,"properties":{"code":{"description":"One 8-K item code in N.NN form, e.g. 5.02 for officer departures (see /v1/sec/8k/items). Exactly one; an unreported code returns an empty list.","maxLength":5,"pattern":"^\\d\\.\\d{2}$","title":"Code","type":"string"},"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events carrying the item returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["code"],"title":"EightKItemIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_changes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/changes","method":"GET","price_usd":0.005,"description":"Re-check, not a feed: send the cursor from your last call and get back how many flagged 8-K events changed plus their ids — no rows, no joins, under 2 KB. Poll this in a loop for half a cent; fetch /v1/sec/8k/since only when `changed > 0`. Replaces one full-feed call per poll, and the tokens of parsing a page of rows to discover nothing happened. The cursor is ingest time, so a filing that reaches EDGAR days late is still delivered. A first call without a cursor returns changed=0 and a cursor to start from.","buyer_use_case":"An agent that must notice flagged 8-K events within minutes polls this every few minutes for half a cent a call and pays for the full feed only on the calls that found something.","when_to_use":"A polling loop that needs to know whether anything happened, cheaply, before deciding to fetch and parse rows.\n","when_not_to_use":"One-off questions about an issuer — /v1/sec/events answers those. Backfills — cursors are clamped to 7 days; fetch the full feed instead.\n","avoids":["full-feed polling","row parsing to discover nothing changed","cursor bookkeeping against EDGAR"],"input_schema":{"additionalProperties":false,"properties":{"cursor":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"The `next_cursor` from your previous call to this endpoint. Omit it on the first call: you get changed=0 and a cursor set to now, which starts a poll loop for the price of one call. Cursors older than 7 days are clamped to 7 days back — this is a re-check, not a backfill; fetch the full feed instead.","title":"Cursor"}},"title":"ChangesIn","type":"object"},"output_schema":{"$defs":{"ChangeWindow":{"properties":{"from":{"description":"Start of the window examined, ISO 8601 UTC (your cursor).","title":"From","type":"string"},"to":{"description":"End of the window examined, ISO 8601 UTC (the new cursor).","title":"To","type":"string"}},"required":["from","to"],"title":"ChangeWindow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"When this answer was computed, ISO 8601 UTC.","title":"As Of","type":"string"},"feed":{"description":"Which feed this re-check watches, e.g. sec_8k.","title":"Feed","type":"string"},"changed":{"description":"How many rows in this feed changed since your cursor. 0 means nothing happened and there is no reason to fetch the full feed.","title":"Changed","type":"integer"},"added":{"description":"Ids of rows that are new since your cursor, newest first, at most 100. Event ids for event feeds, accession numbers for filing feeds.","items":{"type":"string"},"title":"Added","type":"array"},"updated":{"description":"Ids of rows that existed before your cursor and were re-ingested after it — an amendment or a re-parse. Always empty on append-only event feeds.","items":{"type":"string"},"title":"Updated","type":"array"},"truncated":{"description":"True when `changed` exceeds the 100-id cap, so the lists are a sample of a larger diff. Fetch `full_feed_url` rather than paging this endpoint.","title":"Truncated","type":"boolean"},"empty":{"description":"True when nothing changed — the same as changed == 0.","title":"Empty","type":"boolean"},"cursor_from":{"description":"The cursor this call started from, echoed back (clamped if it was old).","title":"Cursor From","type":"string"},"next_cursor":{"description":"Store this and send it as `cursor` on the next poll. Opaque; do not parse.","title":"Next Cursor","type":"string"},"window":{"$ref":"#/$defs/ChangeWindow","description":"The ingest-time window this answer covers."},"full_feed_url":{"description":"The feed that returns the rows themselves. Call it only when changed > 0; its price is in next_endpoints.","title":"Full Feed Url","type":"string"},"coverage_started_at":{"description":"When our EDGAR index began. Nothing before this exists here no matter what cursor you send.","title":"Coverage Started At","type":"string"},"next_endpoints":{"description":"Where to go when changed > 0, each with the price of that call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"}},"required":["as_of","feed","changed","added","updated","truncated","empty","cursor_from","next_cursor","window","full_feed_url","coverage_started_at"],"title":"ChangesOutput","type":"object"},"cache_ttl_days":0,"methodology_version":"0.1.0"},{"id":"sec_8k_cyber_incident","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/cyber","method":"GET","price_usd":0.02,"description":"8-K filings with Item 1.05 (material cybersecurity incidents, mandatory since 2023) - pre-filtered breach disclosures.","buyer_use_case":"Breach-disclosure monitoring in one call.","when_to_use":"Security, insurance and vendor-risk monitoring.","when_not_to_use":"Incident details — we serve the filing event and link.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_delisting","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/delisting","method":"GET","price_usd":0.02,"description":"8-K filings with Item 3.01 (notice of delisting or failure to satisfy listing rules) - pre-filtered.","buyer_use_case":"Listing-status risk in one call.","when_to_use":"Distress and small-cap risk screens.","when_not_to_use":"Broader distress — the distress screen joins four item types.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_earnings_release","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/earnings","method":"GET","price_usd":0.0,"description":"8-K filings with Item 2.02 (results of operations) - the earnings-release tape, pre-filtered.","buyer_use_case":"Who just reported, in one call.","when_to_use":"Earnings-cycle monitoring.","when_not_to_use":"The numbers — use the XBRL views for reported facts.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_feed","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k","method":"GET","price_usd":0.0,"description":"Every indexed 8-K with item codes mapped to event labels, filterable by item, ticker and time window, with flags and salience scores, plus a priced next_endpoints hint to the issuer's fundamentals when the feed is filtered to one ticker. 15-minute refresh.","buyer_use_case":"The parsed 8-K tape in one call instead of polling and mapping items.","when_to_use":"Market-wide or per-ticker 8-K reading with item filters.","when_not_to_use":"One named event type — the dedicated views below are precise.","avoids":["EDGAR polling","item mapping","event labeling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"items":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated 8-K item codes, e.g. 5.02,2.02","title":"Items"},"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Filter to one issuer by US exchange ticker, case-insensitive (e.g. AAPL). Omit for every issuer; an unknown ticker returns zero events.","title":"Ticker"},"limit":{"default":50,"description":"Maximum 8-K events returned after filtering, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"EightKIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_impairment","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/impairment","method":"GET","price_usd":0.02,"description":"8-K filings with Item 2.06 (material impairments) in a window - pre-filtered write-down disclosures.","buyer_use_case":"Write-down monitoring in one call.","when_to_use":"Credit and asset-quality screens.","when_not_to_use":"The amounts — read the linked filing.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_item_glossary","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/items","method":"GET","price_usd":0.0,"description":"All 8-K item codes we index (1.01 through 9.01) mapped to machine-friendly event labels like bankruptcy, auditor_change, officer_or_director_change. Free, static.","buyer_use_case":"Agents filtering 8-K feeds need the item vocabulary once.","when_to_use":"Before filtering events by 8-K item or flag.","when_not_to_use":"n/a - it is free reference data.","avoids":["8-K item-code table lookup on SEC.gov"],"input_schema":{"additionalProperties":false,"properties":{},"title":"EmptyIn","type":"object"},"output_schema":{"$defs":{"GlossaryEntry":{"properties":{"code":{"description":"Identifier of the term in its own vocabulary: an EDGAR form type (8-K, 4, D), an 8-K item code in N.NN form (5.02), a single-letter Form 4 transaction code (P), or a flag name, depending on which glossary was called.","title":"Code","type":"string"},"name":{"description":"Machine-readable snake_case name of the term (e.g. insider_transaction, officer_or_director_change). Item and flag names appear in exactly this form in the flags and event_type fields of events elsewhere in this API.","title":"Name","type":"string"},"description":{"description":"One-sentence plain-English explanation of what the term means on a filing.","title":"Description","type":"string"},"covered":{"default":true,"description":"True when filings of this kind are carried by the live index today; false marks a form listed for reference only and not indexed yet. Always true in the item, transaction-code and flag glossaries.","title":"Covered","type":"boolean"}},"required":["code","name","description"],"title":"GlossaryEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. Glossaries are static reference data, so this is a build time rather than a data cut-off.","title":"As Of","type":"string"},"count":{"description":"Number of terms in `entries`. Glossaries are returned whole and never paged.","title":"Count","type":"integer"},"entries":{"description":"One vocabulary term per element, in a fixed reference order (form and 8-K item codes ascending, flags we derive ourselves last). Not ranked and not sorted by frequency.","items":{"$ref":"#/$defs/GlossaryEntry"},"title":"Entries","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","entries"],"title":"GlossaryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_items_history","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/history","method":"GET","price_usd":0.02,"description":"Every 8-K in the filer's SEC 'recent' window with item codes, filterable by item and date - the per-company 8-K history sec-api sells as item APIs, served from the submissions payload that already carries item codes.","buyer_use_case":"\"Every officer-change 8-K this company filed\" in one call, without indexing EDGAR.","when_to_use":"Per-company 8-K event history questions.","when_not_to_use":"Market-wide 8-K feeds — those views run on our index.","avoids":["submissions pagination","8-K item mapping","URL building"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"},"since":{"anyOf":[{"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"ISO date, YYYY-MM-DD (e.g. 2025-01-01); keeps 8-K filings filed on or after it. Omitted means the whole EDGAR recent-submissions window.","title":"Since"},"items":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated item codes, e.g. 5.02,2.02","title":"Items"},"limit":{"default":100,"description":"Maximum 8-K filings to return after the since and items filters, newest filing date first. Default 100.","maximum":500,"minimum":1,"title":"Limit","type":"integer"}},"title":"EightKHistoryIn","type":"object"},"output_schema":{"$defs":{"FilingRow":{"properties":{"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012; unique per filing and usable as the `accession` input to the filing-documents view.","title":"Accession","type":"string"},"form":{"description":"EDGAR form type exactly as filed, e.g. 10-K, 10-Q, 8-K, 4, S-1; amendments carry a /A suffix such as 8-K/A.","title":"Form","type":"string"},"filed":{"description":"Date the filing was accepted by EDGAR, YYYY-MM-DD. This is the field the views sort and filter on, not the period the filing covers.","title":"Filed","type":"string"},"report_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Period the filing reports on, YYYY-MM-DD (e.g. a fiscal quarter end). Null for forms EDGAR records no report date for, such as many 8-Ks.","title":"Report Date"},"items":{"default":[],"description":"8-K item codes disclosed by this filing, e.g. ['2.02', '5.02'], split from the EDGAR items column. Empty for forms that carry no item codes.","items":{"type":"string"},"title":"Items","type":"array"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR's description of the filing's primary document, when present. Null when EDGAR records none.","title":"Description"},"url":{"description":"Absolute URL of the filing's EDGAR index page, from which every document in the filing can be reached.","title":"Url","type":"string"}},"required":["accession","form","filed","url"],"title":"FilingRow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC submissions record may be a few hours older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer these filings belong to, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"count":{"description":"Number of rows in `filings` after every filter and the limit. Not the filer's total filing count.","title":"Count","type":"integer"},"filings":{"description":"One row per matching filing, ordered newest filing date first, drawn from the EDGAR recent-submissions window for this filer. Empty when nothing matches.","items":{"$ref":"#/$defs/FilingRow"},"title":"Filings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filings-since view only: the newest filing date returned (YYYY-MM-DD), to pass back as `since` to poll for newer filings; echoes the requested `since` when nothing matched. Null on views that do not paginate.","title":"Next Cursor"},"coverage_note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"8-K history view only: plain-text note giving the oldest filing date reachable in EDGAR's recent-submissions window for this filer, so a caller can tell a genuine absence from the window's edge. Null elsewhere and when no rows matched.","title":"Coverage Note"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each. A list of filings is the start of a question, not the answer to one. Empty on the views that do not suggest any.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","count","filings"],"title":"FilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_ma_events","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/ma","method":"GET","price_usd":0.02,"description":"8-K filings with Item 2.01 (completed acquisition/disposition) or 5.01 (change in control) - the deal-event tape, pre-filtered.","buyer_use_case":"Deal-event monitoring in one call.","when_to_use":"Deal-flow and event-driven monitoring.","when_not_to_use":"Rumored or announced-only deals — 8-Ks report completions and control changes.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_non_reliance","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/restatement","method":"GET","price_usd":0.02,"description":"8-K filings with Item 4.02 (non-reliance on previously issued financials) - the restatement signal, pre-filtered.","buyer_use_case":"Restatement monitoring in one call.","when_to_use":"Accounting-risk and short-research screens.","when_not_to_use":"Auditor changes — that is Item 4.01.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_officer_change","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/officer-change","method":"GET","price_usd":0.02,"description":"8-K filings with Item 5.02 (departure/appointment of directors and officers) - the most filed 8-K item and sec-api's biggest 8-K product, pre-filtered.","buyer_use_case":"Leadership-change monitoring in one call.","when_to_use":"Leadership and governance monitoring.","when_not_to_use":"Named-person detail — we serve the filing event, not parsed names yet.","avoids":["item filtering","polling"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Omit for this view's own default window of 7 to 30 recent days.","title":"Since"},"limit":{"default":50,"description":"Maximum 8-K events of this view's event type returned, newest first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"WindowIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_8k_since","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/8k/since","method":"GET","price_usd":0.0,"description":"Watch endpoint - 8-K events since an ISO cursor with optional item filter and a next_cursor to store. Empty responses are the cheap, normal case.","buyer_use_case":"Poll the 8-K tape without infrastructure.","when_to_use":"Recurring checks; store next_cursor between calls.","when_not_to_use":"One-off reads — use the feed.","avoids":["poller infrastructure","cursor bookkeeping"],"input_schema":{"additionalProperties":false,"properties":{"since":{"description":"Required cursor: return 8-K events at or after this ISO 8601 date or timestamp (e.g. 2026-08-01T12:00:00Z); UTC if no offset, capped at 90 days back.","maxLength":32,"title":"Since","type":"string"},"items":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated 8-K item codes, e.g. 5.02,2.02; an event matching any one of them is returned. Omit for every item.","title":"Items"},"limit":{"default":100,"description":"Maximum 8-K events returned, newest first; 1 to 200, default 100. Poll again with next_cursor.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["since"],"title":"EightKSinceIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_busiest_filers","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filings/top","method":"GET","price_usd":0.02,"description":"Filers ranked by filing count over a chosen window (up to five years), optionally for one form type - prolific Form D issuers, serial S-1 registrants, heaviest 8-K disclosers - from the historical index.","buyer_use_case":"\"Who files the most X?\" answered in one ranked call.","when_to_use":"Ranked market questions by activity.","when_not_to_use":"Salience-ranked events — the digest and screens rank by signal, not volume.","avoids":["market-wide aggregation","bulk downloads","ranking code"],"input_schema":{"additionalProperties":false,"properties":{"form":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Single EDGAR form type, matched exactly and case-insensitively (e.g. 8-K). Omit to count every form.","title":"Form"},"days":{"default":90,"description":"Length in days of the lookback window ending today, 1 to 1830, clamped at the start of index coverage. Default 90.","maximum":1830,"minimum":1,"title":"Days","type":"integer"},"limit":{"default":25,"description":"Maximum filers to return, ranked by filing count in the window, highest first. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"TopFilersIn","type":"object"},"output_schema":{"$defs":{"TopFilerRow":{"properties":{"cik":{"description":"Filer's SEC CIK as a 10-digit zero-padded string, e.g. 0000320193.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as recorded in the index for this filer. Null when the index holds no name for any of the filer's filings in the window.","title":"Company"},"filings":{"description":"Number of filings this CIK made inside the window, restricted to the requested form type when one was given. This is the value the ranking is on.","title":"Filings","type":"integer"}},"required":["cik","company","filings"],"title":"TopFilerRow","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed, ISO-8601 with milliseconds and a Z suffix.","title":"As Of","type":"string"},"index_from":{"description":"Earliest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. Nothing filed before this date can appear in any count or list below, so treat it as the true start of coverage rather than the start of SEC history.","title":"Index From","type":"string"},"index_to":{"description":"Latest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. The index is refreshed periodically, so filings made after this date are not yet reflected.","title":"Index To","type":"string"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"},"window_days":{"description":"Length in days of the lookback window ending today, echoing the days input. The window actually counted starts no earlier than index_from, so it can be shorter than this when a long lookback runs past the start of coverage.","title":"Window Days","type":"integer"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The EDGAR form type counted, upper-cased from the request, e.g. 8-K. Null means filings of every form type were counted.","title":"Form"},"filers":{"description":"One entry per filer, ranked by filing count in the window, highest first, and truncated to the requested limit. Ties are broken arbitrarily, so a filer just below the cut may have the same count as the last entry.","items":{"$ref":"#/$defs/TopFilerRow"},"title":"Filers","type":"array"}},"required":["as_of","index_from","index_to","window_days","form","filers"],"title":"TopFilersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_cik_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/cik","method":"GET","price_usd":0.0,"description":"Resolves a stock ticker or company-name substring to zero-padded SEC CIK numbers with the registered company name, from the SEC's official company_tickers.json. The first call in most EDGAR workflows. Free, rate-limited.","buyer_use_case":"An agent has a ticker or a company name and needs the CIK every other SEC endpoint takes.","when_to_use":"You have a ticker or name and need the CIK that filings, facts and insider endpoints take.\n","when_not_to_use":"You already hold the CIK, or you need non-US issuers without SEC registration.\n","avoids":["company_tickers.json download and parse","zero-padding bugs","name-matching code"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Exact US exchange ticker, case-insensitive (e.g. AAPL). Provide ticker or name (both is allowed); no match returns an empty list, not an error.","title":"Ticker"},"name":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring of the registrant name (e.g. apple), matched against the SEC ticker file. Provide name or ticker; at most 25 matches are returned.","title":"Name"}},"title":"CikLookupIn","type":"object"},"output_schema":{"$defs":{"Match":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant, 10 digits zero-padded (e.g. 0000320193). Use this form when calling other views that take a cik.","title":"Cik","type":"string"},"ticker":{"description":"Uppercase US exchange ticker recorded for this CIK in the SEC company_tickers file (e.g. AAPL). One ticker is kept per CIK, so a registrant with several listed symbols appears once.","title":"Ticker","type":"string"},"name":{"description":"Registrant name exactly as published in the SEC company_tickers file (e.g. Apple Inc.); capitalisation follows the file, not a house style.","title":"Name","type":"string"}},"required":["cik","ticker","name"],"title":"Match","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the SEC ticker file, which is refreshed daily.","title":"As Of","type":"string"},"count":{"description":"Number of registrants in `matches` after the per-view cap. Equal to the length of `matches`, not the number of matches that existed before the cap.","title":"Count","type":"integer"},"matches":{"description":"One registrant per element, in SEC ticker-file order (roughly largest companies first). Not ranked by relevance to the query; an empty list means no match.","items":{"$ref":"#/$defs/Match"},"title":"Matches","type":"array"},"source":{"default":"https://www.sec.gov/files/company_tickers.json","description":"URL of the SEC file these ticker-to-CIK matches come from; constant, and the only source consulted by this view.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","matches"],"title":"MatchesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_companies_by_sic","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/companies-by-sic","method":"GET","price_usd":0.0,"description":"Every 10-K registrant filing under a SIC industry code, with CIK plus name and ticker where the SEC ticker file has them. Pairs with /v1/sec/sic (text to code) to turn an industry name into an actual list of companies — EDGAR's own company search returns this only as paginated HTML/Atom with broken name fields. Free.","buyer_use_case":"An agent asked about an industry needs the registrants in it before running any company-level analysis.","when_to_use":"You have a SIC code (or got one from /v1/sec/sic) and need its companies.","when_not_to_use":"Quantitative comparables — /v1/peers/similar ranks by XBRL similarity.","avoids":["EDGAR company-search pagination","broken Atom name fields"],"input_schema":{"additionalProperties":false,"properties":{"sic":{"description":"SEC SIC code, e.g. 7372 (see /v1/sec/sic)","maximum":9999,"minimum":100,"title":"Sic","type":"integer"},"limit":{"default":50,"description":"Maximum registrants to return, in EDGAR company-search order. Capped at 100. Default 50.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["sic"],"title":"SicCompaniesIn","type":"object"},"output_schema":{"$defs":{"SicCompany":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant, 10 digits zero-padded (e.g. 0000320193).","title":"Cik","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as published in the SEC company_tickers file. Null when the filer is absent from that file, which is normal for unlisted registrants.","title":"Name"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker from the SEC company_tickers file (e.g. AAPL). Null for registrants with no listed ticker.","title":"Ticker"}},"required":["cik","name","ticker"],"title":"SicCompany","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"sic":{"description":"The SEC SIC industry code that was queried, echoed back (e.g. 7372).","title":"Sic","type":"integer"},"count":{"description":"Number of registrants returned in companies, at most limit.","title":"Count","type":"integer"},"companies":{"description":"One entry per registrant that files 10-K under this SIC code, in the order EDGAR company search returns them; the list is not ranked or alphabetised.","items":{"$ref":"#/$defs/SicCompany"},"title":"Companies","type":"array"},"note":{"default":"Registrants filing 10-K under this SIC code, per EDGAR company search. Names and tickers are filled from the SEC ticker file, so unlisted filers show cik only.","description":"Fixed caveat describing how this registrant list is built and its coverage limits.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","sic","count","companies"],"title":"SicCompaniesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_company_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/search/company","method":"GET","price_usd":0.0,"description":"Substring search over registered company names and tickers in the SEC's official mapping; returns candidate filers with CIK, ticker and name. Free, rate-limited.","buyer_use_case":"An agent has a partial or informal company name and needs candidate SEC registrants.","when_to_use":"The exact registered name or ticker is unknown.","when_not_to_use":"You already have the ticker or CIK — use the lookups.","avoids":["name normalization","mapping-file parsing"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Search text, 2 to 80 characters: a case-insensitive substring of the registrant name or an exact ticker (e.g. tesla or TSLA). No match returns an empty list.","maxLength":80,"minLength":2,"title":"Q","type":"string"},"limit":{"default":10,"description":"Maximum matches returned, in SEC ticker-file order (roughly largest first); 1 to 50, default 10.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"CompanySearchIn","type":"object"},"output_schema":{"$defs":{"Match":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant, 10 digits zero-padded (e.g. 0000320193). Use this form when calling other views that take a cik.","title":"Cik","type":"string"},"ticker":{"description":"Uppercase US exchange ticker recorded for this CIK in the SEC company_tickers file (e.g. AAPL). One ticker is kept per CIK, so a registrant with several listed symbols appears once.","title":"Ticker","type":"string"},"name":{"description":"Registrant name exactly as published in the SEC company_tickers file (e.g. Apple Inc.); capitalisation follows the file, not a house style.","title":"Name","type":"string"}},"required":["cik","ticker","name"],"title":"Match","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the SEC ticker file, which is refreshed daily.","title":"As Of","type":"string"},"count":{"description":"Number of registrants in `matches` after the per-view cap. Equal to the length of `matches`, not the number of matches that existed before the cap.","title":"Count","type":"integer"},"matches":{"description":"One registrant per element, in SEC ticker-file order (roughly largest companies first). Not ranked by relevance to the query; an empty list means no match.","items":{"$ref":"#/$defs/Match"},"title":"Matches","type":"array"},"source":{"default":"https://www.sec.gov/files/company_tickers.json","description":"URL of the SEC file these ticker-to-CIK matches come from; constant, and the only source consulted by this view.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","matches"],"title":"MatchesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_crosswalk","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/crosswalk","method":"GET","price_usd":0.0,"description":"One company, resolved across sources: its SEC identity (CIK, ready for every SEC endpoint) and the federal award recipient names it plausibly matches in USAspending. No public key links a CIK to a federal recipient, so the spending leg is a name match with a confidence grade per row and corporate suffixes normalized away. Free.","buyer_use_case":"An agent studying a public company wants to know whether it also appears as a federal contractor or grantee, and under which recipient names, without inventing a mapping.","when_to_use":"You have a company and need its identity in both the SEC and federal-spending worlds.","when_not_to_use":"Spending amounts and trajectories — /v1/funding/signals; SEC-only resolution — /v1/sec/resolve.\n","avoids":["hand-built CIK-to-recipient mappings","corporate suffix mismatches","assuming a name match is an entity match"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Any issuer string: company name, ticker or CIK (e.g. Nvidia). Provide exactly one of q, ticker or cik; ticker and cik take precedence over q.","title":"Q"},"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL). Provide exactly one of ticker, cik or q.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193). Provide exactly one of cik, ticker or q.","title":"Cik"}},"title":"CrosswalkIn","type":"object"},"output_schema":{"$defs":{"CrosswalkRef":{"properties":{"source":{"description":"Dataset this reference points into: sec_edgar for SEC registrants, usaspending for federal award recipients.","title":"Source","type":"string"},"identifier_kind":{"description":"Kind of identifier carried in identifier: cik for the SEC leg; uei, or recipient_name when no UEI is published, for the federal leg.","title":"Identifier Kind","type":"string"},"identifier":{"description":"The identifier itself: a 10-digit zero-padded CIK, a 12-character Unique Entity ID, or the recipient's name when USAspending publishes no UEI for it.","title":"Identifier","type":"string"},"label":{"description":"Entity name exactly as the source publishes it, before any normalisation.","title":"Label","type":"string"},"next_url":{"description":"Ready-to-call relative URL for this entity on its own source: the SEC entity profile for the SEC leg, the federal recipient search for a spending leg.","title":"Next Url","type":"string"},"confidence":{"description":"How sure the link is: exact (same name once corporate suffixes are stripped, or an identifier match on the SEC leg), strong (the name extends it, often a subsidiary or affiliate), weak (a looser match that may be an unrelated company).","title":"Confidence","type":"string"}},"required":["source","identifier_kind","identifier","label","next_url","confidence"],"title":"CrosswalkRef","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"query":{"description":"The issuer string this crosswalk resolved, echoed back: ticker, cik or q, in that order of precedence.","title":"Query","type":"string"},"sec":{"anyOf":[{"$ref":"#/$defs/CrosswalkRef"},{"type":"null"}],"description":"The SEC EDGAR leg of the crosswalk, resolved by identifier. Null when nothing in EDGAR matched the query but federal recipients did."},"federal_recipients":{"description":"Up to eight USAspending recipients whose name matches the issuer, ordered exact first, then strong, then weak. Each is a name-based candidate, not a confirmed identity.","items":{"$ref":"#/$defs/CrosswalkRef"},"title":"Federal Recipients","type":"array"},"note":{"default":"The SEC leg is an exact identifier resolution; federal-spending legs are NAME matches (no public key links a CIK to a recipient). exact = same name once corporate suffixes are stripped; strong = the name extends it, usually a subsidiary or affiliate rather than the same legal entity; weak = a looser match that may be an unrelated company. Absence of a federal match is not evidence the company holds no federal awards.","description":"Fixed caveat on how the SEC and federal legs are matched and how to read each confidence grade.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","sec","federal_recipients"],"title":"CrosswalkOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_distress_screen","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/screen/distress","method":"GET","price_usd":0.05,"description":"Joins bankruptcy (1.03), delisting (3.01), non-reliance (4.02) and impairment (2.06) events into one list ranked by salience score - a derived distress screen no incumbent sells as a single call.","buyer_use_case":"The one-call distress list for credit and short-research agents.","when_to_use":"Cross-signal distress screening.","when_not_to_use":"One signal type — the dedicated views are cheaper.","avoids":["joining four feeds","score modeling","ranking"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 30 days.","title":"Since"},"min_score":{"default":0.0,"description":"Keep only events whose score is at or above this value, 0 to 1. Default 0 keeps every distress event, including those with no score.","maximum":1,"minimum":0,"title":"Min Score","type":"number"},"limit":{"default":50,"description":"Maximum distress events returned, highest score first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"DistressIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_earnings_changes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/earnings/changes","method":"GET","price_usd":0.005,"description":"Re-check, not a feed: send the cursor from your last call and get back how many 8-K Item 2.02 earnings releases were indexed — or had their figures filled in — since then, plus their accession numbers. No rows, no joins, under 2 KB. Poll it in a loop for half a cent and pay for /v1/sec/earnings/recent only when `changed > 0`. The cursor is ingest time, so a filing that reaches EDGAR late is still delivered, and a release whose figures arrive in a later pass shows up as an update.","buyer_use_case":"An agent that must notice earnings within minutes polls this every few minutes for half a cent and buys the feed only on the calls that found something.","when_to_use":"A polling loop that needs to know whether any issuer has reported, cheaply, before deciding to buy the feed.\n","when_not_to_use":"One-off questions about a named issuer — /v1/sec/earnings/latest answers those. Backfills — cursors are clamped to 7 days; fetch the feed instead.\n","avoids":["full-feed polling","row parsing to discover nothing changed","cursor bookkeeping against EDGAR"],"input_schema":{"additionalProperties":false,"properties":{"cursor":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"The `next_cursor` from your previous call to this endpoint. Omit it on the first call: you get changed=0 and a cursor set to now, which starts a poll loop for the price of one call. Cursors older than 7 days are clamped to 7 days back — this is a re-check, not a backfill; fetch the full feed instead.","title":"Cursor"}},"title":"ChangesIn","type":"object"},"output_schema":{"$defs":{"ChangeWindow":{"properties":{"from":{"description":"Start of the window examined, ISO 8601 UTC (your cursor).","title":"From","type":"string"},"to":{"description":"End of the window examined, ISO 8601 UTC (the new cursor).","title":"To","type":"string"}},"required":["from","to"],"title":"ChangeWindow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"When this answer was computed, ISO 8601 UTC.","title":"As Of","type":"string"},"feed":{"description":"Which feed this re-check watches, e.g. sec_8k.","title":"Feed","type":"string"},"changed":{"description":"How many rows in this feed changed since your cursor. 0 means nothing happened and there is no reason to fetch the full feed.","title":"Changed","type":"integer"},"added":{"description":"Ids of rows that are new since your cursor, newest first, at most 100. Event ids for event feeds, accession numbers for filing feeds.","items":{"type":"string"},"title":"Added","type":"array"},"updated":{"description":"Ids of rows that existed before your cursor and were re-ingested after it — an amendment or a re-parse. Always empty on append-only event feeds.","items":{"type":"string"},"title":"Updated","type":"array"},"truncated":{"description":"True when `changed` exceeds the 100-id cap, so the lists are a sample of a larger diff. Fetch `full_feed_url` rather than paging this endpoint.","title":"Truncated","type":"boolean"},"empty":{"description":"True when nothing changed — the same as changed == 0.","title":"Empty","type":"boolean"},"cursor_from":{"description":"The cursor this call started from, echoed back (clamped if it was old).","title":"Cursor From","type":"string"},"next_cursor":{"description":"Store this and send it as `cursor` on the next poll. Opaque; do not parse.","title":"Next Cursor","type":"string"},"window":{"$ref":"#/$defs/ChangeWindow","description":"The ingest-time window this answer covers."},"full_feed_url":{"description":"The feed that returns the rows themselves. Call it only when changed > 0; its price is in next_endpoints.","title":"Full Feed Url","type":"string"},"coverage_started_at":{"description":"When our EDGAR index began. Nothing before this exists here no matter what cursor you send.","title":"Coverage Started At","type":"string"},"next_endpoints":{"description":"Where to go when changed > 0, each with the price of that call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"}},"required":["as_of","feed","changed","added","updated","truncated","empty","cursor_from","next_cursor","window","full_feed_url","coverage_started_at"],"title":"ChangesOutput","type":"object"},"cache_ttl_days":0,"methodology_version":"0.1.0"},{"id":"sec_earnings_latest","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/earnings/latest","method":"GET","price_usd":0.02,"description":"The issuer's newest 8-K Item 2.02 earnings release: accession, filing and acceptance times, period, links to the 8-K and to the EX-99 press release, and the headline figures read deterministically out of that release — revenue, net income and diluted EPS, each with its prior-year comparative, the year-over-year change, whether it came from the filing's inline XBRL or from the press-release table, a confidence, and the row it was read from. A figure we cannot read is null with a reason; nothing here is estimated, modelled or compared to analyst consensus (we hold no rights to estimates).","buyer_use_case":"An agent that must react to an earnings release within minutes wants the numbers and the document links in one call, instead of fetching EDGAR, finding the exhibit and writing a table parser that breaks on the next filer.","when_to_use":"You have a ticker or CIK and need the most recent reported quarter's headline figures with links to the filing that stated them.\n","when_not_to_use":"You need audited XBRL fundamentals across years (/v1/sec/xbrl/financials), a market-wide feed of who just reported (/v1/sec/earnings/recent), or a comparison against analyst estimates, which this product will never carry.\n","avoids":["EDGAR full-text search","exhibit discovery","press-release table parsing","per-figure unit and scale handling"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker of the issuer, case-insensitive (e.g. ADBE). Provide ticker or cik; cik wins if both are sent. An issuer with no indexed release returns found=false, not an error.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK of the issuer, with or without leading zeros (e.g. 796343 or 0000796343). Provide cik or ticker; resolve a name first with /v1/sec/cik.","title":"Cik"}},"title":"LatestIn","type":"object"},"output_schema":{"$defs":{"EarningsRelease":{"properties":{"accession":{"description":"SEC accession number of the 8-K, e.g. 0000796343-26-000147; the release's id.","title":"Accession","type":"string"},"cik":{"description":"Zero-padded 10-digit SEC CIK of the issuer that filed it.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Uppercase US exchange ticker from the SEC company_tickers file; null for issuers absent from it (trusts, foreign private issuers, recent listings).","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Registrant name as EDGAR publishes it on the filing.","title":"Company"},"filed_at":{"description":"EDGAR filing date of the 8-K, ISO 8601 (date only, as the index reports it).","title":"Filed At","type":"string"},"accepted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"When EDGAR accepted the submission, ISO 8601 UTC, from the filing's own archive timestamps. Null until the filing's documents have been fetched.","title":"Accepted At"},"period_of_report":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Period-of-report date on the 8-K cover (ISO date). For an earnings 8-K this is usually the release date, not the fiscal period end — the fiscal period is in each figure's `period`.","title":"Period Of Report"},"items":{"description":"8-K item codes on the filing in N.NN form, always including 2.02 (results of operations); 9.01 marks the attached exhibits.","items":{"type":"string"},"title":"Items","type":"array"},"is_item_202":{"description":"Always true here: this feed carries only filings reporting Item 2.02.","title":"Is Item 202","type":"boolean"},"filing_url":{"description":"EDGAR index page for the filing, listing every document.","title":"Filing Url","type":"string"},"primary_doc_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct link to the 8-K document itself; null if the index gave no name.","title":"Primary Doc Url"},"exhibit_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct link to the EX-99 press release the figures were read from. Null when the exhibit has not been fetched yet or the filing attached none.","title":"Exhibit Url"},"figures":{"$ref":"#/$defs/Figures","description":"The headline figures, each with its source, confidence and prior-year value."},"figures_status":{"description":"Extraction state of this release: 'parsed' (at least one figure read), 'no_figures' (the exhibit was read and stated none deterministically), 'no_exhibit' (no EX-99 text exhibit was filed), 'pending' (indexed, exhibit not read yet) or 'unavailable' (the document could not be fetched).","title":"Figures Status","type":"string"},"available_after_minutes":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minutes from EDGAR accepting the filing to this row existing here — our measured end-to-end delay for this release, not a target. Null until `accepted_at` is known.","title":"Available After Minutes"},"method_id":{"description":"Identifier of the extraction method that produced these figures.","title":"Method Id","type":"string"},"method_version":{"description":"Version of that method; a changed method gets a new version and new rows.","title":"Method Version","type":"string"},"evidence_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"SHA-256 of the exact exhibit document the figures were read from, so a caller can prove which text was parsed. Null before extraction.","title":"Evidence Hash"}},"required":["accession","cik","filed_at","items","is_item_202","filing_url","figures","figures_status","method_id","method_version"],"title":"EarningsRelease","type":"object"},"Figure":{"description":"One headline number as the release reported it, or the reason there is none.","properties":{"value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"The figure in whole US dollars (revenue, net income) or dollars per share (diluted EPS), negative for a loss. Null whenever `reason` is set — a figure we cannot read deterministically is never estimated.","title":"Value"},"unit":{"description":"Unit of `value` and `prior_value`: USD for totals, USD/share for per-share.","title":"Unit","type":"string"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"The period this figure covers, as the release labels its own column, e.g. 'Three Months Ended August 28, 2026', or an ISO date range for an XBRL-sourced figure. Null when the statement carried no period header.","title":"Period"},"prior_value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"The same figure for the prior-year comparative column of the same statement, in the same unit. Null when the release published no comparative.","title":"Prior Value"},"prior_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Label of the comparative period, in the same form as `period`; null if absent.","title":"Prior Period"},"yoy_change_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Percentage change from `prior_value` to `value`, computed as (value - prior) / |prior| * 100 and rounded to two decimals. Null when either side is missing or the prior value is zero.","title":"Yoy Change Pct"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Where the number came from: 'xbrl' when the filer tagged the fact in the filing's inline XBRL (authoritative, preferred), 'exhibit_text' when it was read off a financial-statement table in the EX-99 press release. Null when there is no value.","title":"Source"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"How reliable the extraction is, 0 to 1: 0.98 for a tagged XBRL fact, 0.9 for a clean statement table with a period header and a comparative, lower when the table was ambiguous. It rates our reading of the document, not the company. Null when there is no value.","title":"Confidence"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"The row the number was read from, as plain text, so the value can be checked against the linked document without re-parsing it. Null for XBRL-sourced figures.","title":"Excerpt"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Why `value` is null: not_found_in_exhibit (no matching statement row), units_not_stated (the table declared no scale), conflicting_values (two rows disagreed), value_out_of_range (a failed parse), not_yet_extracted (the exhibit has not been read yet), exhibit_unavailable, or no_exhibit_filed. Null when a value is present.","title":"Reason"}},"required":["unit"],"title":"Figure","type":"object"},"Figures":{"properties":{"revenue":{"$ref":"#/$defs/Figure","description":"Total revenue for the reported period, in USD."},"net_income":{"$ref":"#/$defs/Figure","description":"Net income (negative for a net loss) for the reported period, in USD."},"eps_diluted":{"$ref":"#/$defs/Figure","description":"Diluted earnings per share for the reported period, in USD per share."}},"required":["revenue","net_income","eps_diluted"],"title":"Figures","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"When this answer was computed, ISO 8601 UTC.","title":"As Of","type":"string"},"found":{"description":"True when we hold an earnings release for this issuer. False is a normal answer, not an error: see `reason`.","title":"Found","type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Why `release` is null: 'no_earnings_release_indexed' (the issuer has filed none since coverage began) or 'unknown_issuer' (no ticker or CIK match in the index). Null when found is true.","title":"Reason"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Ticker the lookup used, uppercased; null if you passed a CIK.","title":"Ticker"},"cik":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Zero-padded CIK the lookup used; null if you passed a ticker.","title":"Cik"},"release":{"anyOf":[{"$ref":"#/$defs/EarningsRelease"},{"type":"null"}],"default":null,"description":"The issuer's most recent Item 2.02 release; null when not found."},"coverage_started_at":{"description":"When our EDGAR index began, ISO 8601 UTC. Nothing filed before this exists here.","title":"Coverage Started At","type":"string"},"next_endpoints":{"description":"Onward calls for this issuer, each with the price of that call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Figures are extracted mechanically from the issuer's own 8-K Item 2.02 press release or its inline XBRL; they are not audited financial statements, carry no comparison to analyst consensus (we hold no rights to estimates), and are not investment advice.","description":"Fixed notice about how these figures are derived.","title":"Disclaimer","type":"string"}},"required":["as_of","found","coverage_started_at"],"title":"LatestOutput","type":"object"},"cache_ttl_days":0,"methodology_version":"0.1.0"},{"id":"sec_earnings_recent","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/earnings/recent","method":"GET","price_usd":0.02,"description":"Every 8-K Item 2.02 earnings release we have indexed since your `since` time, newest first, in the same row shape as /v1/sec/earnings/latest — issuer, accession, acceptance time, document links, and revenue, net income and diluted EPS with prior-year comparatives, sources and confidences. Ordered by when we indexed the filing rather than by its filing date, so a release that reaches EDGAR late is still delivered in order. Figures we cannot read deterministically are null with a reason; nothing is estimated, and no figure is ever compared to analyst consensus (estimates are commercial IP we hold no rights to redistribute).","buyer_use_case":"An agent watching the whole market during earnings season wants one call that returns everybody who just reported, with the numbers already extracted.","when_to_use":"You want everything that reported in a window, not one named issuer.\n","when_not_to_use":"You only care about one issuer (/v1/sec/earnings/latest), or you are polling to find out whether anything happened at all — that is /v1/sec/earnings/changes at a quarter of the price.\n","avoids":["polling EDGAR full-text search","item-code filtering","exhibit fetching per filing","table parsing"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest index time, ISO 8601 date or timestamp (e.g. 2026-09-17 or 2026-09-17T12:00:00Z); UTC if no offset, capped at 90 days back. Default: 2 days.","title":"Since"},"limit":{"default":25,"description":"Maximum releases to return, newest indexed first; 1 to 100, default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"RecentIn","type":"object"},"output_schema":{"$defs":{"EarningsRelease":{"properties":{"accession":{"description":"SEC accession number of the 8-K, e.g. 0000796343-26-000147; the release's id.","title":"Accession","type":"string"},"cik":{"description":"Zero-padded 10-digit SEC CIK of the issuer that filed it.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Uppercase US exchange ticker from the SEC company_tickers file; null for issuers absent from it (trusts, foreign private issuers, recent listings).","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Registrant name as EDGAR publishes it on the filing.","title":"Company"},"filed_at":{"description":"EDGAR filing date of the 8-K, ISO 8601 (date only, as the index reports it).","title":"Filed At","type":"string"},"accepted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"When EDGAR accepted the submission, ISO 8601 UTC, from the filing's own archive timestamps. Null until the filing's documents have been fetched.","title":"Accepted At"},"period_of_report":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Period-of-report date on the 8-K cover (ISO date). For an earnings 8-K this is usually the release date, not the fiscal period end — the fiscal period is in each figure's `period`.","title":"Period Of Report"},"items":{"description":"8-K item codes on the filing in N.NN form, always including 2.02 (results of operations); 9.01 marks the attached exhibits.","items":{"type":"string"},"title":"Items","type":"array"},"is_item_202":{"description":"Always true here: this feed carries only filings reporting Item 2.02.","title":"Is Item 202","type":"boolean"},"filing_url":{"description":"EDGAR index page for the filing, listing every document.","title":"Filing Url","type":"string"},"primary_doc_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct link to the 8-K document itself; null if the index gave no name.","title":"Primary Doc Url"},"exhibit_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct link to the EX-99 press release the figures were read from. Null when the exhibit has not been fetched yet or the filing attached none.","title":"Exhibit Url"},"figures":{"$ref":"#/$defs/Figures","description":"The headline figures, each with its source, confidence and prior-year value."},"figures_status":{"description":"Extraction state of this release: 'parsed' (at least one figure read), 'no_figures' (the exhibit was read and stated none deterministically), 'no_exhibit' (no EX-99 text exhibit was filed), 'pending' (indexed, exhibit not read yet) or 'unavailable' (the document could not be fetched).","title":"Figures Status","type":"string"},"available_after_minutes":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Minutes from EDGAR accepting the filing to this row existing here — our measured end-to-end delay for this release, not a target. Null until `accepted_at` is known.","title":"Available After Minutes"},"method_id":{"description":"Identifier of the extraction method that produced these figures.","title":"Method Id","type":"string"},"method_version":{"description":"Version of that method; a changed method gets a new version and new rows.","title":"Method Version","type":"string"},"evidence_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"SHA-256 of the exact exhibit document the figures were read from, so a caller can prove which text was parsed. Null before extraction.","title":"Evidence Hash"}},"required":["accession","cik","filed_at","items","is_item_202","filing_url","figures","figures_status","method_id","method_version"],"title":"EarningsRelease","type":"object"},"Figure":{"description":"One headline number as the release reported it, or the reason there is none.","properties":{"value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"The figure in whole US dollars (revenue, net income) or dollars per share (diluted EPS), negative for a loss. Null whenever `reason` is set — a figure we cannot read deterministically is never estimated.","title":"Value"},"unit":{"description":"Unit of `value` and `prior_value`: USD for totals, USD/share for per-share.","title":"Unit","type":"string"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"The period this figure covers, as the release labels its own column, e.g. 'Three Months Ended August 28, 2026', or an ISO date range for an XBRL-sourced figure. Null when the statement carried no period header.","title":"Period"},"prior_value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"The same figure for the prior-year comparative column of the same statement, in the same unit. Null when the release published no comparative.","title":"Prior Value"},"prior_period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Label of the comparative period, in the same form as `period`; null if absent.","title":"Prior Period"},"yoy_change_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Percentage change from `prior_value` to `value`, computed as (value - prior) / |prior| * 100 and rounded to two decimals. Null when either side is missing or the prior value is zero.","title":"Yoy Change Pct"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Where the number came from: 'xbrl' when the filer tagged the fact in the filing's inline XBRL (authoritative, preferred), 'exhibit_text' when it was read off a financial-statement table in the EX-99 press release. Null when there is no value.","title":"Source"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"How reliable the extraction is, 0 to 1: 0.98 for a tagged XBRL fact, 0.9 for a clean statement table with a period header and a comparative, lower when the table was ambiguous. It rates our reading of the document, not the company. Null when there is no value.","title":"Confidence"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"The row the number was read from, as plain text, so the value can be checked against the linked document without re-parsing it. Null for XBRL-sourced figures.","title":"Excerpt"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Why `value` is null: not_found_in_exhibit (no matching statement row), units_not_stated (the table declared no scale), conflicting_values (two rows disagreed), value_out_of_range (a failed parse), not_yet_extracted (the exhibit has not been read yet), exhibit_unavailable, or no_exhibit_filed. Null when a value is present.","title":"Reason"}},"required":["unit"],"title":"Figure","type":"object"},"Figures":{"properties":{"revenue":{"$ref":"#/$defs/Figure","description":"Total revenue for the reported period, in USD."},"net_income":{"$ref":"#/$defs/Figure","description":"Net income (negative for a net loss) for the reported period, in USD."},"eps_diluted":{"$ref":"#/$defs/Figure","description":"Diluted earnings per share for the reported period, in USD per share."}},"required":["revenue","net_income","eps_diluted"],"title":"Figures","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"When this answer was computed, ISO 8601 UTC.","title":"As Of","type":"string"},"since":{"description":"Start of the window covered, ISO 8601 UTC (your `since`, or 2 days back).","title":"Since","type":"string"},"count":{"description":"Number of releases in `releases`, at most your `limit`.","title":"Count","type":"integer"},"releases":{"description":"Earnings releases indexed in the window, newest first by the time we indexed them (not by filing date), so a late-arriving filing is never skipped.","items":{"$ref":"#/$defs/EarningsRelease"},"title":"Releases","type":"array"},"coverage_started_at":{"description":"When our EDGAR index began, ISO 8601 UTC; nothing earlier exists here.","title":"Coverage Started At","type":"string"},"next_endpoints":{"description":"Onward calls worth making from this feed, each with its price.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Figures are extracted mechanically from the issuer's own 8-K Item 2.02 press release or its inline XBRL; they are not audited financial statements, carry no comparison to analyst consensus (we hold no rights to estimates), and are not investment advice.","description":"Fixed notice about how these figures are derived.","title":"Disclaimer","type":"string"}},"required":["as_of","since","count","releases","coverage_started_at"],"title":"RecentOutput","type":"object"},"cache_ttl_days":0,"methodology_version":"0.1.0"},{"id":"sec_entity_profile","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/entity","method":"GET","price_usd":0.0,"description":"Identity block for one registrant from the SEC submissions API: name, tickers, exchanges, SIC, entity type, state of incorporation, fiscal year end, phone, website, former names, plus ready-to-call next_endpoints for this issuer with the price of each.","buyer_use_case":"One free call replaces fetching and slicing the 1-2MB submissions JSON.","when_to_use":"Identity and classification questions about any SEC filer.","when_not_to_use":"Financials — use the XBRL views; filings — use filings list.","avoids":["submissions JSON download and slicing"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"}},"title":"TickerCikIn","type":"object"},"output_schema":{"$defs":{"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC submissions record may be a few hours older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer the profile describes, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"name":{"description":"Registrant name exactly as EDGAR currently records it; empty string if EDGAR carries no name for the filer.","title":"Name","type":"string"},"tickers":{"description":"Every exchange ticker EDGAR associates with this filer, positionally aligned with `exchanges` upstream. Empty for filers with no listed security.","items":{"type":"string"},"title":"Tickers","type":"array"},"exchanges":{"description":"Exchange codes for the listed securities (e.g. Nasdaq, NYSE), blank entries removed. Empty for filers with no listed security.","items":{"type":"string"},"title":"Exchanges","type":"array"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC Standard Industrial Classification code, a 4-digit string (e.g. 3571). Null when EDGAR has not assigned one.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Plain-text industry label EDGAR pairs with `sic`. Null when `sic` is absent.","title":"Sic Description"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EDGAR filer-entity classification string, e.g. 'operating' for an operating company. Null when EDGAR does not record one.","title":"Entity Type"},"state_of_incorporation":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the jurisdiction of incorporation (US state code, e.g. DE, or an EDGAR country code). Null when not recorded.","title":"State Of Incorporation"},"fiscal_year_end":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fiscal-year end as a 4-character MMDD string (e.g. 0928 for late September), with no year. Null when EDGAR does not record one.","title":"Fiscal Year End"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Contact telephone number on the filer's EDGAR record. Null when not recorded.","title":"Phone"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Company website on the filer's EDGAR record. Null when EDGAR records none or the field is blank; not verified as reachable.","title":"Website"},"former_names":{"description":"Prior registrant names from EDGAR, one object per name with the upstream `name`, `from` and `to` timestamps. Empty when the filer never changed name.","items":{"additionalProperties":true,"type":"object"},"title":"Former Names","type":"array"},"source":{"description":"URL of the SEC submissions record this profile was read from.","title":"Source","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups for this issuer, with the price of each: the same onward list /v1/sec/resolve returns, so arriving here directly is not a dead end.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","name","tickers","exchanges","sic","sic_description","entity_type","state_of_incorporation","fiscal_year_end","phone","website","former_names","source"],"title":"EntityProfileOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_event_explain","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/event","method":"GET","price_usd":0.0,"description":"For one accession number in our index: the filing, its 8-K items and labels, and every derived event with flags and score. The free receipts behind every paid signal.","buyer_use_case":"Trust and debugging - agents can audit any flag we emit.","when_to_use":"Verifying or debugging a flag from any events endpoint.","when_not_to_use":"Discovery — it takes one known accession number.","avoids":["re-deriving flags","cross-referencing filings to events"],"input_schema":{"additionalProperties":false,"properties":{"accession":{"description":"EDGAR accession number with dashes, 10-2-6 digits (e.g. 0001193125-26-000123). An accession outside our recent-filings index returns 422.","maxLength":25,"pattern":"^\\d{10}-\\d{2}-\\d{6}$","title":"Accession","type":"string"}},"required":["accession"],"title":"ExplainIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"accession":{"description":"EDGAR accession number of the filing being explained, dashed 10-2-6 format (e.g. 0001193125-26-000123); echoes the request.","title":"Accession","type":"string"},"form":{"description":"EDGAR form type as recorded in the index: 8-K, 4 or D. Forms 3 and 5 share the ownership XML with Form 4 and are recorded as 4.","title":"Form","type":"string"},"filed_at":{"description":"When the filing was published on EDGAR: a YYYY-MM-DD date for 8-Ks, an ISO-8601 UTC timestamp to the second for ownership forms.","title":"Filed At","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as recorded with the filing; null when neither the filing nor the EDGAR feed supplied one.","title":"Company"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the registrant; null for filings with no symbol, which includes every Form D.","title":"Ticker"},"filing_url":{"description":"URL of the filing's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"},"items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"description":"8-K item codes reported on the filing, in N.NN form and in the order EDGAR lists them (e.g. [\"5.02\", \"9.01\"]). Null for Form 4 and Form D filings, which have no items.","title":"Items"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"description":"Machine-readable snake_case name of each entry in `items`, same length and same order (e.g. officer_or_director_change); an unrecognised code is repeated verbatim. Null whenever `items` is null.","title":"Labels"},"events":{"description":"Derived events already indexed for this filing, usually one and capped at 20, in storage order (no ordering is guaranteed). Empty when the filing produced no event, for instance a Form 4 reporting only grants.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","accession","form","filed_at","company","ticker","filing_url","items","labels","events"],"title":"ExplainOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filing_cadence","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filings/cadence","method":"GET","price_usd":0.02,"description":"Year-by-year filing counts per form for one filer from the historical index - reporting rhythm, disclosure volume and gaps at a glance, with coverage stated.","buyer_use_case":"Cadence questions (\"did they stop filing 10-Qs?\", \"8-K volume trend\") without pulling the filing list.","when_to_use":"Rhythm/volume questions per filer.","when_not_to_use":"Individual filings — use history or list views.","avoids":["aggregation over filing lists","multi-year pagination"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"}},"title":"CadenceIn","type":"object"},"output_schema":{"$defs":{"CadenceYear":{"properties":{"year":{"description":"Calendar year of the filing date, as a 4-digit string, e.g. 2024. The first and last years are partial wherever they meet index_from or index_to.","title":"Year","type":"string"},"counts":{"additionalProperties":{"type":"integer"},"description":"Number of filings this filer made in this year, keyed by EDGAR form type (e.g. 10-K, 8-K, 4) and sorted alphabetically by form. Forms with no filings that year are absent rather than zero.","title":"Counts","type":"object"},"total":{"description":"Total filings by this filer in this year, the sum of every value in counts.","title":"Total","type":"integer"}},"required":["year","counts","total"],"title":"CadenceYear","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed, ISO-8601 with milliseconds and a Z suffix.","title":"As Of","type":"string"},"index_from":{"description":"Earliest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. Nothing filed before this date can appear in any count or list below, so treat it as the true start of coverage rather than the start of SEC history.","title":"Index From","type":"string"},"index_to":{"description":"Latest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. The index is refreshed periodically, so filings made after this date are not yet reflected.","title":"Index To","type":"string"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"},"cik":{"description":"SEC CIK of the filer this cadence covers, as a 10-digit zero-padded string. Resolved from the ticker when a ticker was supplied.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as recorded in the index for this filer. Null when the filer has no filings in the index, in which case years is empty.","title":"Company"},"years":{"description":"One entry per calendar year in which this filer filed anything, most recent year first. Years with no filings are omitted, so gaps in the sequence are real inactivity. Covers the whole index window, not a requested window.","items":{"$ref":"#/$defs/CadenceYear"},"title":"Years","type":"array"},"total_filings":{"description":"Total filings by this filer across every year listed, i.e. within index coverage only, not the filer's lifetime SEC history.","title":"Total Filings","type":"integer"}},"required":["as_of","index_from","index_to","cik","company","years","total_filings"],"title":"CadenceOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filing_calendar","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/calendar","method":"GET","price_usd":0.02,"description":"Reporting cadence for one filer: fiscal year end, last 10-K and 10-Q dates, recent 10-Q cadence, and naive next-10-Q/next-10-K estimates from historical spacing (clearly labeled as estimates, not guidance).","buyer_use_case":"Agents timing coverage around expected reports get cadence in one call.","when_to_use":"Timing questions around periodic reports.","when_not_to_use":"Earnings-call dates or company guidance — we serve filing cadence only.","avoids":["cadence derivation","submissions slicing","date math"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"}},"title":"TickerCikIn","type":"object"},"output_schema":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC submissions record may be a few hours older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer this calendar describes, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"fiscal_year_end":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filer's fiscal-year end as a 4-character MMDD string (e.g. 1231), with no year. Null when EDGAR does not record one.","title":"Fiscal Year End"},"last_10k_filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date (YYYY-MM-DD) of the most recent 10-K in EDGAR's recent-submissions window. Null when no 10-K falls in that window.","title":"Last 10K Filed"},"last_10q_filed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filing date (YYYY-MM-DD) of the most recent 10-Q in EDGAR's recent-submissions window. Null when no 10-Q falls in that window.","title":"Last 10Q Filed"},"recent_10q_dates":{"description":"Up to the four most recent 10-Q filing dates (YYYY-MM-DD), newest first, so a caller can see the filer's actual quarterly cadence. Empty when none are in the window.","items":{"type":"string"},"title":"Recent 10Q Dates","type":"array"},"expected_next_10q":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Estimated date (YYYY-MM-DD) of the filer's next 10-Q, projected from its most recent periodic filing on a quarterly cadence. An estimate, never company guidance; null when no periodic filing is available to project from.","title":"Expected Next 10Q"},"expected_next_10k":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Estimated date (YYYY-MM-DD) of the filer's next 10-K, projected one year from the last 10-K. An estimate, never company guidance; null when no 10-K is available to project from.","title":"Expected Next 10K"},"note":{"default":"Expected dates are naive estimates from historical cadence, not company guidance.","description":"Fixed caveat on how the two expected_next_* dates should be read.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","fiscal_year_end","last_10k_filed","last_10q_filed","recent_10q_dates","expected_next_10q","expected_next_10k"],"title":"CalendarOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filing_documents","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filing/documents","method":"GET","price_usd":0.0,"description":"The document manifest for one accession - names, types, sizes and direct archive URLs - so an agent can fetch exactly the exhibit it needs.","buyer_use_case":"One call replaces the index-page scrape for a filing's documents.","when_to_use":"You have an accession and need its documents.","when_not_to_use":"Finding filings — use list/search views first.","avoids":["index-page scraping","URL construction"],"input_schema":{"additionalProperties":false,"properties":{"cik":{"description":"SEC CIK of the filer, 1-10 digits, zero padding optional (e.g. 320193). Required; this view does not accept a ticker.","maxLength":10,"pattern":"^\\d{1,10}$","title":"Cik","type":"string"},"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012. A cik and accession pair that does not exist returns 422.","maxLength":25,"pattern":"^\\d{10}-\\d{2}-\\d{6}$","title":"Accession","type":"string"}},"required":["cik","accession"],"title":"DocumentsIn","type":"object"},"output_schema":{"$defs":{"DocumentRow":{"properties":{"name":{"description":"File name of this item inside the filing's EDGAR archive folder, e.g. aapl-20260628.htm or R2.htm; empty string if EDGAR records no name.","title":"Name","type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EDGAR document type label for the item, e.g. 10-K, EX-31.1, GRAPHIC, XML. Null when EDGAR's filing index carries no type for the item.","title":"Type"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Size of the document in bytes. Null when EDGAR's filing index reports the size as blank or non-numeric, which happens for some items such as folders.","title":"Size"},"url":{"description":"Absolute URL from which this document can be fetched from EDGAR.","title":"Url","type":"string"}},"required":["name","type","size","url"],"title":"DocumentRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated. The document list of a filed filing does not change.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193); the requested cik after zero padding.","title":"Cik","type":"string"},"accession":{"description":"EDGAR accession number of the filing whose documents are listed, with dashes, e.g. 0000320193-26-000012; echoes the request.","title":"Accession","type":"string"},"count":{"description":"Number of rows in `documents`, i.e. items in this filing.","title":"Count","type":"integer"},"documents":{"description":"One row per file in the filing's EDGAR archive folder, in the order EDGAR's filing index lists them; includes exhibits and supporting files, not only the main document.","items":{"$ref":"#/$defs/DocumentRow"},"title":"Documents","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","accession","count","documents"],"title":"DocumentsOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"sec_filing_volume","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/volume","method":"GET","price_usd":0.0,"description":"Daily filing counts for one form over your window plus the 52-week weekly average and the same window last year, from our multi-year filing index — \"is this week's 8-K volume unusual\" in one call. EDGAR serves filings, not baselines. Free.","buyer_use_case":"An agent detecting market-wide anomalies (filing surges, quiet periods) needs volume against a consistent historical baseline.","when_to_use":"You need volume context — surge or lull detection — for a form type.","when_not_to_use":"The filings themselves — /v1/sec/filings/latest or /v1/sec/8k.","avoids":["counting EDGAR pages","building your own baseline history"],"input_schema":{"additionalProperties":false,"properties":{"form":{"description":"One EDGAR form type, matched exactly and case-insensitively (e.g. 8-K, 10-Q, S-1). Not comma-separated; a form with no filings returns zero counts.","maxLength":12,"minLength":1,"title":"Form","type":"string"},"days":{"default":30,"description":"Window in days over the EDGAR filing date, counted back from today, covering the daily series and window total. Default 30.","maximum":120,"minimum":7,"title":"Days","type":"integer"}},"required":["form"],"title":"FilingVolumeIn","type":"object"},"output_schema":{"$defs":{"DayCount":{"properties":{"day":{"description":"EDGAR filing date this count covers, ISO-8601 YYYY-MM-DD (a calendar day).","title":"Day","type":"string"},"filings":{"description":"Number of filings of the requested form type filed on that day. Days with no filings are omitted from the series rather than reported as zero.","title":"Filings","type":"integer"}},"required":["day","filings"],"title":"DayCount","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the historical filing index.","title":"As Of","type":"string"},"form":{"description":"EDGAR form type these counts cover, upper-cased from the request (e.g. 8-K). Exactly one form type is counted per response.","title":"Form","type":"string"},"window_days":{"description":"Length of the counted window in days ending today, echoing the `days` input; it governs both `daily` and `window_total`.","title":"Window Days","type":"integer"},"index_covers_since":{"description":"Earliest EDGAR filing date present in our historical filing index, ISO-8601 YYYY-MM-DD. Comparisons reaching before it cannot be made and are returned as null.","title":"Index Covers Since","type":"string"},"index_covers_until":{"description":"Latest EDGAR filing date present in the index, ISO-8601 YYYY-MM-DD. Filings made after it are not indexed yet, so the most recent days may still be filling in.","title":"Index Covers Until","type":"string"},"window_total":{"description":"Total filings of this form type over the window; the sum of the `daily` counts.","title":"Window Total","type":"integer"},"weekly_avg_52w":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Average number of filings of this form per week over the past 52 weeks, rounded to one decimal, as a baseline for the window. Null when the index does not reach back a full year, so no baseline can be offered.","title":"Weekly Avg 52W"},"same_window_last_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filings of this form in the equivalent window one year earlier (same length, ending 365 days ago), for a year-over-year comparison. Null when the index does not reach back that far.","title":"Same Window Last Year"},"daily":{"description":"One element per day in the window that had at least one filing, ordered by filing date ascending (oldest first).","items":{"$ref":"#/$defs/DayCount"},"title":"Daily","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","form","window_days","index_covers_since","index_covers_until","window_total","weekly_avg_52w","same_window_last_year","daily"],"title":"FilingVolumeOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filings_history","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filings/history","method":"GET","price_usd":0.0,"description":"Every filing by one filer in our historical index (2021-07 onward, refreshed monthly plus the 15-minute live feed for recent forms), filterable by form and date - beyond the SEC 'recent' shard the live list serves. Responses state the index coverage.","buyer_use_case":"\"Every 10-K and S-1 this filer submitted since 2021\" in one call, no pagination.","when_to_use":"Per-filer history beyond the recent shard.","when_not_to_use":"Pre-2021 history (not yet indexed) or full documents.","avoids":["EDGAR pagination","full-index downloads","URL construction"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"},"form":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Single EDGAR form type, matched exactly and case-insensitively (e.g. 10-K). Omit for all forms.","title":"Form"},"since":{"anyOf":[{"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"ISO date, YYYY-MM-DD (e.g. 2023-01-01); keeps filings filed on or after it. Defaults to the start of index coverage, reported as index_from.","title":"Since"},"limit":{"default":100,"description":"Maximum filings to return after the since and form filters, newest filing date first. Default 100.","maximum":500,"minimum":1,"title":"Limit","type":"integer"}},"title":"HistoryIn","type":"object"},"output_schema":{"$defs":{"HistoryRow":{"properties":{"accession":{"description":"SEC accession number of this filing, formatted NNNNNNNNNN-NN-NNNNNN. Unique per filing and stable forever; use it to deduplicate across calls.","title":"Accession","type":"string"},"form":{"description":"EDGAR form type exactly as recorded on the filing, e.g. 10-K, 10-Q, 8-K, S-1/A, 4 or 13F-HR.","title":"Form","type":"string"},"filed":{"description":"SEC filing date of this document, ISO-8601 YYYY-MM-DD.","title":"Filed","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as recorded on this filing, which can differ across rows if the company was renamed. Null when the index holds no name for the filing.","title":"Company"},"url":{"description":"Link to the filing-index page for this accession on sec.gov, listing the document and its exhibits.","title":"Url","type":"string"}},"required":["accession","form","filed","company","url"],"title":"HistoryRow","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed, ISO-8601 with milliseconds and a Z suffix.","title":"As Of","type":"string"},"index_from":{"description":"Earliest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. Nothing filed before this date can appear in any count or list below, so treat it as the true start of coverage rather than the start of SEC history.","title":"Index From","type":"string"},"index_to":{"description":"Latest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. The index is refreshed periodically, so filings made after this date are not yet reflected.","title":"Index To","type":"string"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"},"cik":{"description":"SEC CIK of the filer this history covers, as a 10-digit zero-padded string, e.g. 0000320193. Resolved from the ticker when a ticker was supplied.","title":"Cik","type":"string"},"count":{"description":"Number of filings in the filings list, i.e. after the limit was applied.","title":"Count","type":"integer"},"filings":{"description":"One entry per filing by this CIK that passed the since and form filters, ordered by filing date, newest first. Truncated to the requested limit, so a full result set may be incomplete at the older end.","items":{"$ref":"#/$defs/HistoryRow"},"title":"Filings","type":"array"}},"required":["as_of","index_from","index_to","cik","count","filings"],"title":"HistoryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filings_list","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filings","method":"GET","price_usd":0.0,"description":"The filing tape for one registrant from the submissions API - accession, form, dates, 8-K items and document description with index URLs - filterable by form type, plus a ready-to-call next_endpoints hint, priced, for events on the same issuer.","buyer_use_case":"One call replaces fetching submissions JSON and building URLs for every filing.","when_to_use":"Any per-filer filing listing need.","when_not_to_use":"Market-wide listing — use latest or search views.","avoids":["submissions pagination","archive URL construction","item parsing"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"},"form":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Single EDGAR form type, matched exactly and case-insensitively (e.g. 10-K, 8-K, 4); not a list. Omit for every form. An unfiled form returns an empty list.","title":"Form"},"limit":{"default":25,"description":"Maximum filings to return after the form filter, newest filing date first, from the EDGAR recent-submissions window. Default 25.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"FilingsListIn","type":"object"},"output_schema":{"$defs":{"FilingRow":{"properties":{"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012; unique per filing and usable as the `accession` input to the filing-documents view.","title":"Accession","type":"string"},"form":{"description":"EDGAR form type exactly as filed, e.g. 10-K, 10-Q, 8-K, 4, S-1; amendments carry a /A suffix such as 8-K/A.","title":"Form","type":"string"},"filed":{"description":"Date the filing was accepted by EDGAR, YYYY-MM-DD. This is the field the views sort and filter on, not the period the filing covers.","title":"Filed","type":"string"},"report_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Period the filing reports on, YYYY-MM-DD (e.g. a fiscal quarter end). Null for forms EDGAR records no report date for, such as many 8-Ks.","title":"Report Date"},"items":{"default":[],"description":"8-K item codes disclosed by this filing, e.g. ['2.02', '5.02'], split from the EDGAR items column. Empty for forms that carry no item codes.","items":{"type":"string"},"title":"Items","type":"array"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR's description of the filing's primary document, when present. Null when EDGAR records none.","title":"Description"},"url":{"description":"Absolute URL of the filing's EDGAR index page, from which every document in the filing can be reached.","title":"Url","type":"string"}},"required":["accession","form","filed","url"],"title":"FilingRow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC submissions record may be a few hours older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer these filings belong to, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"count":{"description":"Number of rows in `filings` after every filter and the limit. Not the filer's total filing count.","title":"Count","type":"integer"},"filings":{"description":"One row per matching filing, ordered newest filing date first, drawn from the EDGAR recent-submissions window for this filer. Empty when nothing matches.","items":{"$ref":"#/$defs/FilingRow"},"title":"Filings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filings-since view only: the newest filing date returned (YYYY-MM-DD), to pass back as `since` to poll for newer filings; echoes the requested `since` when nothing matched. Null on views that do not paginate.","title":"Next Cursor"},"coverage_note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"8-K history view only: plain-text note giving the oldest filing date reachable in EDGAR's recent-submissions window for this filer, so a caller can tell a genuine absence from the window's edge. Null elsewhere and when no rows matched.","title":"Coverage Note"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each. A list of filings is the start of a question, not the answer to one. Empty on the views that do not suggest any.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","count","filings"],"title":"FilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filings_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/search/filings","method":"GET","price_usd":0.0,"description":"Metadata search across all EDGAR filings by form type and date range - no text query - normalized rows with filer, items and URLs. Distinct from full-text search; FMP gates the equivalent at its Starter tier.","buyer_use_case":"\"Every 8-K filed on a date\" or \"all S-1s this month\" in one call.","when_to_use":"Market-wide metadata questions by form and date.","when_not_to_use":"Text content questions — use full-text search.","avoids":["EFTS query syntax","pagination","URL building"],"input_schema":{"additionalProperties":false,"properties":{"form":{"description":"Required single EDGAR form type to list, e.g. S-1, 8-K or 13F-HR. Not comma-separated.","maxLength":12,"title":"Form","type":"string"},"start":{"description":"Required ISO date, YYYY-MM-DD (e.g. 2026-01-01); inclusive start of the filing-date window listed.","maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Start","type":"string"},"end":{"description":"Required ISO date, YYYY-MM-DD (e.g. 2026-06-30); inclusive end of the filing-date window listed.","maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"End","type":"string"},"limit":{"default":50,"description":"Maximum filings to return, in the order EDGAR full-text search returns them. A window with no filings yields an empty list. Default 50.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["form","start","end"],"title":"FilingsSearchIn","type":"object"},"output_schema":{"$defs":{"MarketFilingRow":{"properties":{"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012; unique per filing and usable as the `accession` input to the filing-documents view.","title":"Accession","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193). For a filing with several filers this is the first CIK EDGAR lists.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as the EDGAR feed or search index shows it. Null when the upstream record carries no display name.","title":"Company"},"form":{"description":"EDGAR form type of the filing, e.g. 8-K, 4, S-1, 13F-HR; amendments carry a /A suffix. Empty string only if the upstream record omits it.","title":"Form","type":"string"},"filed":{"description":"When the filing reached EDGAR. Search-backed views return the filing date as YYYY-MM-DD; the latest-filings view returns EDGAR's acceptance timestamp to second precision as YYYY-MM-DDTHH:MM:SS. Empty string if upstream omits it.","title":"Filed","type":"string"},"items":{"default":[],"description":"8-K item codes disclosed by this filing, e.g. ['2.02']. Empty for non-8-K forms and always empty in the latest-filings view, whose feed does not carry item codes.","items":{"type":"string"},"title":"Items","type":"array"},"url":{"description":"Absolute URL of the filing's EDGAR index page, from which every document in the filing can be reached.","title":"Url","type":"string"}},"required":["accession","cik","company","form","filed","url"],"title":"MarketFilingRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the EDGAR feed behind it is cached for a short period.","title":"As Of","type":"string"},"count":{"description":"Number of rows in `filings` after the limit, not the size of the full match.","title":"Count","type":"integer"},"filings":{"description":"One row per filing across all filers. The latest-filings view returns them most recently accepted first; the search-backed views return them in the relevance order EDGAR full-text search gives. Empty when nothing matches.","items":{"$ref":"#/$defs/MarketFilingRow"},"title":"Filings","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","count","filings"],"title":"MarketFilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_filings_since","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filings/since","method":"GET","price_usd":0.0,"description":"Watch endpoint: a filer's filings newer than a YYYY-MM-DD cursor with a next_cursor to store; optional form filter. Empty responses are the cheap, normal case.","buyer_use_case":"Poll one company's filing activity without infrastructure.","when_to_use":"Recurring per-company checks; store next_cursor.","when_not_to_use":"Multi-ticker portfolios — the watchlist view batches 25.","avoids":["submissions refetching","cursor bookkeeping"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"},"since":{"description":"Required ISO date, YYYY-MM-DD (e.g. 2026-01-01). Only filings filed strictly after this date are returned.","maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Since","type":"string"},"form":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Single EDGAR form type, matched exactly and case-insensitively (e.g. 10-K). Omit for all forms.","title":"Form"},"limit":{"default":100,"description":"Maximum filings to return after the since and form filters, newest filing date first. Default 100.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["since"],"title":"FilingsSinceIn","type":"object"},"output_schema":{"$defs":{"FilingRow":{"properties":{"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012; unique per filing and usable as the `accession` input to the filing-documents view.","title":"Accession","type":"string"},"form":{"description":"EDGAR form type exactly as filed, e.g. 10-K, 10-Q, 8-K, 4, S-1; amendments carry a /A suffix such as 8-K/A.","title":"Form","type":"string"},"filed":{"description":"Date the filing was accepted by EDGAR, YYYY-MM-DD. This is the field the views sort and filter on, not the period the filing covers.","title":"Filed","type":"string"},"report_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Period the filing reports on, YYYY-MM-DD (e.g. a fiscal quarter end). Null for forms EDGAR records no report date for, such as many 8-Ks.","title":"Report Date"},"items":{"default":[],"description":"8-K item codes disclosed by this filing, e.g. ['2.02', '5.02'], split from the EDGAR items column. Empty for forms that carry no item codes.","items":{"type":"string"},"title":"Items","type":"array"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR's description of the filing's primary document, when present. Null when EDGAR records none.","title":"Description"},"url":{"description":"Absolute URL of the filing's EDGAR index page, from which every document in the filing can be reached.","title":"Url","type":"string"}},"required":["accession","form","filed","url"],"title":"FilingRow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC submissions record may be a few hours older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer these filings belong to, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"count":{"description":"Number of rows in `filings` after every filter and the limit. Not the filer's total filing count.","title":"Count","type":"integer"},"filings":{"description":"One row per matching filing, ordered newest filing date first, drawn from the EDGAR recent-submissions window for this filer. Empty when nothing matches.","items":{"$ref":"#/$defs/FilingRow"},"title":"Filings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filings-since view only: the newest filing date returned (YYYY-MM-DD), to pass back as `since` to poll for newer filings; echoes the requested `since` when nothing matched. Null on views that do not paginate.","title":"Next Cursor"},"coverage_note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"8-K history view only: plain-text note giving the oldest filing date reachable in EDGAR's recent-submissions window for this filer, so a caller can tell a genuine absence from the window's edge. Null elsewhere and when no rows matched.","title":"Coverage Note"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each. A list of filings is the start of a question, not the answer to one. Empty on the views that do not suggest any.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","count","filings"],"title":"FilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_flag_glossary","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/flags","method":"GET","price_usd":0.0,"description":"Every flag our event pipeline emits (insider_buy_cluster, distress, accounting_red_flag, large_raise, ...) with plain-English meaning. Scoring internals stay private; the vocabulary is public. Free, static.","buyer_use_case":"Agents filtering the event feed need the flag vocabulary once.","when_to_use":"Before filtering any flagged feed.","when_not_to_use":"n/a - free reference data.","avoids":["guessing flag semantics"],"input_schema":{"additionalProperties":false,"properties":{},"title":"EmptyIn","type":"object"},"output_schema":{"$defs":{"GlossaryEntry":{"properties":{"code":{"description":"Identifier of the term in its own vocabulary: an EDGAR form type (8-K, 4, D), an 8-K item code in N.NN form (5.02), a single-letter Form 4 transaction code (P), or a flag name, depending on which glossary was called.","title":"Code","type":"string"},"name":{"description":"Machine-readable snake_case name of the term (e.g. insider_transaction, officer_or_director_change). Item and flag names appear in exactly this form in the flags and event_type fields of events elsewhere in this API.","title":"Name","type":"string"},"description":{"description":"One-sentence plain-English explanation of what the term means on a filing.","title":"Description","type":"string"},"covered":{"default":true,"description":"True when filings of this kind are carried by the live index today; false marks a form listed for reference only and not indexed yet. Always true in the item, transaction-code and flag glossaries.","title":"Covered","type":"boolean"}},"required":["code","name","description"],"title":"GlossaryEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. Glossaries are static reference data, so this is a build time rather than a data cut-off.","title":"As Of","type":"string"},"count":{"description":"Number of terms in `entries`. Glossaries are returned whole and never paged.","title":"Count","type":"integer"},"entries":{"description":"One vocabulary term per element, in a fixed reference order (form and 8-K item codes ascending, flags we derive ourselves last). Not ranked and not sorted by frequency.","items":{"$ref":"#/$defs/GlossaryEntry"},"title":"Entries","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","entries"],"title":"GlossaryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_form_glossary","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/forms","method":"GET","price_usd":0.0,"description":"Plain-English glossary of SEC form types (8-K, 3/4/5, D, 10-K, 10-Q, 13F, S-1) with a covered flag showing which our 15-minute index currently carries. Free, static.","buyer_use_case":"Agent orientation - which form means what, and what this API covers.","when_to_use":"First call when deciding which SEC product fits a task.","when_not_to_use":"You already know the form type you need.","avoids":["reading SEC.gov form documentation"],"input_schema":{"additionalProperties":false,"properties":{},"title":"EmptyIn","type":"object"},"output_schema":{"$defs":{"GlossaryEntry":{"properties":{"code":{"description":"Identifier of the term in its own vocabulary: an EDGAR form type (8-K, 4, D), an 8-K item code in N.NN form (5.02), a single-letter Form 4 transaction code (P), or a flag name, depending on which glossary was called.","title":"Code","type":"string"},"name":{"description":"Machine-readable snake_case name of the term (e.g. insider_transaction, officer_or_director_change). Item and flag names appear in exactly this form in the flags and event_type fields of events elsewhere in this API.","title":"Name","type":"string"},"description":{"description":"One-sentence plain-English explanation of what the term means on a filing.","title":"Description","type":"string"},"covered":{"default":true,"description":"True when filings of this kind are carried by the live index today; false marks a form listed for reference only and not indexed yet. Always true in the item, transaction-code and flag glossaries.","title":"Covered","type":"boolean"}},"required":["code","name","description"],"title":"GlossaryEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. Glossaries are static reference data, so this is a build time rather than a data cut-off.","title":"As Of","type":"string"},"count":{"description":"Number of terms in `entries`. Glossaries are returned whole and never paged.","title":"Count","type":"integer"},"entries":{"description":"One vocabulary term per element, in a fixed reference order (form and 8-K item codes ascending, flags we derive ourselves last). Not ranked and not sorted by frequency.","items":{"$ref":"#/$defs/GlossaryEntry"},"title":"Entries","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","entries"],"title":"GlossaryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_form_trend","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/trends/form","method":"GET","price_usd":0.02,"description":"Monthly counts of one form type across all of EDGAR since 2021 - S-1 volume as an IPO pipeline proxy, Form D as private-capital activity, 13F-HR seasonality - from the historical index, with coverage stated.","buyer_use_case":"Market-cycle series (\"is S-1 volume picking up?\") in one call.","when_to_use":"Market-level cycle and seasonality questions by form.","when_not_to_use":"Individual filings or per-filer series.","avoids":["bulk index downloads","monthly aggregation","seasonality bookkeeping"],"input_schema":{"additionalProperties":false,"properties":{"form":{"description":"e.g. S-1, 8-K, D, 13F-HR, 10-K","maxLength":12,"title":"Form","type":"string"},"since":{"anyOf":[{"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"ISO date, YYYY-MM-DD (e.g. 2023-01-01); first filing date counted. Defaults to, and is clamped at, the start of index coverage reported as index_from.","title":"Since"}},"required":["form"],"title":"TrendIn","type":"object"},"output_schema":{"$defs":{"TrendPoint":{"properties":{"month":{"description":"Calendar month of the filing date, ISO-8601 YYYY-MM, e.g. 2024-03.","title":"Month","type":"string"},"count":{"description":"Number of filings of this form type made across all SEC filers in this month. A count of filings, not of distinct companies.","title":"Count","type":"integer"}},"required":["month","count"],"title":"TrendPoint","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp at which this response was computed, ISO-8601 with milliseconds and a Z suffix.","title":"As Of","type":"string"},"index_from":{"description":"Earliest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. Nothing filed before this date can appear in any count or list below, so treat it as the true start of coverage rather than the start of SEC history.","title":"Index From","type":"string"},"index_to":{"description":"Latest filing date present in the historical SEC filing index, ISO-8601 YYYY-MM-DD. The index is refreshed periodically, so filings made after this date are not yet reflected.","title":"Index To","type":"string"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that produced this answer. It changes whenever the method changes, so results with different values are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Source and limitations notice; keep it attached if you redisplay this data.","title":"Disclaimer","type":"string"},"form":{"description":"The EDGAR form type counted, upper-cased from the request, e.g. S-1, 8-K, 10-K, D or 13F-HR. Matched exactly, so variants such as 10-K/A are counted separately.","title":"Form","type":"string"},"points":{"description":"One entry per calendar month, in chronological ascending order (oldest month first). Months in which no such form was filed are omitted rather than reported as zero, so consecutive entries are not always adjacent months.","items":{"$ref":"#/$defs/TrendPoint"},"title":"Points","type":"array"},"total":{"description":"Total filings of this form type across every month listed, i.e. from the effective start date through index_to.","title":"Total","type":"integer"}},"required":["as_of","index_from","index_to","form","points","total"],"title":"TrendOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_formd_changes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd/changes","method":"GET","price_usd":0.005,"description":"Re-check, not a feed: send the cursor from your last call and get back how many Form D filings changed plus their ids — no rows, no joins, under 2 KB. Poll this in a loop for half a cent; fetch /v1/sec/formd/since only when `changed > 0`. Replaces one full-feed call per poll, and the tokens of parsing a page of rows to discover nothing happened. The cursor is ingest time, so a filing that reaches EDGAR days late is still delivered. A first call without a cursor returns changed=0 and a cursor to start from.","buyer_use_case":"An agent that must notice Form D filings within minutes polls this every few minutes for half a cent a call and pays for the full feed only on the calls that found something.","when_to_use":"A polling loop that needs to know whether anything happened, cheaply, before deciding to fetch and parse rows.\n","when_not_to_use":"Reading the offerings — /v1/sec/formd and its feeds return them. Backfills — cursors are clamped to 7 days; fetch the full feed instead.\n","avoids":["full-feed polling","amendment detection","dedup"],"input_schema":{"additionalProperties":false,"properties":{"cursor":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"The `next_cursor` from your previous call to this endpoint. Omit it on the first call: you get changed=0 and a cursor set to now, which starts a poll loop for the price of one call. Cursors older than 7 days are clamped to 7 days back — this is a re-check, not a backfill; fetch the full feed instead.","title":"Cursor"}},"title":"ChangesIn","type":"object"},"output_schema":{"$defs":{"ChangeWindow":{"properties":{"from":{"description":"Start of the window examined, ISO 8601 UTC (your cursor).","title":"From","type":"string"},"to":{"description":"End of the window examined, ISO 8601 UTC (the new cursor).","title":"To","type":"string"}},"required":["from","to"],"title":"ChangeWindow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"When this answer was computed, ISO 8601 UTC.","title":"As Of","type":"string"},"feed":{"description":"Which feed this re-check watches, e.g. sec_8k.","title":"Feed","type":"string"},"changed":{"description":"How many rows in this feed changed since your cursor. 0 means nothing happened and there is no reason to fetch the full feed.","title":"Changed","type":"integer"},"added":{"description":"Ids of rows that are new since your cursor, newest first, at most 100. Event ids for event feeds, accession numbers for filing feeds.","items":{"type":"string"},"title":"Added","type":"array"},"updated":{"description":"Ids of rows that existed before your cursor and were re-ingested after it — an amendment or a re-parse. Always empty on append-only event feeds.","items":{"type":"string"},"title":"Updated","type":"array"},"truncated":{"description":"True when `changed` exceeds the 100-id cap, so the lists are a sample of a larger diff. Fetch `full_feed_url` rather than paging this endpoint.","title":"Truncated","type":"boolean"},"empty":{"description":"True when nothing changed — the same as changed == 0.","title":"Empty","type":"boolean"},"cursor_from":{"description":"The cursor this call started from, echoed back (clamped if it was old).","title":"Cursor From","type":"string"},"next_cursor":{"description":"Store this and send it as `cursor` on the next poll. Opaque; do not parse.","title":"Next Cursor","type":"string"},"window":{"$ref":"#/$defs/ChangeWindow","description":"The ingest-time window this answer covers."},"full_feed_url":{"description":"The feed that returns the rows themselves. Call it only when changed > 0; its price is in next_endpoints.","title":"Full Feed Url","type":"string"},"coverage_started_at":{"description":"When our EDGAR index began. Nothing before this exists here no matter what cursor you send.","title":"Coverage Started At","type":"string"},"next_endpoints":{"description":"Where to go when changed > 0, each with the price of that call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"}},"required":["as_of","feed","changed","added","updated","truncated","empty","cursor_from","next_cursor","window","full_feed_url","coverage_started_at"],"title":"ChangesOutput","type":"object"},"cache_ttl_days":0,"methodology_version":"0.1.0"},{"id":"sec_formd_exemptions","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd/exemptions","method":"GET","price_usd":0.0,"description":"Decodes the exemption claimed on a Form D filing — Rule 506(b) vs 506(c) vs 504, and the Section 3(c)(1)/3(c)(7)/3(c)(5) fund exclusions — with what each one actually permits. Searchable, static, no upstream call. Free.","buyer_use_case":"An agent reading Form D filings hits an exemption code and needs to know whether the offering could be generally solicited or who was allowed to invest.","when_to_use":"You need to interpret the exemption on a Form D filing.","when_not_to_use":"The filings themselves — /v1/sec/formd and its feeds.","avoids":["reading Reg D rule text","exemption confusion"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":40,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring matched against exemption code, name and description (e.g. 506). Omit to list every exemption; no match returns an empty list.","title":"Q"}},"title":"ExemptionsIn","type":"object"},"output_schema":{"$defs":{"ExemptionEntry":{"properties":{"code":{"description":"Exemption code as it appears in a Form D filing: 06b, 06c, 04, 05, 3C1, 3C7, 3C5, 3C9, 4a5 or REGA.","title":"Code","type":"string"},"name":{"description":"Official rule or statutory section the code stands for, e.g. 'Rule 506(b)' or 'Section 3(c)(7)'.","title":"Name","type":"string"},"description":{"description":"Plain-English summary of what the exemption or fund exclusion allows, including its raise limits, solicitation rules or investor caps where they apply.","title":"Description","type":"string"}},"required":["code","name","description"],"title":"ExemptionEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"count":{"description":"Number of exemption entries returned, after the optional q filter is applied.","title":"Count","type":"integer"},"exemptions":{"description":"One entry per exemption code, in fixed catalog order: Regulation D rules first, then Investment Company Act fund exclusions, then Section 4(a)(5) and Regulation A.","items":{"$ref":"#/$defs/ExemptionEntry"},"title":"Exemptions","type":"array"},"note":{"default":"Decodes the exemption claimed in a Form D filing; see /v1/sec/formd for filings.","description":"Fixed pointer explaining what this glossary decodes and where the filings live.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","exemptions"],"title":"ExemptionsOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"sec_formd_feed","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd","method":"GET","price_usd":0.0,"description":"New Form D exempt-offering notices in a window with issuer, state, industry, amounts, investors, exemptions and amendment flag, parsed from the XML. Free.","buyer_use_case":"Private-capital agents read the Reg D tape without XML parsing.","when_to_use":"Reading the raw Reg D tape.","when_not_to_use":"Derived cuts — funds, large raises and the watch endpoint are separate.","avoids":["Form D XML parsing","amount and investor extraction"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest filing time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"limit":{"default":50,"description":"Maximum Form D offerings returned, newest filing first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"FormDIn","type":"object"},"output_schema":{"$defs":{"FormDRow":{"properties":{"accession":{"description":"EDGAR accession number of the Form D notice, dashed 10-2-6 format (e.g. 0001193125-26-000123).","title":"Accession","type":"string"},"filed_at":{"description":"When the notice appeared on EDGAR, ISO-8601 UTC to the second. Later than `first_sale_date`, which is when the offering actually began selling.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer making the offering, 10 digits zero-padded. Many Form D issuers are private and have no ticker.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the notice; null when the filing supplied none.","title":"Company"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the issuer's state or jurisdiction as reported on the notice (e.g. CA, DE); null when the notice omits it.","title":"State"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer's legal form exactly as reported (e.g. Corporation, Limited Partnership, Limited Liability Company); null when the notice omits it.","title":"Entity Type"},"industry_group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry category the issuer selected on the notice (e.g. Pooled Investment Fund, Technology, Commercial Banking); null when none was selected.","title":"Industry Group"},"is_amendment":{"description":"True when this notice amends an earlier Form D for the same offering rather than opening a new one; amendments restate the running totals.","title":"Is Amendment","type":"boolean"},"total_offering_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total amount of the offering in US dollars as reported. Null when the issuer left it blank or declared the offering indefinite, which is common for funds.","title":"Total Offering Usd"},"sold_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars already sold in the offering as of this notice; null when not reported. Read it against total_offering_usd rather than on its own.","title":"Sold Usd"},"remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars still to be sold as reported on the notice; null when not reported. Comes from the issuer, so it need not equal total_offering_usd minus sold_usd.","title":"Remaining Usd"},"investors":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of investors who have already invested in the offering, as reported: a head count, not a dollar amount. Null when not reported.","title":"Investors"},"exemptions":{"description":"Federal exemption or exclusion codes claimed on the notice, verbatim and in filing order (e.g. 06b for Rule 506(b), 3C.1). Empty when none were listed.","items":{"type":"string"},"title":"Exemptions","type":"array"},"minimum_investment":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest investment in US dollars the issuer will accept from an outside investor, as reported; null when not stated.","title":"Minimum Investment"},"first_sale_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date of the first sale in the offering, YYYY-MM-DD; null when the issuer indicated the first sale has yet to occur.","title":"First Sale Date"},"filing_url":{"description":"URL of the notice's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","company","state","entity_type","industry_group","is_amendment","total_offering_usd","sold_usd","remaining_usd","investors","exemptions","minimum_investment","first_sale_date","filing_url"],"title":"FormDRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Offerings noticed before it are absent at any window, so check it before reading an empty result as an absence of offerings.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of offerings in `offerings`, after every filter and the limit. Equal to the list length, not the number that matched before the limit.","title":"Count","type":"integer"},"offerings":{"description":"One Form D notice per element, newest filing first. The large-raises view instead returns them by total_offering_usd descending.","items":{"$ref":"#/$defs/FormDRow"},"title":"Offerings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the filing time of the newest offering returned, or the window start when the page was empty. Null on views not intended for polling (feed, new funds, large raises).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse these notices. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","offerings"],"title":"FormDOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_formd_industries","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd/industries","method":"GET","price_usd":0.0,"description":"The Form D Item 4 industry taxonomy — the pooled-investment-fund, biotechnology, commercial-real-estate and other groups a private-offering filer selects — with what each covers, searchable. Static, no upstream call. Free.","buyer_use_case":"An agent classifying private offerings needs the industry group vocabulary Form D filings actually use.","when_to_use":"You are classifying or filtering private offerings by industry.","when_not_to_use":"The exemption claimed — /v1/sec/formd/exemptions decodes that.","avoids":["reading the Form D instructions","inventing industry labels"],"input_schema":{"additionalProperties":false,"properties":{"q":{"anyOf":[{"maxLength":40,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive substring, 2 characters or more, matched against industry code, name and description (e.g. energy). Omit to list every industry.","title":"Q"}},"title":"IndustriesIn","type":"object"},"output_schema":{"$defs":{"IndustryEntry":{"properties":{"code":{"description":"Lowercase snake_case code for the Form D Item 4 industry group, e.g. pooled_investment_fund; the value other endpoints accept and return.","title":"Code","type":"string"},"name":{"description":"Full industry label as presented on Form D, including its parent category where one applies, e.g. 'Health Care — Biotechnology'.","title":"Name","type":"string"},"description":{"description":"Plain-English description of the kind of issuer that selects this industry group.","title":"Description","type":"string"}},"required":["code","name","description"],"title":"IndustryEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"count":{"description":"Number of industry entries returned, after the optional q filter is applied.","title":"Count","type":"integer"},"industries":{"description":"One entry per Form D industry group, in the taxonomy's own order — parent categories alphabetically (Agriculture through Travel) with 'Other' last, not ranked.","items":{"$ref":"#/$defs/IndustryEntry"},"title":"Industries","type":"array"},"note":{"default":"Form D Item 4 industry taxonomy. Codes are the normalized form of the label a filer selects; see /v1/sec/formd and its feeds for the filings themselves.","description":"Fixed note on which Form D item this taxonomy comes from and where filings live.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","industries"],"title":"IndustriesOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"sec_formd_large_raises","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd/large","method":"GET","price_usd":0.0,"description":"Form D offerings at or above a USD threshold (default $50M), ranked by target size, with amounts sold and remaining. The quick large-private-raise screen.","buyer_use_case":"One call surfaces the big private raises without reading the tape.","when_to_use":"Screening for size; adjust min_usd to taste.","when_not_to_use":"Fund-vehicle tracking — use the funds view.","avoids":["threshold filtering","ranking","XML parsing"],"input_schema":{"additionalProperties":false,"properties":{"min_usd":{"default":50000000,"description":"Minimum total offering amount in US dollars reported on the Form D (e.g. 10000000); default 50000000. Offerings with no stated amount are excluded.","minimum":0,"title":"Min Usd","type":"number"},"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest filing time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"limit":{"default":50,"description":"Maximum offerings returned, largest total offering amount first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"LargeIn","type":"object"},"output_schema":{"$defs":{"FormDRow":{"properties":{"accession":{"description":"EDGAR accession number of the Form D notice, dashed 10-2-6 format (e.g. 0001193125-26-000123).","title":"Accession","type":"string"},"filed_at":{"description":"When the notice appeared on EDGAR, ISO-8601 UTC to the second. Later than `first_sale_date`, which is when the offering actually began selling.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer making the offering, 10 digits zero-padded. Many Form D issuers are private and have no ticker.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the notice; null when the filing supplied none.","title":"Company"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the issuer's state or jurisdiction as reported on the notice (e.g. CA, DE); null when the notice omits it.","title":"State"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer's legal form exactly as reported (e.g. Corporation, Limited Partnership, Limited Liability Company); null when the notice omits it.","title":"Entity Type"},"industry_group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry category the issuer selected on the notice (e.g. Pooled Investment Fund, Technology, Commercial Banking); null when none was selected.","title":"Industry Group"},"is_amendment":{"description":"True when this notice amends an earlier Form D for the same offering rather than opening a new one; amendments restate the running totals.","title":"Is Amendment","type":"boolean"},"total_offering_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total amount of the offering in US dollars as reported. Null when the issuer left it blank or declared the offering indefinite, which is common for funds.","title":"Total Offering Usd"},"sold_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars already sold in the offering as of this notice; null when not reported. Read it against total_offering_usd rather than on its own.","title":"Sold Usd"},"remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars still to be sold as reported on the notice; null when not reported. Comes from the issuer, so it need not equal total_offering_usd minus sold_usd.","title":"Remaining Usd"},"investors":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of investors who have already invested in the offering, as reported: a head count, not a dollar amount. Null when not reported.","title":"Investors"},"exemptions":{"description":"Federal exemption or exclusion codes claimed on the notice, verbatim and in filing order (e.g. 06b for Rule 506(b), 3C.1). Empty when none were listed.","items":{"type":"string"},"title":"Exemptions","type":"array"},"minimum_investment":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest investment in US dollars the issuer will accept from an outside investor, as reported; null when not stated.","title":"Minimum Investment"},"first_sale_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date of the first sale in the offering, YYYY-MM-DD; null when the issuer indicated the first sale has yet to occur.","title":"First Sale Date"},"filing_url":{"description":"URL of the notice's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","company","state","entity_type","industry_group","is_amendment","total_offering_usd","sold_usd","remaining_usd","investors","exemptions","minimum_investment","first_sale_date","filing_url"],"title":"FormDRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Offerings noticed before it are absent at any window, so check it before reading an empty result as an absence of offerings.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of offerings in `offerings`, after every filter and the limit. Equal to the list length, not the number that matched before the limit.","title":"Count","type":"integer"},"offerings":{"description":"One Form D notice per element, newest filing first. The large-raises view instead returns them by total_offering_usd descending.","items":{"$ref":"#/$defs/FormDRow"},"title":"Offerings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the filing time of the newest offering returned, or the window start when the page was empty. Null on views not intended for polling (feed, new funds, large raises).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse these notices. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","offerings"],"title":"FormDOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_formd_new_funds","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd/funds","method":"GET","price_usd":0.0,"description":"First-time (non-amendment) Form D filings by pooled investment funds - new venture, PE and hedge vehicles - with amounts, state and investor counts. A derived cut no incumbent sells.","buyer_use_case":"Fundraising and LP-intelligence agents get new fund formations in one call.","when_to_use":"Tracking fund formation, optionally by state.","when_not_to_use":"Operating-company raises — use the feed or large-raises views.","avoids":["industry-group filtering","amendment dedup","XML parsing"],"input_schema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest filing time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"state":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter code of the issuer state or jurisdiction on the Form D, case-insensitive (e.g. CA, DE). Omit for every state; an unused code returns zero offerings.","title":"State"},"limit":{"default":50,"description":"Maximum new pooled-investment-fund offerings returned, newest filing first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"FundsIn","type":"object"},"output_schema":{"$defs":{"FormDRow":{"properties":{"accession":{"description":"EDGAR accession number of the Form D notice, dashed 10-2-6 format (e.g. 0001193125-26-000123).","title":"Accession","type":"string"},"filed_at":{"description":"When the notice appeared on EDGAR, ISO-8601 UTC to the second. Later than `first_sale_date`, which is when the offering actually began selling.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer making the offering, 10 digits zero-padded. Many Form D issuers are private and have no ticker.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the notice; null when the filing supplied none.","title":"Company"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the issuer's state or jurisdiction as reported on the notice (e.g. CA, DE); null when the notice omits it.","title":"State"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer's legal form exactly as reported (e.g. Corporation, Limited Partnership, Limited Liability Company); null when the notice omits it.","title":"Entity Type"},"industry_group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry category the issuer selected on the notice (e.g. Pooled Investment Fund, Technology, Commercial Banking); null when none was selected.","title":"Industry Group"},"is_amendment":{"description":"True when this notice amends an earlier Form D for the same offering rather than opening a new one; amendments restate the running totals.","title":"Is Amendment","type":"boolean"},"total_offering_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total amount of the offering in US dollars as reported. Null when the issuer left it blank or declared the offering indefinite, which is common for funds.","title":"Total Offering Usd"},"sold_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars already sold in the offering as of this notice; null when not reported. Read it against total_offering_usd rather than on its own.","title":"Sold Usd"},"remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars still to be sold as reported on the notice; null when not reported. Comes from the issuer, so it need not equal total_offering_usd minus sold_usd.","title":"Remaining Usd"},"investors":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of investors who have already invested in the offering, as reported: a head count, not a dollar amount. Null when not reported.","title":"Investors"},"exemptions":{"description":"Federal exemption or exclusion codes claimed on the notice, verbatim and in filing order (e.g. 06b for Rule 506(b), 3C.1). Empty when none were listed.","items":{"type":"string"},"title":"Exemptions","type":"array"},"minimum_investment":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest investment in US dollars the issuer will accept from an outside investor, as reported; null when not stated.","title":"Minimum Investment"},"first_sale_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date of the first sale in the offering, YYYY-MM-DD; null when the issuer indicated the first sale has yet to occur.","title":"First Sale Date"},"filing_url":{"description":"URL of the notice's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","company","state","entity_type","industry_group","is_amendment","total_offering_usd","sold_usd","remaining_usd","investors","exemptions","minimum_investment","first_sale_date","filing_url"],"title":"FormDRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Offerings noticed before it are absent at any window, so check it before reading an empty result as an absence of offerings.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of offerings in `offerings`, after every filter and the limit. Equal to the list length, not the number that matched before the limit.","title":"Count","type":"integer"},"offerings":{"description":"One Form D notice per element, newest filing first. The large-raises view instead returns them by total_offering_usd descending.","items":{"$ref":"#/$defs/FormDRow"},"title":"Offerings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the filing time of the newest offering returned, or the window start when the page was empty. Null on views not intended for polling (feed, new funds, large raises).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse these notices. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","offerings"],"title":"FormDOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_formd_since","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/formd/since","method":"GET","price_usd":0.0,"description":"Watch endpoint: Form D offerings filed since an ISO cursor with a next_cursor to store. Empty responses are the cheap, normal case.","buyer_use_case":"Poll for new private offerings without an EDGAR poller.","when_to_use":"Recurring checks; store next_cursor between calls.","when_not_to_use":"One-off reads — the feed view is free.","avoids":["poller infrastructure","cursor bookkeeping","dedup"],"input_schema":{"additionalProperties":false,"properties":{"since":{"description":"Required cursor: return Form D filings at or after this ISO 8601 date or timestamp (e.g. 2026-08-01T12:00:00Z); UTC if no offset, capped at 90 days back.","maxLength":32,"title":"Since","type":"string"},"limit":{"default":100,"description":"Maximum offerings returned, newest filing first; 1 to 200, default 100. Poll again with next_cursor.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["since"],"title":"FormDSinceIn","type":"object"},"output_schema":{"$defs":{"FormDRow":{"properties":{"accession":{"description":"EDGAR accession number of the Form D notice, dashed 10-2-6 format (e.g. 0001193125-26-000123).","title":"Accession","type":"string"},"filed_at":{"description":"When the notice appeared on EDGAR, ISO-8601 UTC to the second. Later than `first_sale_date`, which is when the offering actually began selling.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer making the offering, 10 digits zero-padded. Many Form D issuers are private and have no ticker.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the notice; null when the filing supplied none.","title":"Company"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the issuer's state or jurisdiction as reported on the notice (e.g. CA, DE); null when the notice omits it.","title":"State"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer's legal form exactly as reported (e.g. Corporation, Limited Partnership, Limited Liability Company); null when the notice omits it.","title":"Entity Type"},"industry_group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry category the issuer selected on the notice (e.g. Pooled Investment Fund, Technology, Commercial Banking); null when none was selected.","title":"Industry Group"},"is_amendment":{"description":"True when this notice amends an earlier Form D for the same offering rather than opening a new one; amendments restate the running totals.","title":"Is Amendment","type":"boolean"},"total_offering_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total amount of the offering in US dollars as reported. Null when the issuer left it blank or declared the offering indefinite, which is common for funds.","title":"Total Offering Usd"},"sold_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars already sold in the offering as of this notice; null when not reported. Read it against total_offering_usd rather than on its own.","title":"Sold Usd"},"remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars still to be sold as reported on the notice; null when not reported. Comes from the issuer, so it need not equal total_offering_usd minus sold_usd.","title":"Remaining Usd"},"investors":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of investors who have already invested in the offering, as reported: a head count, not a dollar amount. Null when not reported.","title":"Investors"},"exemptions":{"description":"Federal exemption or exclusion codes claimed on the notice, verbatim and in filing order (e.g. 06b for Rule 506(b), 3C.1). Empty when none were listed.","items":{"type":"string"},"title":"Exemptions","type":"array"},"minimum_investment":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest investment in US dollars the issuer will accept from an outside investor, as reported; null when not stated.","title":"Minimum Investment"},"first_sale_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date of the first sale in the offering, YYYY-MM-DD; null when the issuer indicated the first sale has yet to occur.","title":"First Sale Date"},"filing_url":{"description":"URL of the notice's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","company","state","entity_type","industry_group","is_amendment","total_offering_usd","sold_usd","remaining_usd","investors","exemptions","minimum_investment","first_sale_date","filing_url"],"title":"FormDRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Offerings noticed before it are absent at any window, so check it before reading an empty result as an absence of offerings.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of offerings in `offerings`, after every filter and the limit. Equal to the list length, not the number that matched before the limit.","title":"Count","type":"integer"},"offerings":{"description":"One Form D notice per element, newest filing first. The large-raises view instead returns them by total_offering_usd descending.","items":{"$ref":"#/$defs/FormDRow"},"title":"Offerings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the filing time of the newest offering returned, or the window start when the page was empty. Null on views not intended for polling (feed, new funds, large raises).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse these notices. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","offerings"],"title":"FormDOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_full_text_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/search/fulltext","method":"GET","price_usd":0.02,"description":"Full-text search over EDGAR filing content (EFTS) with form and date filters, capped and normalized. sec-api paywalls this to its top tier; FMP does not offer it at any price.","buyer_use_case":"Find filings that mention a phrase - \"supply chain disruption\", a product, a person - without indexing EDGAR text.","when_to_use":"Content questions across filings.","when_not_to_use":"Metadata-only listing — the metadata search is cheaper.","avoids":["EDGAR text crawling and indexing","EFTS pagination"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Full-text query, e.g. \"supply chain disruption\"","maxLength":200,"minLength":2,"title":"Q","type":"string"},"forms":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated EDGAR form types to restrict the search, e.g. 8-K,10-K. Defaults to 8-K when omitted.","title":"Forms"},"start":{"description":"Required ISO date, YYYY-MM-DD (e.g. 2026-01-01); inclusive start of the filing-date window searched.","maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Start","type":"string"},"end":{"description":"Required ISO date, YYYY-MM-DD (e.g. 2026-06-30); inclusive end of the filing-date window searched.","maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"End","type":"string"},"limit":{"default":25,"description":"Maximum matching filings to return, in the relevance order EDGAR full-text search returns. No match yields an empty list. Default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["q","start","end"],"title":"FullTextIn","type":"object"},"output_schema":{"$defs":{"MarketFilingRow":{"properties":{"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012; unique per filing and usable as the `accession` input to the filing-documents view.","title":"Accession","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193). For a filing with several filers this is the first CIK EDGAR lists.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as the EDGAR feed or search index shows it. Null when the upstream record carries no display name.","title":"Company"},"form":{"description":"EDGAR form type of the filing, e.g. 8-K, 4, S-1, 13F-HR; amendments carry a /A suffix. Empty string only if the upstream record omits it.","title":"Form","type":"string"},"filed":{"description":"When the filing reached EDGAR. Search-backed views return the filing date as YYYY-MM-DD; the latest-filings view returns EDGAR's acceptance timestamp to second precision as YYYY-MM-DDTHH:MM:SS. Empty string if upstream omits it.","title":"Filed","type":"string"},"items":{"default":[],"description":"8-K item codes disclosed by this filing, e.g. ['2.02']. Empty for non-8-K forms and always empty in the latest-filings view, whose feed does not carry item codes.","items":{"type":"string"},"title":"Items","type":"array"},"url":{"description":"Absolute URL of the filing's EDGAR index page, from which every document in the filing can be reached.","title":"Url","type":"string"}},"required":["accession","cik","company","form","filed","url"],"title":"MarketFilingRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the EDGAR feed behind it is cached for a short period.","title":"As Of","type":"string"},"count":{"description":"Number of rows in `filings` after the limit, not the size of the full match.","title":"Count","type":"integer"},"filings":{"description":"One row per filing across all filers. The latest-filings view returns them most recently accepted first; the search-backed views return them in the relevance order EDGAR full-text search gives. Empty when nothing matches.","items":{"$ref":"#/$defs/MarketFilingRow"},"title":"Filings","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","count","filings"],"title":"MarketFilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_insider_changes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/changes","method":"GET","price_usd":0.005,"description":"Re-check, not a feed: send the cursor from your last call and get back how many insider events changed plus their ids — no rows, no joins, under 2 KB. Poll this in a loop for half a cent; fetch /v1/sec/insider/since only when `changed > 0`. Replaces one full-feed call per poll, and the tokens of parsing a page of rows to discover nothing happened. The cursor is ingest time, so a filing that reaches EDGAR days late is still delivered. A first call without a cursor returns changed=0 and a cursor to start from.","buyer_use_case":"An agent that must notice insider events within minutes polls this every few minutes for half a cent a call and pays for the full feed only on the calls that found something.","when_to_use":"A polling loop that needs to know whether anything happened, cheaply, before deciding to fetch and parse rows.\n","when_not_to_use":"Screening or scoring insiders — /v1/sec/insider/screen and /clusters do that. Backfills — cursors are clamped to 7 days; fetch the full feed instead.\n","avoids":["full-feed polling","row parsing to discover nothing changed","dedup"],"input_schema":{"additionalProperties":false,"properties":{"cursor":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"The `next_cursor` from your previous call to this endpoint. Omit it on the first call: you get changed=0 and a cursor set to now, which starts a poll loop for the price of one call. Cursors older than 7 days are clamped to 7 days back — this is a re-check, not a backfill; fetch the full feed instead.","title":"Cursor"}},"title":"ChangesIn","type":"object"},"output_schema":{"$defs":{"ChangeWindow":{"properties":{"from":{"description":"Start of the window examined, ISO 8601 UTC (your cursor).","title":"From","type":"string"},"to":{"description":"End of the window examined, ISO 8601 UTC (the new cursor).","title":"To","type":"string"}},"required":["from","to"],"title":"ChangeWindow","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"When this answer was computed, ISO 8601 UTC.","title":"As Of","type":"string"},"feed":{"description":"Which feed this re-check watches, e.g. sec_8k.","title":"Feed","type":"string"},"changed":{"description":"How many rows in this feed changed since your cursor. 0 means nothing happened and there is no reason to fetch the full feed.","title":"Changed","type":"integer"},"added":{"description":"Ids of rows that are new since your cursor, newest first, at most 100. Event ids for event feeds, accession numbers for filing feeds.","items":{"type":"string"},"title":"Added","type":"array"},"updated":{"description":"Ids of rows that existed before your cursor and were re-ingested after it — an amendment or a re-parse. Always empty on append-only event feeds.","items":{"type":"string"},"title":"Updated","type":"array"},"truncated":{"description":"True when `changed` exceeds the 100-id cap, so the lists are a sample of a larger diff. Fetch `full_feed_url` rather than paging this endpoint.","title":"Truncated","type":"boolean"},"empty":{"description":"True when nothing changed — the same as changed == 0.","title":"Empty","type":"boolean"},"cursor_from":{"description":"The cursor this call started from, echoed back (clamped if it was old).","title":"Cursor From","type":"string"},"next_cursor":{"description":"Store this and send it as `cursor` on the next poll. Opaque; do not parse.","title":"Next Cursor","type":"string"},"window":{"$ref":"#/$defs/ChangeWindow","description":"The ingest-time window this answer covers."},"full_feed_url":{"description":"The feed that returns the rows themselves. Call it only when changed > 0; its price is in next_endpoints.","title":"Full Feed Url","type":"string"},"coverage_started_at":{"description":"When our EDGAR index began. Nothing before this exists here no matter what cursor you send.","title":"Coverage Started At","type":"string"},"next_endpoints":{"description":"Where to go when changed > 0, each with the price of that call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"}},"required":["as_of","feed","changed","added","updated","truncated","empty","cursor_from","next_cursor","window","full_feed_url","coverage_started_at"],"title":"ChangesOutput","type":"object"},"cache_ttl_days":0,"methodology_version":"0.1.0"},{"id":"sec_insider_clusters","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/clusters","method":"GET","price_usd":0.05,"description":"Multi-insider buy clusters - issuers where at least N distinct officers/directors made open-market buys within the window - with combined USD, names and latest time. Our derived signal; no competitor sells this as an endpoint.","buyer_use_case":"The strongest simple insider signal, precomputed: conviction buying by several insiders at once, in one call.","when_to_use":"Screening for the strongest insider-buying setups.","when_not_to_use":"Per-line detail or single-issuer history — use the other insider views.","avoids":["cluster detection code","owner dedup across filings","window math"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":7,"description":"Length of the lookback window in days, counted back from now; 1 to 30, default 7.","maximum":30,"minimum":1,"title":"Days","type":"integer"},"min_insiders":{"default":3,"description":"Minimum number of distinct insiders buying the same issuer inside the window for it to be reported as a cluster; 2 to 10, default 3.","maximum":10,"minimum":2,"title":"Min Insiders","type":"integer"}},"title":"ClustersIn","type":"object"},"output_schema":{"$defs":{"ClusterRow":{"properties":{"cik":{"description":"SEC CIK of the issuer whose insiders bought together, 10 digits zero-padded (e.g. 0000320193). One row per issuer.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the issuer, taken from its most recent clustered filing; null when that filing carries no symbol.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name taken from its most recent clustered filing; null when the filing supplied none.","title":"Company"},"insiders":{"description":"Number of distinct officers or directors, counted by insider CIK, who reported buying this issuer inside the window. At least the requested min_insiders.","title":"Insiders","type":"integer"},"insider_names":{"description":"Names of those insiders as printed on their filings, sorted alphabetically and capped at 10, so the list can be shorter than `insiders`. Insiders whose filing carried no name are omitted.","items":{"type":"string"},"title":"Insider Names","type":"array"},"buy_usd":{"description":"Total US dollars of open-market purchases (transaction code P) reported across this issuer's clustered filings in the window, rounded to cents.","title":"Buy Usd","type":"number"},"filings":{"description":"Number of clustered Form 4 filings counted for this issuer in the window; at least one per insider, and more when an insider filed repeatedly.","title":"Filings","type":"integer"},"latest_at":{"description":"Occurrence time of the most recent clustered filing for this issuer, ISO-8601 UTC to the second: how fresh the cluster is.","title":"Latest At","type":"string"}},"required":["cik","ticker","company","insiders","insider_names","buy_usd","filings","latest_at"],"title":"ClusterRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. A window reaching back before it is only partly covered, so clusters that formed earlier may be incomplete.","title":"Index Started At","type":"string"},"window_days":{"description":"Length in days of the lookback window the clusters were formed over, counted back from `as_of`; echoes the requested days.","title":"Window Days","type":"integer"},"count":{"description":"Number of issuers in `clusters`; equal to the list length.","title":"Count","type":"integer"},"clusters":{"description":"One issuer per element, ordered by buy_usd descending, so the largest total dollars of clustered insider buying come first.","items":{"$ref":"#/$defs/ClusterRow"},"title":"Clusters","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that identified these clusters. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","window_days","count","clusters"],"title":"ClustersOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_insider_latest","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/latest","method":"GET","price_usd":0.0,"description":"The newest indexed Form 4 events market-wide, unfiltered, up to 100 rows. Free at the same boundary two competitors draw; the filtered screen is the paid product.","buyer_use_case":"A free look at the live insider tape before paying for filters.","when_to_use":"Sampling the tape or bootstrapping a cursor for the watch endpoint.","when_not_to_use":"Filtered or per-issuer questions — use screen/transactions/summary.","avoids":["EDGAR Atom polling and parsing"],"input_schema":{"additionalProperties":false,"properties":{"limit":{"default":25,"description":"Maximum Form 4 insider events returned from the last 7 days, newest first; 1 to 100, default 25.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"LatestIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_insider_screen","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/screen","method":"GET","price_usd":0.02,"description":"Screens every indexed Form 4/5 line market-wide: filter by transaction codes, buy/sell direction, minimum USD value, owner role (officer/director/10% owner) and time window; ranked by USD value. The paid screen two competitors gate behind subscriptions.","buyer_use_case":"One call answers \"show me every officer open-market buy over $250k this week\" without building an EDGAR pipeline.","when_to_use":"Market-wide questions about insider activity with filters; the per-issuer view is cheaper when you know the company.\n","when_not_to_use":"History beyond our index window, or 10b5-1-only splits per issuer.","avoids":["market-wide EDGAR polling","per-filing XML parsing","role and size filtering code"],"input_schema":{"additionalProperties":false,"properties":{"codes":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated: P,S,A,F,M,G,C,J,W","title":"Codes"},"direction":{"anyOf":[{"pattern":"^(buy|sell)$","type":"string"},{"type":"null"}],"default":null,"description":"Either buy (code P acquisitions) or sell (code S dispositions). Omit to keep both directions and every other transaction code.","title":"Direction"},"min_value_usd":{"default":0,"description":"Keep only transaction lines worth at least this many US dollars (e.g. 250000). Default 0 applies no value floor.","minimum":0,"title":"Min Value Usd","type":"number"},"role":{"anyOf":[{"pattern":"^(officer|director|ten_percent)$","type":"string"},{"type":"null"}],"default":null,"description":"Keep only lines whose reporting owner has this role: officer, director or ten_percent. Omit for all roles; an owner may hold several.","title":"Role"},"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest filing time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"limit":{"default":50,"description":"Maximum transaction lines returned, largest US dollar value first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"ScreenIn","type":"object"},"output_schema":{"$defs":{"InsiderLine":{"properties":{"accession":{"description":"EDGAR accession number of the ownership filing this line was read from, dashed 10-2-6 format (e.g. 0001193125-26-000123). One filing usually reports several lines.","title":"Accession","type":"string"},"filed_at":{"description":"When the filing appeared on EDGAR, ISO-8601 UTC to the second. This is the publication time, which is later than the transaction `date` on the line.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer whose shares were traded, 10 digits zero-padded (e.g. 0000320193). This is the company, not the insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the issuer; null when the filing carries no trading symbol and the issuer's CIK is absent from the SEC ticker file.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the filing; null when neither the filing nor the EDGAR feed supplied one.","title":"Company"},"owner_cik":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC CIK of the reporting insider (a person or entity, distinct from the issuer's cik), as printed on the filing; null when the filing omits it.","title":"Owner Cik"},"owner_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the reporting insider as printed on the filing, usually surname first (e.g. Cook Timothy D); null when the filing omits it.","title":"Owner Name"},"is_officer":{"description":"True when the filing's relationship box marks the reporting insider as an officer of the issuer. The role flags are independent and several can be true at once.","title":"Is Officer","type":"boolean"},"is_director":{"description":"True when the filing marks the reporting insider as a director of the issuer.","title":"Is Director","type":"boolean"},"is_ten_percent_owner":{"description":"True when the filing marks the reporting insider as a beneficial owner of more than ten percent of a class of the issuer's securities.","title":"Is Ten Percent Owner","type":"boolean"},"officer_title":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text officer title as printed on the filing (e.g. Chief Financial Officer); null for non-officers and for officers who left the box blank.","title":"Officer Title"},"rule_10b5_1":{"description":"True when the filing states the trades were made under a pre-arranged Rule 10b5-1 trading plan. It is a filing-level checkbox, so it applies to every line of that filing rather than to this line alone.","title":"Rule 10B5 1","type":"boolean"},"derivative":{"description":"True when the line comes from the filing's derivative table (options, RSUs, warrants, convertibles); false for ordinary share transactions.","title":"Derivative","type":"boolean"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the transaction took place as reported on the line, YYYY-MM-DD; null when the line omits it. Earlier than `filed_at`.","title":"Date"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Single-letter Form 4 transaction code: P open-market purchase, S sale, A award, F tax withholding, M option exercise, G gift, C conversion, J other, W will or descent. Null when the line omits it.","title":"Code"},"acquired_disposed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Direction of the line as reported: A when securities were acquired, D when they were disposed of. Null when the line omits it.","title":"Acquired Disposed"},"shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of shares, or of derivative units, moved by this transaction; a count, not a dollar amount. Null when the line omits it.","title":"Shares"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Reported price per share in US dollars; null for lines with no stated price, which is normal for grants, gifts and many option exercises.","title":"Price"},"value_usd":{"description":"US dollar value of the line, shares multiplied by the reported price per share, rounded to cents. 0.0 when the filing states no share count or no price, so a zero means unpriced rather than worthless.","title":"Value Usd","type":"number"},"security":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title of the security as printed on the line (e.g. Common Stock, Employee Stock Option (right to buy)); null when the line omits it.","title":"Security"},"post_shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Shares of this security beneficially owned by the reporting insider immediately after the transaction, as reported; a share count, not dollars. Null when omitted.","title":"Post Shares"},"filing_url":{"description":"URL of the filing's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","ticker","company","owner_cik","owner_name","is_officer","is_director","is_ten_percent_owner","officer_title","rule_10b5_1","derivative","date","code","acquired_disposed","shares","price","value_usd","security","post_shares","filing_url"],"title":"InsiderLine","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Filings published before it are absent no matter how far back `since` is set, so compare it against your window before treating a gap as an absence.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of transaction lines in `transactions`, after every filter and the limit. Equal to the list length, not the number of lines that matched before the limit.","title":"Count","type":"integer"},"transactions":{"description":"One reported transaction line per element; a single filing contributes several. The insider-transactions feed returns them newest filing first, while the insider screen returns them largest value_usd first.","items":{"$ref":"#/$defs/InsiderLine"},"title":"Transactions","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse filings and derive flags. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","transactions"],"title":"InsiderTransactionsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_insider_since","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/since","method":"GET","price_usd":0.0,"description":"Watch endpoint: insider events since an ISO cursor, optional minimum USD, with a next_cursor to store. An empty response is the cheap, normal case - poll it instead of EDGAR.","buyer_use_case":"Agents that must react to new insider filings poll this with a stored cursor instead of running their own EDGAR poller.","when_to_use":"Recurring checks; store next_cursor between calls.","when_not_to_use":"One-off questions — use latest or screen.","avoids":["poller infrastructure","cursor bookkeeping against EDGAR","dedup"],"input_schema":{"additionalProperties":false,"properties":{"since":{"description":"Required cursor: return Form 4 events at or after this ISO 8601 date or timestamp (e.g. 2026-08-01T12:00:00Z); UTC if no offset, capped at 90 days back.","maxLength":32,"title":"Since","type":"string"},"min_value_usd":{"default":0,"description":"Keep only events whose larger side, buy or sell, is at least this many US dollars. Default 0 applies no value floor.","minimum":0,"title":"Min Value Usd","type":"number"},"limit":{"default":100,"description":"Maximum Form 4 events read from the window, newest first, before min_value_usd is applied; 1 to 200, default 100. Poll again with next_cursor.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["since"],"title":"InsiderSinceIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_insider_summary","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/summary","method":"GET","price_usd":0.0,"description":"Aggregated insider activity for one issuer over a window (max 90 days): filings count, distinct insiders, buy/sell/net USD, largest single buy and sale, plus a priced next_endpoints hint to the peer group this activity reads against.","buyer_use_case":"The one-number answer to \"are insiders net buyers here?\" without fetching transaction lines.","when_to_use":"Quick per-company insider signal in one call.","when_not_to_use":"You need per-line detail — use transactions; or market-wide — use screen.","avoids":["Form 4 aggregation","buy/sell math","owner dedup"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Issuer US exchange ticker, case-insensitive (e.g. AAPL); an unknown ticker returns zero-valued totals. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"Issuer SEC CIK, 1-10 digits, zero padding optional (e.g. 320193). Provide exactly one of cik or ticker; sending neither returns 422.","title":"Cik"},"days":{"default":30,"description":"Length of the lookback window in days, counted back from now; 1 to 90, default 30.","maximum":90,"minimum":1,"title":"Days","type":"integer"}},"title":"InsiderSummaryIn","type":"object"},"output_schema":{"$defs":{"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. A window reaching back before it is only partly covered, so totals below cover the overlap of your window with this start.","title":"Index Started At","type":"string"},"window_days":{"description":"Length in days of the lookback window the totals cover, counted back from `as_of`; echoes the requested days.","title":"Window Days","type":"integer"},"cik":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC CIK of the issuer summarised, 10 digits zero-padded (e.g. 0000320193). Null only when the request named a ticker that matched no filing in the window.","title":"Cik"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the issuer summarised. Null when the request named a CIK whose filings in the window carry no ticker.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as printed on one of the matched filings; null when no Form 4 filing matched in the window.","title":"Company"},"filings":{"description":"Number of Form 4 filings for this issuer in the window that reported at least one open-market buy or sell. Filings reporting only grants, gifts or option exercises are not counted.","title":"Filings","type":"integer"},"distinct_insiders":{"description":"Number of distinct reporting insiders, counted by insider CIK, behind those filings. Insiders whose filing omitted a CIK are not counted.","title":"Distinct Insiders","type":"integer"},"buy_usd":{"description":"Total US dollars of open-market purchases (transaction code P acquisitions of ordinary shares) across the window, rounded to cents. Lines with no reported price contribute nothing.","title":"Buy Usd","type":"number"},"sell_usd":{"description":"Total US dollars of open-market sales (transaction code S dispositions of ordinary shares) across the window, rounded to cents.","title":"Sell Usd","type":"number"},"net_usd":{"description":"buy_usd minus sell_usd, in US dollars: positive when insiders bought more than they sold in the window, negative when selling dominated.","title":"Net Usd","type":"number"},"largest_buy_usd":{"description":"Largest single filing's purchase total in US dollars within the window (per filing, not per transaction line). 0 when no purchases were reported.","title":"Largest Buy Usd","type":"number"},"largest_sale_usd":{"description":"Largest single filing's sale total in US dollars within the window (per filing, not per transaction line). 0 when no sales were reported.","title":"Largest Sale Usd","type":"number"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse filings and derive these totals. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each: insider activity reads against a comparison group, so the peer set is the natural next call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","window_days","cik","ticker","company","filings","distinct_insiders","buy_usd","sell_usd","net_usd","largest_buy_usd","largest_sale_usd"],"title":"InsiderSummaryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_insider_transactions","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/transactions","method":"GET","price_usd":0.0,"description":"Per-line insider transactions for one issuer from our Form 4/5 index: date, code, acquired/disposed, shares, price, USD value, security, post-transaction holdings, owner role and title, Rule 10b5-1 flag, derivative lines included. Filter by code and time.","buyer_use_case":"Call this instead of polling the EDGAR Atom feed and parsing ownershipDocument XML when an agent needs actual insider transaction lines for a company.","when_to_use":"You need actual transaction lines (not summaries) for one issuer over a window.\n","when_not_to_use":"You need market-wide filtering — use the insider screen; or pre-index history beyond our window.\n","avoids":["EDGAR Atom polling","ownershipDocument XML parsing","derivative-table handling","USD math"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Filter to one issuer by US exchange ticker, case-insensitive (e.g. AAPL). Omit both ticker and cik for all issuers; an unknown ticker returns zero transactions.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"Filter to one issuer by SEC CIK, 1-10 digits, zero padding optional (e.g. 320193). Omit both cik and ticker for all issuers; cik wins if both are sent.","title":"Cik"},"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest filing time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 30 days.","title":"Since"},"code":{"anyOf":[{"pattern":"^[PSAFMGCJW]$","type":"string"},{"type":"null"}],"default":null,"description":"Keep only lines with this Form 4 transaction code: one of P, S, A, F, M, G, C, J, W (P is an open-market purchase). Omit for every code.","title":"Code"},"include_derivatives":{"default":true,"description":"Include derivative transactions (options, RSUs) alongside non-derivative share lines. Set false for non-derivative lines only. Default true.","title":"Include Derivatives","type":"boolean"},"limit":{"default":50,"description":"Maximum transaction lines returned, newest filing first; 1 to 200, default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"InsiderTxIn","type":"object"},"output_schema":{"$defs":{"InsiderLine":{"properties":{"accession":{"description":"EDGAR accession number of the ownership filing this line was read from, dashed 10-2-6 format (e.g. 0001193125-26-000123). One filing usually reports several lines.","title":"Accession","type":"string"},"filed_at":{"description":"When the filing appeared on EDGAR, ISO-8601 UTC to the second. This is the publication time, which is later than the transaction `date` on the line.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer whose shares were traded, 10 digits zero-padded (e.g. 0000320193). This is the company, not the insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the issuer; null when the filing carries no trading symbol and the issuer's CIK is absent from the SEC ticker file.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the filing; null when neither the filing nor the EDGAR feed supplied one.","title":"Company"},"owner_cik":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC CIK of the reporting insider (a person or entity, distinct from the issuer's cik), as printed on the filing; null when the filing omits it.","title":"Owner Cik"},"owner_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the reporting insider as printed on the filing, usually surname first (e.g. Cook Timothy D); null when the filing omits it.","title":"Owner Name"},"is_officer":{"description":"True when the filing's relationship box marks the reporting insider as an officer of the issuer. The role flags are independent and several can be true at once.","title":"Is Officer","type":"boolean"},"is_director":{"description":"True when the filing marks the reporting insider as a director of the issuer.","title":"Is Director","type":"boolean"},"is_ten_percent_owner":{"description":"True when the filing marks the reporting insider as a beneficial owner of more than ten percent of a class of the issuer's securities.","title":"Is Ten Percent Owner","type":"boolean"},"officer_title":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text officer title as printed on the filing (e.g. Chief Financial Officer); null for non-officers and for officers who left the box blank.","title":"Officer Title"},"rule_10b5_1":{"description":"True when the filing states the trades were made under a pre-arranged Rule 10b5-1 trading plan. It is a filing-level checkbox, so it applies to every line of that filing rather than to this line alone.","title":"Rule 10B5 1","type":"boolean"},"derivative":{"description":"True when the line comes from the filing's derivative table (options, RSUs, warrants, convertibles); false for ordinary share transactions.","title":"Derivative","type":"boolean"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the transaction took place as reported on the line, YYYY-MM-DD; null when the line omits it. Earlier than `filed_at`.","title":"Date"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Single-letter Form 4 transaction code: P open-market purchase, S sale, A award, F tax withholding, M option exercise, G gift, C conversion, J other, W will or descent. Null when the line omits it.","title":"Code"},"acquired_disposed":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Direction of the line as reported: A when securities were acquired, D when they were disposed of. Null when the line omits it.","title":"Acquired Disposed"},"shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of shares, or of derivative units, moved by this transaction; a count, not a dollar amount. Null when the line omits it.","title":"Shares"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Reported price per share in US dollars; null for lines with no stated price, which is normal for grants, gifts and many option exercises.","title":"Price"},"value_usd":{"description":"US dollar value of the line, shares multiplied by the reported price per share, rounded to cents. 0.0 when the filing states no share count or no price, so a zero means unpriced rather than worthless.","title":"Value Usd","type":"number"},"security":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title of the security as printed on the line (e.g. Common Stock, Employee Stock Option (right to buy)); null when the line omits it.","title":"Security"},"post_shares":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Shares of this security beneficially owned by the reporting insider immediately after the transaction, as reported; a share count, not dollars. Null when omitted.","title":"Post Shares"},"filing_url":{"description":"URL of the filing's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","ticker","company","owner_cik","owner_name","is_officer","is_director","is_ten_percent_owner","officer_title","rule_10b5_1","derivative","date","code","acquired_disposed","shares","price","value_usd","security","post_shares","filing_url"],"title":"InsiderLine","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Filings published before it are absent no matter how far back `since` is set, so compare it against your window before treating a gap as an absence.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of transaction lines in `transactions`, after every filter and the limit. Equal to the list length, not the number of lines that matched before the limit.","title":"Count","type":"integer"},"transactions":{"description":"One reported transaction line per element; a single filing contributes several. The insider-transactions feed returns them newest filing first, while the insider screen returns them largest value_usd first.","items":{"$ref":"#/$defs/InsiderLine"},"title":"Transactions","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse filings and derive flags. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","transactions"],"title":"InsiderTransactionsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_issuer_packet","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/issuer/packet","method":"GET","price_usd":0.2,"description":"Everything we know about one issuer in one call: replaces 6-8 separate calls and the joins between them. Identity and SIC, flagged 8-K events from the last 90 days, the insider summary and any multi-insider buy cluster, Reg D offering history, key XBRL facts, a quantitative peer group, and the Federal Register rules that likely touch the issuer. Every section is listed in `sections` with whether it is present, why not if it is absent, and what that section costs to buy on its own — a section is never silently dropped, so \"no Form D history\" and \"the Form D lookup failed\" are different answers.","buyer_use_case":"An agent asked a broad question about one company needs the whole picture before it can reason, and would otherwise make eight calls, hold eight schemas and write the joins.","when_to_use":"A broad question about one issuer, where the next step depends on what is there.\n","when_not_to_use":"One known field — the per-section endpoints are $0.00-$0.05 and listed in `sections`. Repeat monitoring — poll /v1/sec/8k/changes for half a cent and re-buy this only when it says something changed.\n","avoids":["eight separate calls","eight response schemas","cross-corpus joins","SIC-to-agency mapping","peer-group construction"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Exchange ticker, e.g. AAPL. Give ticker or cik; cik wins if both are set.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, digits only, zero-padding optional, e.g. 320193. Give cik or ticker.","title":"Cik"}},"title":"PacketIn","type":"object"},"output_schema":{"$defs":{"ClusterRow":{"properties":{"cik":{"description":"SEC CIK of the issuer whose insiders bought together, 10 digits zero-padded (e.g. 0000320193). One row per issuer.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the issuer, taken from its most recent clustered filing; null when that filing carries no symbol.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name taken from its most recent clustered filing; null when the filing supplied none.","title":"Company"},"insiders":{"description":"Number of distinct officers or directors, counted by insider CIK, who reported buying this issuer inside the window. At least the requested min_insiders.","title":"Insiders","type":"integer"},"insider_names":{"description":"Names of those insiders as printed on their filings, sorted alphabetically and capped at 10, so the list can be shorter than `insiders`. Insiders whose filing carried no name are omitted.","items":{"type":"string"},"title":"Insider Names","type":"array"},"buy_usd":{"description":"Total US dollars of open-market purchases (transaction code P) reported across this issuer's clustered filings in the window, rounded to cents.","title":"Buy Usd","type":"number"},"filings":{"description":"Number of clustered Form 4 filings counted for this issuer in the window; at least one per insider, and more when an insider filed repeatedly.","title":"Filings","type":"integer"},"latest_at":{"description":"Occurrence time of the most recent clustered filing for this issuer, ISO-8601 UTC to the second: how fresh the cluster is.","title":"Latest At","type":"string"}},"required":["cik","ticker","company","insiders","insider_names","buy_usd","filings","latest_at"],"title":"ClusterRow","type":"object"},"ClustersOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. A window reaching back before it is only partly covered, so clusters that formed earlier may be incomplete.","title":"Index Started At","type":"string"},"window_days":{"description":"Length in days of the lookback window the clusters were formed over, counted back from `as_of`; echoes the requested days.","title":"Window Days","type":"integer"},"count":{"description":"Number of issuers in `clusters`; equal to the list length.","title":"Count","type":"integer"},"clusters":{"description":"One issuer per element, ordered by buy_usd descending, so the largest total dollars of clustered insider buying come first.","items":{"$ref":"#/$defs/ClusterRow"},"title":"Clusters","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that identified these clusters. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","window_days","count","clusters"],"title":"ClustersOutput","type":"object"},"CompanyRulesOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds when this response was produced, e.g. 2026-09-03T18:04:11.123Z; both the company profile and the rules are read live.","title":"As Of","type":"string"},"cik":{"description":"SEC Central Index Key of the company the rules were selected for, 10 digits zero-padded, e.g. 0000320193, resolved from the ticker when one was given.","title":"Cik","type":"string"},"name":{"description":"Registrant name exactly as SEC EDGAR records it for this CIK, e.g. 'Apple Inc.'. Empty string when EDGAR reports no name.","title":"Name","type":"string"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The company's SEC Standard Industrial Classification code as EDGAR reports it, e.g. '3674'. Null when EDGAR carries no SIC, in which case only the SEC is mapped.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EDGAR's plain-English label for that SIC code, e.g. 'Semiconductors & Related Devices'. Null when EDGAR carries none.","title":"Sic Description"},"mapped_agencies":{"description":"Federal Register agency slugs whose rulemaking was searched, e.g. environmental-protection-agency, chosen from the company's SIC industry; the SEC is always included. An industry mapping indicates relevance, not legal exposure.","items":{"type":"string"},"title":"Mapped Agencies","type":"array"},"total_matching":{"description":"Total Federal Register documents matching those agencies, the requested document types and the date window, as reported by the Federal Register — normally larger than the number returned.","title":"Total Matching","type":"integer"},"count":{"description":"Number of documents in `documents` after the `limit` cap.","title":"Count","type":"integer"},"documents":{"description":"One entry per Federal Register document issued by a mapped agency inside the publication-date window, newest publication date first. These are the industry's rules, not documents that name the company.","items":{"$ref":"#/$defs/RegDoc"},"title":"Documents","type":"array"},"method_id":{"default":"reg_impact_rules_v1","description":"Identifier and version of the join method behind this response, e.g. reg_impact_rules_v1. It changes when the method changes, so results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Heuristic cross-corpus join over public Federal Register and SEC EDGAR text; a citation or industry mapping indicates relevance, not legal exposure. Not legal advice.","description":"Fixed usage notice: this is a heuristic text join over public Federal Register and SEC filings, indicating relevance rather than legal exposure, and is not legal advice.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","name","sic","sic_description","mapped_agencies","total_matching","count","documents"],"title":"CompanyRulesOutput","type":"object"},"EntityProfileOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC submissions record may be a few hours older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer the profile describes, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"name":{"description":"Registrant name exactly as EDGAR currently records it; empty string if EDGAR carries no name for the filer.","title":"Name","type":"string"},"tickers":{"description":"Every exchange ticker EDGAR associates with this filer, positionally aligned with `exchanges` upstream. Empty for filers with no listed security.","items":{"type":"string"},"title":"Tickers","type":"array"},"exchanges":{"description":"Exchange codes for the listed securities (e.g. Nasdaq, NYSE), blank entries removed. Empty for filers with no listed security.","items":{"type":"string"},"title":"Exchanges","type":"array"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC Standard Industrial Classification code, a 4-digit string (e.g. 3571). Null when EDGAR has not assigned one.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Plain-text industry label EDGAR pairs with `sic`. Null when `sic` is absent.","title":"Sic Description"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EDGAR filer-entity classification string, e.g. 'operating' for an operating company. Null when EDGAR does not record one.","title":"Entity Type"},"state_of_incorporation":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the jurisdiction of incorporation (US state code, e.g. DE, or an EDGAR country code). Null when not recorded.","title":"State Of Incorporation"},"fiscal_year_end":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fiscal-year end as a 4-character MMDD string (e.g. 0928 for late September), with no year. Null when EDGAR does not record one.","title":"Fiscal Year End"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Contact telephone number on the filer's EDGAR record. Null when not recorded.","title":"Phone"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Company website on the filer's EDGAR record. Null when EDGAR records none or the field is blank; not verified as reachable.","title":"Website"},"former_names":{"description":"Prior registrant names from EDGAR, one object per name with the upstream `name`, `from` and `to` timestamps. Empty when the filer never changed name.","items":{"additionalProperties":true,"type":"object"},"title":"Former Names","type":"array"},"source":{"description":"URL of the SEC submissions record this profile was read from.","title":"Source","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups for this issuer, with the price of each: the same onward list /v1/sec/resolve returns, so arriving here directly is not a dead end.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","name","tickers","exchanges","sic","sic_description","entity_type","state_of_incorporation","fiscal_year_end","phone","website","former_names","source"],"title":"EntityProfileOutput","type":"object"},"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"EventsOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. Filings are ingested continuously, so this is the read time rather than a fixed data cut-off.","title":"As Of","type":"string"},"index_started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 UTC timestamp of the moment our poller first ingested a filing. Coverage does not extend meaningfully before it, so an empty result for an earlier window is silence from coverage rather than from the market.","title":"Index Started At"},"count":{"description":"Number of events in `events` after filtering and the limit. Equal to the length of `events`, not the total number of matching events in the index.","title":"Count","type":"integer"},"events":{"description":"One filing-derived event per element, ordered by `occurred_at` descending, i.e. most recently filed first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the rule set that produced the flags and scores in this response. It changes when the method changes; results carrying different method_ids are not directly comparable.","title":"Method Id","type":"string"},"disclaimer":{"default":"Analytical flags derived from public SEC filings; not investment advice.","description":"Fixed notice that the flags in this response are our own derivation from public SEC filings and are not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","count","events"],"title":"EventsOutput","type":"object"},"FactPointRow":{"properties":{"end":{"description":"Period end date the reported value covers, YYYY-MM-DD. Unique within a series: where several filings report the same period end, the most recently filed value is kept.","title":"End","type":"string"},"value":{"description":"Value as reported in the filing, in the series' unit — whole USD for monetary concepts and whole shares for share counts, never thousands or millions.","title":"Value","type":"number"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR form the value was reported on. Only annual and quarterly reports are kept, so this is 10-K or 10-Q. Null if upstream omits it.","title":"Form"},"fy":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filer's fiscal year for the report the value came from, as a 4-digit year (e.g. 2025); it can differ from the calendar year of `end`. Null if upstream omits it.","title":"Fy"},"fp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fiscal period of the report the value came from: FY for a full year, or Q1, Q2, Q3. Null if upstream omits it.","title":"Fp"},"filed":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the filing carrying this value was accepted by EDGAR, YYYY-MM-DD; always at or after `end`. Null if upstream omits it.","title":"Filed"}},"required":["end","value"],"title":"FactPointRow","type":"object"},"FinancialsOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC XBRL record may be up to a day older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"facts":{"additionalProperties":{"items":{"$ref":"#/$defs/FactPointRow"},"type":"array"},"description":"Keyed by metric key (revenue, net_income, total_assets and the rest of the catalog); each value is that metric's reported periods, oldest period end first, capped at the eight most recent. Values are whole USD except shares_outstanding, which is in whole shares. A metric the filer does not report is absent rather than empty.","title":"Facts","type":"object"},"source":{"description":"URL of the SEC XBRL company-facts record these values were read from.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","facts","source"],"title":"FinancialsOutput","type":"object"},"FormDOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Offerings noticed before it are absent at any window, so check it before reading an empty result as an absence of offerings.","title":"Index Started At","type":"string"},"since":{"description":"Earliest filing time actually applied, ISO-8601 UTC to the second. Echoes the `since` input after it is clamped to at most 90 days back, or the view's default window when none was given.","title":"Since","type":"string"},"count":{"description":"Number of offerings in `offerings`, after every filter and the limit. Equal to the list length, not the number that matched before the limit.","title":"Count","type":"integer"},"offerings":{"description":"One Form D notice per element, newest filing first. The large-raises view instead returns them by total_offering_usd descending.","items":{"$ref":"#/$defs/FormDRow"},"title":"Offerings","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the filing time of the newest offering returned, or the window start when the page was empty. Null on views not intended for polling (feed, new funds, large raises).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse these notices. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","offerings"],"title":"FormDOutput","type":"object"},"FormDRow":{"properties":{"accession":{"description":"EDGAR accession number of the Form D notice, dashed 10-2-6 format (e.g. 0001193125-26-000123).","title":"Accession","type":"string"},"filed_at":{"description":"When the notice appeared on EDGAR, ISO-8601 UTC to the second. Later than `first_sale_date`, which is when the offering actually began selling.","title":"Filed At","type":"string"},"cik":{"description":"SEC CIK of the issuer making the offering, 10 digits zero-padded. Many Form D issuers are private and have no ticker.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as reported on the notice; null when the filing supplied none.","title":"Company"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter code of the issuer's state or jurisdiction as reported on the notice (e.g. CA, DE); null when the notice omits it.","title":"State"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer's legal form exactly as reported (e.g. Corporation, Limited Partnership, Limited Liability Company); null when the notice omits it.","title":"Entity Type"},"industry_group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry category the issuer selected on the notice (e.g. Pooled Investment Fund, Technology, Commercial Banking); null when none was selected.","title":"Industry Group"},"is_amendment":{"description":"True when this notice amends an earlier Form D for the same offering rather than opening a new one; amendments restate the running totals.","title":"Is Amendment","type":"boolean"},"total_offering_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total amount of the offering in US dollars as reported. Null when the issuer left it blank or declared the offering indefinite, which is common for funds.","title":"Total Offering Usd"},"sold_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars already sold in the offering as of this notice; null when not reported. Read it against total_offering_usd rather than on its own.","title":"Sold Usd"},"remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"US dollars still to be sold as reported on the notice; null when not reported. Comes from the issuer, so it need not equal total_offering_usd minus sold_usd.","title":"Remaining Usd"},"investors":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of investors who have already invested in the offering, as reported: a head count, not a dollar amount. Null when not reported.","title":"Investors"},"exemptions":{"description":"Federal exemption or exclusion codes claimed on the notice, verbatim and in filing order (e.g. 06b for Rule 506(b), 3C.1). Empty when none were listed.","items":{"type":"string"},"title":"Exemptions","type":"array"},"minimum_investment":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest investment in US dollars the issuer will accept from an outside investor, as reported; null when not stated.","title":"Minimum Investment"},"first_sale_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date of the first sale in the offering, YYYY-MM-DD; null when the issuer indicated the first sale has yet to occur.","title":"First Sale Date"},"filing_url":{"description":"URL of the notice's index page on EDGAR, where the original document can be read.","title":"Filing Url","type":"string"}},"required":["accession","filed_at","cik","company","state","entity_type","industry_group","is_amendment","total_offering_usd","sold_usd","remaining_usd","investors","exemptions","minimum_investment","first_sale_date","filing_url"],"title":"FormDRow","type":"object"},"InsiderSummaryOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. A window reaching back before it is only partly covered, so totals below cover the overlap of your window with this start.","title":"Index Started At","type":"string"},"window_days":{"description":"Length in days of the lookback window the totals cover, counted back from `as_of`; echoes the requested days.","title":"Window Days","type":"integer"},"cik":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC CIK of the issuer summarised, 10 digits zero-padded (e.g. 0000320193). Null only when the request named a ticker that matched no filing in the window.","title":"Cik"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase exchange ticker of the issuer summarised. Null when the request named a CIK whose filings in the window carry no ticker.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer name as printed on one of the matched filings; null when no Form 4 filing matched in the window.","title":"Company"},"filings":{"description":"Number of Form 4 filings for this issuer in the window that reported at least one open-market buy or sell. Filings reporting only grants, gifts or option exercises are not counted.","title":"Filings","type":"integer"},"distinct_insiders":{"description":"Number of distinct reporting insiders, counted by insider CIK, behind those filings. Insiders whose filing omitted a CIK are not counted.","title":"Distinct Insiders","type":"integer"},"buy_usd":{"description":"Total US dollars of open-market purchases (transaction code P acquisitions of ordinary shares) across the window, rounded to cents. Lines with no reported price contribute nothing.","title":"Buy Usd","type":"number"},"sell_usd":{"description":"Total US dollars of open-market sales (transaction code S dispositions of ordinary shares) across the window, rounded to cents.","title":"Sell Usd","type":"number"},"net_usd":{"description":"buy_usd minus sell_usd, in US dollars: positive when insiders bought more than they sold in the window, negative when selling dominated.","title":"Net Usd","type":"number"},"largest_buy_usd":{"description":"Largest single filing's purchase total in US dollars within the window (per filing, not per transaction line). 0 when no purchases were reported.","title":"Largest Buy Usd","type":"number"},"largest_sale_usd":{"description":"Largest single filing's sale total in US dollars within the window (per filing, not per transaction line). 0 when no sales were reported.","title":"Largest Sale Usd","type":"number"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set used to parse filings and derive these totals. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each: insider activity reads against a comparison group, so the peer set is the natural next call.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","window_days","cik","ticker","company","filings","distinct_insiders","buy_usd","sell_usd","net_usd","largest_buy_usd","largest_sale_usd"],"title":"InsiderSummaryOutput","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"},"PeerRow":{"properties":{"cik":{"description":"SEC Central Index Key of this peer, 10 digits zero-padded (e.g. 0000320193). Use it directly against the other SEC endpoints.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker from the SEC company-ticker map. Null when the registrant has no ticker in that map (unlisted or non-equity filers).","title":"Ticker"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as SEC data reports it. Null in the rare case neither the ticker map nor the XBRL frame carried a name for this CIK.","title":"Name"},"assets_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total assets in US dollars reported by this peer at the end of frame_year (us-gaap Assets, instant). Null when it filed no such fact for that period.","title":"Assets Usd"},"revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Revenue in US dollars for the whole of frame_year. Null when the peer reported no calendar-year revenue fact, which is common for off-calendar fiscal years.","title":"Revenue Usd"},"net_income_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Net income (loss) in US dollars for frame_year; negative for a loss. Null when the peer reported no calendar-year net income fact.","title":"Net Income Usd"},"margin":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Net profit margin as a ratio, not a percentage: net income divided by revenue, so 0.25 means 25%. Null when either figure is missing or revenue is not positive.","title":"Margin"},"distance":{"description":"How far this peer sits from the target on the compared size and profitability measures: 0 is indistinguishable and larger is less alike. Comparable only against other rows in the same response and the same method_id.","title":"Distance","type":"number"},"similarity":{"description":"Convenience restatement of distance on a 0-1 scale where higher is more similar and 1.0 would be an exact match. Ranks identically to distance, inverted.","title":"Similarity","type":"number"}},"required":["cik","ticker","name","assets_usd","revenue_usd","net_income_usd","margin","distance","similarity"],"title":"PeerRow","type":"object"},"PeersOutput":{"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, Z suffix) at which this response was assembled. The underlying SEC facts are as of frame_year, not this instant.","title":"As Of","type":"string"},"target":{"$ref":"#/$defs/TargetBlock","description":"The company the peer set was selected for, with the figures the ranking used."},"frame_year":{"description":"Four-digit calendar year of the SEC XBRL frames every figure in this response is drawn from: the most recent complete calendar year with data available.","title":"Frame Year","type":"integer"},"candidates_in_industry":{"description":"How many registrants EDGAR listed under the target's SIC code before those with no usable figures were dropped, i.e. the size of the pool the ranking chose from.","title":"Candidates In Industry","type":"integer"},"count":{"description":"Number of peer rows actually returned in peers.","title":"Count","type":"integer"},"peers":{"description":"One entry per comparable company in the same SIC industry, ordered by distance ascending so the most similar company comes first; ties break by CIK.","items":{"$ref":"#/$defs/PeerRow"},"title":"Peers","type":"array"},"method_id":{"default":"sec_peers_rules_v1","description":"Versioned identifier of the ranking method that produced these rows. Distances and similarities are only comparable across responses sharing this value.","title":"Method Id","type":"string"},"disclaimer":{"default":"Similarity computed from public SEC XBRL facts and industry codes; a peer ranking is an analytical signal, not investment advice.","description":"Terms of use and the analytical (non-advice) nature of this peer ranking.","title":"Disclaimer","type":"string"}},"required":["as_of","target","frame_year","candidates_in_industry","count","peers"],"title":"PeersOutput","type":"object"},"RegDoc":{"properties":{"document_number":{"description":"Federal Register document number, e.g. 2026-12341. Stable permanent identifier; pass it to /v1/regs/document to re-fetch this document.","title":"Document Number","type":"string"},"title":{"description":"Official Federal Register document title as published, e.g. 'Cybersecurity Risk Management Rules'. Empty string if the source record carries no title.","title":"Title","type":"string"},"type":{"description":"Federal Register document type, one of: Rule (final rule), Proposed Rule, Notice, Presidential Document. Empty string if the source record omits it.","title":"Type","type":"string"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency's own one-line action label, e.g. 'Final rule.' or 'Notice of proposed rulemaking.'. Null when the document declares no action line.","title":"Action"},"agencies":{"description":"Full names of every agency issuing the document, e.g. 'Securities and Exchange Commission', in the order the Federal Register lists them; the agency slug is used if a name is missing. A joint rulemaking lists several.","items":{"type":"string"},"title":"Agencies","type":"array"},"publication_date":{"description":"Date the document appeared in the Federal Register, ISO-8601 YYYY-MM-DD. This is the publication date, not the effective date. Empty string if the source omits it.","title":"Publication Date","type":"string"},"effective_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the rule's obligations begin, ISO-8601 YYYY-MM-DD. Null for proposed rules, notices and any document with no effective date set; may be in the past.","title":"Effective On"},"comments_close_on":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last day the agency accepts public comment, ISO-8601 YYYY-MM-DD. Null when the document has no comment period (typically final rules and notices); may be past.","title":"Comments Close On"},"significant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the Federal Register marks the document a significant regulatory action under E.O. 12866. Null when the source record does not report significance, which is not the same as 'not significant'.","title":"Significant"},"abstract":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The agency-written summary of the document, verbatim from the Federal Register. Null when the document has no abstract.","title":"Abstract"},"docket_ids":{"description":"Agency docket identifiers for this rulemaking, e.g. 'EPA-HQ-OAR-2021-0317'; usable with /v1/regs/docket to pull the rest of the docket. Empty when none are assigned.","items":{"type":"string"},"title":"Docket Ids","type":"array"},"regulation_id_numbers":{"description":"Unified Agenda Regulation Identifier Numbers (RINs) for this rulemaking, e.g. '3235-AN00'. Empty for documents outside the Unified Agenda, such as most notices.","items":{"type":"string"},"title":"Regulation Id Numbers","type":"array"},"cfr_references":{"description":"Code of Federal Regulations parts the document touches, each formatted '<title> CFR <part>', e.g. '17 CFR 240' (title 1-50). Empty when no CFR part is cited, as with most notices and presidential documents.","items":{"type":"string"},"title":"Cfr References","type":"array"},"topics":{"description":"Federal Register subject index terms for the document, e.g. 'Securities'. Empty when the document is not indexed by topic.","items":{"type":"string"},"title":"Topics","type":"array"},"url":{"description":"Canonical federalregister.gov HTML page for the document, e.g. https://www.federalregister.gov/d/2026-12341. Empty string if the source omits it.","title":"Url","type":"string"},"flags":{"description":"Zero or more AnswerPool status flags, applied identically across every regulation endpoint: 'significant' (E.O. 12866 significant action), 'comments_close_soon' (comment deadline inside the watch window), 'effective_soon' (effective date inside the watch window), 'final_rule_pending_effect' (final rule not yet in force).","items":{"type":"string"},"title":"Flags","type":"array"},"days_to_comment_close":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to comments_close_on: 0 means the comment period closes today, negative means it already closed. Null when comments_close_on is null.","title":"Days To Comment Close"},"days_to_effective":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Whole days from today (UTC) to effective_on: 0 means the rule takes effect today, negative means it is already in force. Null when effective_on is null.","title":"Days To Effective"}},"required":["document_number","title","type","action","agencies","publication_date","effective_on","comments_close_on","significant","abstract","docket_ids","regulation_id_numbers","cfr_references","topics","url","flags","days_to_comment_close","days_to_effective"],"title":"RegDoc","type":"object"},"SectionStatus":{"properties":{"name":{"description":"Section key in this response, e.g. insider.","title":"Name","type":"string"},"present":{"description":"True when the section carries data. False is never silent: see `reason`.","title":"Present","type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why the section is null: no data exists for this issuer, or the underlying lookup failed and how. Null when present is true.","title":"Reason"},"endpoint":{"description":"The endpoint that sells this section on its own.","title":"Endpoint","type":"string"},"standalone_price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"What that endpoint charges for one call, so the packet's value against buying the sections separately is checkable. Null if this deployment cannot read its pricing.","title":"Standalone Price Usd"}},"required":["name","present","reason","endpoint","standalone_price_usd"],"title":"SectionStatus","type":"object"},"TargetBlock":{"properties":{"cik":{"description":"SEC Central Index Key of the company the comparison is built around, 10 digits zero-padded (e.g. 0000320193).","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker of the target from the SEC company-ticker map. Null when the registrant has no ticker there.","title":"Ticker"},"name":{"description":"Registrant name of the target exactly as EDGAR carries it on its filings.","title":"Name","type":"string"},"sic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC Standard Industrial Classification code of the target, normally 4 digits (e.g. 3571), as a string. This code defines the industry the peers were drawn from.","title":"Sic"},"sic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SEC's plain-English name for that SIC code, e.g. 'Electronic Computers'. Null when EDGAR supplies no description for the code.","title":"Sic Description"},"assets_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's total assets in US dollars at the end of frame_year, on the same basis as the peer rows. Null when it reported no such fact for that period.","title":"Assets Usd"},"revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's revenue in US dollars for the whole of frame_year. Null when it reported no calendar-year revenue fact.","title":"Revenue Usd"},"margin":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Target's net profit margin as a ratio (0.25 means 25%), net income over revenue. Null when either figure is missing or revenue is not positive.","title":"Margin"}},"required":["cik","ticker","name","sic","sic_description","assets_usd","revenue_usd","margin"],"title":"TargetBlock","type":"object"}},"properties":{"as_of":{"description":"When this packet was assembled, ISO 8601 UTC.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the issuer, 10 digits zero-padded.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ticker this packet was requested by, if any.","title":"Ticker"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as EDGAR records it, when known.","title":"Name"},"sections":{"description":"One row per section this packet can carry, present or not, with the reason and the price of buying that section on its own. Always complete — read this first.","items":{"$ref":"#/$defs/SectionStatus"},"title":"Sections","type":"array"},"sections_present":{"description":"Names of the sections that carry data, for a quick branch.","items":{"type":"string"},"title":"Sections Present","type":"array"},"entity":{"anyOf":[{"$ref":"#/$defs/EntityProfileOutput"},{"type":"null"}],"default":null,"description":"Identity: names, tickers, exchanges, SIC, incorporation, former names."},"events_8k":{"anyOf":[{"$ref":"#/$defs/EventsOutput"},{"type":"null"}],"default":null,"description":"Flagged 8-K events for this issuer over the last 90 days."},"insider":{"anyOf":[{"$ref":"#/$defs/InsiderSummaryOutput"},{"type":"null"}],"default":null,"description":"Insider buying and selling summary over the last 90 days."},"insider_clusters":{"anyOf":[{"$ref":"#/$defs/ClustersOutput"},{"type":"null"}],"default":null,"description":"Multi-insider buy clusters in the last 30 days, filtered to this issuer. Present with zero rows means we looked and there were none."},"form_d":{"anyOf":[{"$ref":"#/$defs/FormDOutput"},{"type":"null"}],"default":null,"description":"This issuer's Reg D offerings, newest first, from our parsed Form D index."},"financials":{"anyOf":[{"$ref":"#/$defs/FinancialsOutput"},{"type":"null"}],"default":null,"description":"Key XBRL facts, latest annual and quarterly periods per metric."},"peers":{"anyOf":[{"$ref":"#/$defs/PeersOutput"},{"type":"null"}],"default":null,"description":"Quantitative peer group from XBRL similarity, with this issuer's position."},"regulatory":{"anyOf":[{"$ref":"#/$defs/CompanyRulesOutput"},{"type":"null"}],"default":null,"description":"Federal Register rules that likely touch this issuer: the cross-corpus join, keyed by the identifiers its filings cite and by its SIC-to-agency mapping."},"sources":{"description":"The data sources behind the sections that are present.","items":{"type":"string"},"title":"Sources","type":"array"},"next_endpoints":{"description":"Where to go next, priced: the cheap re-checks to poll for changes, and the watchlist for this ticker.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"}},"required":["as_of","cik","ticker","name","sections","sections_present","sources"],"title":"IssuerPacketOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_latest_filings","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/filings/latest","method":"GET","price_usd":0.0,"description":"The newest filings across all of EDGAR for one form type (8-K, 4, D, S-1, 13F-HR, ...) from the SEC's live feed, normalized with archive URLs.","buyer_use_case":"The market-wide live tape for any form, without Atom parsing.","when_to_use":"Market-wide \"what was just filed\" for one form type.","when_not_to_use":"Per-company lists or flagged events — other views are cheaper/richer.","avoids":["Atom feed polling and parsing"],"input_schema":{"additionalProperties":false,"properties":{"form":{"description":"Single EDGAR form type to list across all filers, matched exactly and case-insensitively, e.g. 8-K, 4, D, S-1, 13F-HR. Required; not a list.","maxLength":12,"title":"Form","type":"string"},"limit":{"default":40,"description":"Maximum filings to return from the EDGAR current-filings feed, most recently accepted first. Capped at 100. Default 40.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["form"],"title":"LatestFilingsIn","type":"object"},"output_schema":{"$defs":{"MarketFilingRow":{"properties":{"accession":{"description":"EDGAR accession number with dashes, e.g. 0000320193-26-000012; unique per filing and usable as the `accession` input to the filing-documents view.","title":"Accession","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193). For a filing with several filers this is the first CIK EDGAR lists.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registrant name as the EDGAR feed or search index shows it. Null when the upstream record carries no display name.","title":"Company"},"form":{"description":"EDGAR form type of the filing, e.g. 8-K, 4, S-1, 13F-HR; amendments carry a /A suffix. Empty string only if the upstream record omits it.","title":"Form","type":"string"},"filed":{"description":"When the filing reached EDGAR. Search-backed views return the filing date as YYYY-MM-DD; the latest-filings view returns EDGAR's acceptance timestamp to second precision as YYYY-MM-DDTHH:MM:SS. Empty string if upstream omits it.","title":"Filed","type":"string"},"items":{"default":[],"description":"8-K item codes disclosed by this filing, e.g. ['2.02']. Empty for non-8-K forms and always empty in the latest-filings view, whose feed does not carry item codes.","items":{"type":"string"},"title":"Items","type":"array"},"url":{"description":"Absolute URL of the filing's EDGAR index page, from which every document in the filing can be reached.","title":"Url","type":"string"}},"required":["accession","cik","company","form","filed","url"],"title":"MarketFilingRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the EDGAR feed behind it is cached for a short period.","title":"As Of","type":"string"},"count":{"description":"Number of rows in `filings` after the limit, not the size of the full match.","title":"Count","type":"integer"},"filings":{"description":"One row per filing across all filers. The latest-filings view returns them most recently accepted first; the search-backed views return them in the relevance order EDGAR full-text search gives. Empty when nothing matches.","items":{"$ref":"#/$defs/MarketFilingRow"},"title":"Filings","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","count","filings"],"title":"MarketFilingsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_market_digest","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/digest","method":"GET","price_usd":0.0,"description":"Top-N SEC events for one day ranked by our salience score - bankruptcies, auditor changes, cyber incidents, insider clusters and large raises float to the top.","buyer_use_case":"One call answers \"what mattered in filings today?\".","when_to_use":"Daily/segment digests; pair with the flag glossary.","when_not_to_use":"Per-company or per-portfolio monitoring — use the other views.","avoids":["event ranking","market-wide polling","salience modeling"],"input_schema":{"additionalProperties":false,"properties":{"date":{"anyOf":[{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"Single UTC calendar day to digest, YYYY-MM-DD (e.g. 2026-08-14); defaults to today in UTC. A day outside the index window returns zero events.","title":"Date"},"limit":{"default":25,"description":"Maximum events returned for the day, highest score first and newest first within the same score; 1 to 50, default 25.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"DigestIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_metrics_catalog","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/metrics","method":"GET","price_usd":0.0,"description":"The metric vocabulary the XBRL views accept - revenue, net_income, cash, capex and more - each mapped to its candidate us-gaap tags. Raw 'us-gaap:<Tag>' is also accepted everywhere.","buyer_use_case":"Agents learn the metric vocabulary once, then call the paid XBRL views.","when_to_use":"First call before any XBRL view.","when_not_to_use":"n/a - free reference data.","avoids":["us-gaap taxonomy spelunking"],"input_schema":{"additionalProperties":false,"properties":{},"title":"EmptyLiveIn","type":"object"},"output_schema":{"$defs":{"MetricEntry":{"properties":{"metric":{"description":"Metric key accepted by the XBRL views in place of a raw tag, e.g. revenue, net_income, total_assets, shares_outstanding.","title":"Metric","type":"string"},"us_gaap_tags":{"description":"US-GAAP XBRL concept names this key resolves to, in the order they are tried; the first tag the filer actually reports is the one used. Usually one tag.","items":{"type":"string"},"title":"Us Gaap Tags","type":"array"}},"required":["metric","us_gaap_tags"],"title":"MetricEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated.","title":"As Of","type":"string"},"count":{"description":"Number of entries in `metrics`, i.e. the catalog size.","title":"Count","type":"integer"},"metrics":{"description":"One entry per supported metric key and the US-GAAP tags behind it, in catalog order; the ordering carries no ranking.","items":{"$ref":"#/$defs/MetricEntry"},"title":"Metrics","type":"array"},"note":{"default":"Pass a metric key or a raw 'us-gaap:<Tag>' to the XBRL views.","description":"Fixed usage hint explaining how the listed keys are used by the XBRL views.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","count","metrics"],"title":"MetricsCatalogOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_new_registrants","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/registrants/new","method":"GET","price_usd":0.0,"description":"Registrants whose first-ever EDGAR filing (against our multi-year filing index) landed in the window — new companies, funds and vehicles entering the SEC system, with their first forms. EDGAR itself cannot answer \"who is new\": that requires the full history we store. Free.","buyer_use_case":"An agent watching for new market entrants (companies, SPVs, funds) wants this week's first-time filers without maintaining its own EDGAR history.","when_to_use":"You want net-new registrants, not just recent filings.","when_not_to_use":"All recent filings regardless of history — /v1/sec/filings/latest.","avoids":["maintaining your own EDGAR history","full-index scans"],"input_schema":{"additionalProperties":false,"properties":{"days":{"default":7,"description":"Window in days over the EDGAR filing date; a registrant counts as new when the index holds no filing for it before that cutoff. Default 7.","maximum":31,"minimum":1,"title":"Days","type":"integer"},"limit":{"default":50,"description":"Maximum registrants returned, ordered by first filing date descending then CIK. Default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"NewRegistrantsIn","type":"object"},"output_schema":{"$defs":{"NewRegistrant":{"properties":{"cik":{"description":"Registrant's SEC Central Index Key, 10 digits zero-padded (e.g. 0000320193). Use this form when calling other views that take a cik.","title":"Cik","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Company name as it appears in the EDGAR quarterly form index for this registrant's earliest filings in the window; null when the index carries no name.","title":"Company"},"first_filed":{"description":"EDGAR filing date of the registrant's earliest filing inside the window, ISO-8601 YYYY-MM-DD. Since the index holds nothing earlier for this CIK, it is also the first filing on record within the index coverage.","title":"First Filed","type":"string"},"forms":{"description":"Distinct EDGAR form types seen on this registrant's earliest filings in the window, sorted alphabetically. A prolific new filer may have filed more form types than are listed here.","items":{"type":"string"},"title":"Forms","type":"array"},"filings":{"description":"Number of filings this registrant made inside the window, counted across all form types.","title":"Filings","type":"integer"}},"required":["cik","company","first_filed","forms","filings"],"title":"NewRegistrant","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the historical filing index.","title":"As Of","type":"string"},"window_days":{"description":"Length of the window in days, echoing the `days` input: a registrant is counted as new when the index holds no filing for it before this many days ago.","title":"Window Days","type":"integer"},"index_covers_since":{"description":"Earliest EDGAR filing date present in our historical filing index, ISO-8601 YYYY-MM-DD. 'First-ever filer' is only meaningful relative to this boundary.","title":"Index Covers Since","type":"string"},"index_covers_until":{"description":"Latest EDGAR filing date present in the index, ISO-8601 YYYY-MM-DD. Filings made after it are not indexed yet, so a window running past it may be incomplete.","title":"Index Covers Until","type":"string"},"count":{"description":"Number of registrants in `registrants` after the limit. Equal to the length of `registrants`, not the total number of new registrants in the window.","title":"Count","type":"integer"},"registrants":{"description":"One first-time filer per element, ordered by first filing date descending (most recent first), ties broken by CIK ascending.","items":{"$ref":"#/$defs/NewRegistrant"},"title":"Registrants","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","window_days","index_covers_since","index_covers_until","count","registrants"],"title":"NewRegistrantsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_resolve","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/resolve","method":"GET","price_usd":0.0,"description":"One call for any issuer string — ticker, CIK or company name, exact or partial — with the match kind for each candidate and ready-to-call URLs for the best one. Replaces guessing between /v1/sec/cik, /v1/sec/ticker and /v1/sec/search/company, which is the most-used shape on the shelf. Free.","buyer_use_case":"An agent holds one unknown string for a company and needs the canonical CIK plus the endpoints that accept it, without a round of trial and error.","when_to_use":"You have any string identifying an issuer and want identifiers plus where to go next.","when_not_to_use":"Federal award recipients — /v1/funding/recipients resolves those.","avoids":["calling three resolvers in turn","ticker-vs-name guessing","CIK zero-padding errors"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"Ticker, CIK or company name","maxLength":80,"minLength":1,"title":"Q","type":"string"},"limit":{"default":10,"description":"Maximum matches to return, ranked ticker hit, then exact, prefix and substring name hits. best is always the top-ranked one. Default 10.","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"ResolveIn","type":"object"},"output_schema":{"$defs":{"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"},"ResolvedMatch":{"properties":{"cik":{"description":"SEC Central Index Key of the matched registrant, 10 digits zero-padded; the identifier to pass to the other SEC endpoints.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary US exchange ticker of the match. Null for registrants absent from the SEC ticker file, which resolve by CIK or name only.","title":"Ticker"},"name":{"description":"Registrant name as published in the SEC ticker file. Empty string when a numeric CIK was supplied that the ticker file does not carry.","title":"Name","type":"string"},"match_on":{"description":"How the query matched: cik, ticker, name_exact, name_prefix or name_contains, in descending order of how strong the match is.","title":"Match On","type":"string"}},"required":["cik","ticker","name","match_on"],"title":"ResolvedMatch","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"query":{"description":"The submitted query string, whitespace-trimmed, echoed back.","title":"Query","type":"string"},"count":{"description":"Number of matches returned, at most limit.","title":"Count","type":"integer"},"matches":{"description":"Candidate registrants ranked strongest first: ticker hit, then exact name, name prefix, then name substring, with names in alphabetical order inside each tier.","items":{"$ref":"#/$defs/ResolvedMatch"},"title":"Matches","type":"array"},"best":{"anyOf":[{"$ref":"#/$defs/ResolvedMatch"},{"type":"null"}],"description":"The top-ranked match, the one next_endpoints are built for. Populated whenever the call succeeds; a query that resolves to nothing returns an error instead."},"next_endpoints":{"description":"One follow-up endpoint per entry, already parameterised for the best match, in a fixed catalog order from broad profile to specific analytics; not ranked.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"note":{"default":"One call for any issuer string — ticker, CIK or company name. next_endpoints are ready-to-call URLs for the best match; unlisted filers resolve by name or CIK only.","description":"Fixed note on what this resolver accepts and what next_endpoints point at.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","count","matches","best","next_endpoints"],"title":"ResolveOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_shares_outstanding","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/shares","method":"GET","price_usd":0.02,"description":"The as-reported common shares outstanding series for one filer from XBRL, deduplicated by period - the standalone product sec-api sells.","buyer_use_case":"Share-count history for dilution and per-share math, one call.","when_to_use":"Share-count questions.","when_not_to_use":"Public float — not served yet.","avoids":["companyfacts digging","dei tag handling"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"}},"title":"TickerCikIn","type":"object"},"output_schema":{"$defs":{"FactPointRow":{"properties":{"end":{"description":"Period end date the reported value covers, YYYY-MM-DD. Unique within a series: where several filings report the same period end, the most recently filed value is kept.","title":"End","type":"string"},"value":{"description":"Value as reported in the filing, in the series' unit — whole USD for monetary concepts and whole shares for share counts, never thousands or millions.","title":"Value","type":"number"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR form the value was reported on. Only annual and quarterly reports are kept, so this is 10-K or 10-Q. Null if upstream omits it.","title":"Form"},"fy":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filer's fiscal year for the report the value came from, as a 4-digit year (e.g. 2025); it can differ from the calendar year of `end`. Null if upstream omits it.","title":"Fy"},"fp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fiscal period of the report the value came from: FY for a full year, or Q1, Q2, Q3. Null if upstream omits it.","title":"Fp"},"filed":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the filing carrying this value was accepted by EDGAR, YYYY-MM-DD; always at or after `end`. Null if upstream omits it.","title":"Filed"}},"required":["end","value"],"title":"FactPointRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC XBRL record may be up to a day older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"points":{"description":"Common shares outstanding as reported in the filer's annual and quarterly reports, in whole shares, ordered oldest period end first and capped at the twelve most recent periods.","items":{"$ref":"#/$defs/FactPointRow"},"title":"Points","type":"array"},"source":{"description":"URL of the SEC XBRL company-concept record these share counts were read from.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","points","source"],"title":"SharesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_sic_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/sic","method":"GET","price_usd":0.0,"description":"Searches the SEC's Standard Industrial Classification list (all 444 codes) by code prefix or industry text and returns code, industry title and the Corp-Fin office that reviews it. The SIC code keys EDGAR industry filters and our peer-group products. Free.","buyer_use_case":"An agent needs the SIC code behind an industry name (or the industry behind a code on a filing) before industry-filtered EDGAR queries or peer analysis.","when_to_use":"You need a SIC code for EDGAR industry filtering or to decode one from a filing header.\n","when_not_to_use":"Contracting industry codes — that is NAICS (/v1/funding/naics).","avoids":["sec.gov SIC table scraping","code guessing"],"input_schema":{"additionalProperties":false,"properties":{"q":{"description":"SIC code (or prefix) or industry text","maxLength":60,"minLength":1,"title":"Q","type":"string"},"limit":{"default":20,"description":"Maximum SIC entries returned, in ascending SIC code order. Default 20; no match returns an empty list.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["q"],"title":"SicLookupIn","type":"object"},"output_schema":{"$defs":{"SicEntry":{"properties":{"code":{"description":"Standard Industrial Classification code exactly as the SEC publishes it: 3 or 4 digits, unpadded (e.g. 100, 3571). This is the value EDGAR reports as a filer's SIC.","title":"Code","type":"string"},"title":{"description":"Industry title the SEC publishes for the code, verbatim and upper-case (e.g. SERVICES-PREPACKAGED SOFTWARE).","title":"Title","type":"string"},"corp_fin_office":{"description":"Office within the SEC's Division of Corporation Finance that reviews filings in this industry (e.g. Office of Technology), as published alongside the code.","title":"Corp Fin Office","type":"string"}},"required":["code","title","corp_fin_office"],"title":"SicEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. The SIC list is static reference data, so this is a build time rather than a data cut-off.","title":"As Of","type":"string"},"count":{"description":"Number of entries in `codes` after the limit. Equal to the length of `codes`, not the number of entries that matched before the limit was applied.","title":"Count","type":"integer"},"codes":{"description":"One SIC code per element, in ascending code order as published by the SEC. Not ranked by relevance to the query; an empty list means nothing matched.","items":{"$ref":"#/$defs/SicEntry"},"title":"Codes","type":"array"},"source":{"default":"sec.gov Division of Corporation Finance SIC code list","description":"Name of the SEC-published list these entries are copied from; the only source this view consults, and it is served verbatim.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR data and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","codes"],"title":"SicOutput","type":"object"},"cache_ttl_days":30,"methodology_version":"0.1.0"},{"id":"sec_ticker_lookup","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/ticker","method":"GET","price_usd":0.0,"description":"Resolves an SEC CIK to its primary ticker and registered company name from the SEC's official mapping. Free, rate-limited.","buyer_use_case":"An agent holds a CIK from a filing and needs the tradable ticker and display name.","when_to_use":"You hold a CIK (from any filing) and need ticker and name.","when_not_to_use":"Private filers with no listed security often have no ticker.","avoids":["company_tickers.json download","reverse-index building"],"input_schema":{"additionalProperties":false,"properties":{"cik":{"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). A CIK with no ticker in the SEC ticker file returns an empty list, not an error.","maxLength":10,"pattern":"^\\d{1,10}$","title":"Cik","type":"string"}},"required":["cik"],"title":"TickerLookupIn","type":"object"},"output_schema":{"$defs":{"Match":{"properties":{"cik":{"description":"SEC Central Index Key of the registrant, 10 digits zero-padded (e.g. 0000320193). Use this form when calling other views that take a cik.","title":"Cik","type":"string"},"ticker":{"description":"Uppercase US exchange ticker recorded for this CIK in the SEC company_tickers file (e.g. AAPL). One ticker is kept per CIK, so a registrant with several listed symbols appears once.","title":"Ticker","type":"string"},"name":{"description":"Registrant name exactly as published in the SEC company_tickers file (e.g. Apple Inc.); capitalisation follows the file, not a house style.","title":"Name","type":"string"}},"required":["cik","ticker","name"],"title":"Match","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the SEC ticker file, which is refreshed daily.","title":"As Of","type":"string"},"count":{"description":"Number of registrants in `matches` after the per-view cap. Equal to the length of `matches`, not the number of matches that existed before the cap.","title":"Count","type":"integer"},"matches":{"description":"One registrant per element, in SEC ticker-file order (roughly largest companies first). Not ranked by relevance to the query; an empty list means no match.","items":{"$ref":"#/$defs/Match"},"title":"Matches","type":"array"},"source":{"default":"https://www.sec.gov/files/company_tickers.json","description":"URL of the SEC file these ticker-to-CIK matches come from; constant, and the only source consulted by this view.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","matches"],"title":"MatchesOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_transaction_codes","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/insider/codes","method":"GET","price_usd":0.0,"description":"Form 3/4/5 transaction codes (P, S, A, F, M, G, C, J, W) with plain-English meaning, so agents can filter insider feeds correctly. Free, static.","buyer_use_case":"Agents screening insider activity need the code vocabulary once.","when_to_use":"Before filtering insider transactions by code or direction.","when_not_to_use":"n/a - free reference data.","avoids":["SEC Form 4 instructions lookup"],"input_schema":{"additionalProperties":false,"properties":{},"title":"EmptyIn","type":"object"},"output_schema":{"$defs":{"GlossaryEntry":{"properties":{"code":{"description":"Identifier of the term in its own vocabulary: an EDGAR form type (8-K, 4, D), an 8-K item code in N.NN form (5.02), a single-letter Form 4 transaction code (P), or a flag name, depending on which glossary was called.","title":"Code","type":"string"},"name":{"description":"Machine-readable snake_case name of the term (e.g. insider_transaction, officer_or_director_change). Item and flag names appear in exactly this form in the flags and event_type fields of events elsewhere in this API.","title":"Name","type":"string"},"description":{"description":"One-sentence plain-English explanation of what the term means on a filing.","title":"Description","type":"string"},"covered":{"default":true,"description":"True when filings of this kind are carried by the live index today; false marks a form listed for reference only and not indexed yet. Always true in the item, transaction-code and flag glossaries.","title":"Covered","type":"boolean"}},"required":["code","name","description"],"title":"GlossaryEntry","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built. Glossaries are static reference data, so this is a build time rather than a data cut-off.","title":"As Of","type":"string"},"count":{"description":"Number of terms in `entries`. Glossaries are returned whole and never paged.","title":"Count","type":"integer"},"entries":{"description":"One vocabulary term per element, in a fixed reference order (form and 8-K item codes ascending, flags we derive ourselves last). Not ranked and not sorted by frequency.","items":{"$ref":"#/$defs/GlossaryEntry"},"title":"Entries","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","count","entries"],"title":"GlossaryOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_watchlist_events","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/watchlist","method":"GET","price_usd":0.02,"description":"Events for a comma-separated watchlist (max 25 tickers) since a cursor: 8-K items, insider transactions and Form D raises with flags and scores, plus a next_cursor. Multi-ticker in one call; no incumbent offers it.","buyer_use_case":"Portfolio and watchlist agents replace 25 polling loops with one call per cycle.","when_to_use":"Recurring portfolio monitoring; store next_cursor between calls.","when_not_to_use":"Market-wide screens or a single company — cheaper views exist.","avoids":["per-ticker polling loops","event parsing","flagging","cursor bookkeeping"],"input_schema":{"additionalProperties":false,"properties":{"tickers":{"description":"Comma-separated tickers, max 25","maxLength":300,"title":"Tickers","type":"string"},"since":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event time, ISO 8601 date or timestamp (e.g. 2026-08-01 or 2026-08-01T00:00:00Z); UTC if no offset, capped at 90 days back. Default: 7 days.","title":"Since"},"limit":{"default":100,"description":"Maximum events returned across all watched tickers, newest first; 1 to 200, default 100. Poll again with next_cursor.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["tickers"],"title":"WatchlistIn","type":"object"},"output_schema":{"$defs":{"Event":{"properties":{"event_id":{"description":"Stable identifier for this event row, formatted `ev_` followed by 20 hex characters. Unique across the feed and safe to use for de-duplication between calls.","title":"Event Id","type":"string"},"accession":{"description":"SEC accession number of the filing the event was derived from, in dashed form 0000000000-00-000000. Identifies the filing uniquely on EDGAR.","title":"Accession","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer, 10 digits zero-padded (e.g. 0000320193). For ownership and Form D events this is the issuer, never the reporting insider.","title":"Cik","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercase US exchange ticker for the issuer when one is known from the SEC ticker file; null for unlisted issuers, which is common on Form D.","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Issuer or registrant name as carried on the filing; null when the source feed supplied no name.","title":"Company"},"form":{"description":"EDGAR form type of the source filing. The event index covers 8-K, D and the insider ownership forms, which are all recorded as `4`.","title":"Form","type":"string"},"event_type":{"description":"Kind of event: `form_8k` (8-K current report), `insider_transaction` (ownership form reporting buys or sells) or `private_offering` (Form D exempt offering).","title":"Event Type","type":"string"},"occurred_at":{"description":"When the filing became public on EDGAR: the filing date (ISO-8601 YYYY-MM-DD) for 8-K events, an ISO-8601 timestamp to the second for ownership and Form D events. This is the filing moment, not the date of the underlying transaction or event.","title":"Occurred At","type":"string"},"flags":{"description":"Analytical tags derived for this filing (e.g. distress, leadership_change, large_insider_buy), sorted and de-duplicated; empty when nothing was flagged. The `sec_flag_glossary` view defines every flag we emit.","items":{"type":"string"},"title":"Flags","type":"array"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How notable this event is, 0 to 1, where higher means the flags on it are more materially significant; an event with no flags scores 0. Null when the row carries no score.","title":"Score"},"payload":{"additionalProperties":true,"description":"Form-specific detail. `form_8k` carries `items` (8-K item codes) and `labels`; `insider_transaction` carries `owner`, `buy_usd`, `sell_usd`, `n_buys`, `n_sells`; `private_offering` carries `total_offering_usd`, `sold_usd`, `investors`, `industry_group`, `state`, `is_amendment`. All USD amounts are whole dollars.","title":"Payload","type":"object"},"filing_url":{"description":"Absolute sec.gov URL of the filing's EDGAR index page, from which every document in the filing can be reached. Use it to verify the event against the source.","title":"Filing Url","type":"string"}},"required":["event_id","accession","cik","ticker","company","form","event_type","occurred_at","flags","score","payload","filing_url"],"title":"Event","type":"object"},"NextEndpoint":{"properties":{"path":{"description":"API path of a follow-up endpoint for this result, e.g. /v1/sec/filings.","title":"Path","type":"string"},"url":{"description":"Ready-to-call relative URL: the path with this result's best identifier already applied as a query parameter.","title":"Url","type":"string"},"description":{"description":"What the caller receives by following this URL, e.g. recent filings.","title":"Description","type":"string"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Price of one call to this endpoint in US dollars; 0 means free, no key needed. Null only when this deployment cannot read its own pricing config.","title":"Price Usd"}},"required":["path","url","description"],"title":"NextEndpoint","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp with milliseconds (e.g. 2026-09-03T14:05:00.000Z) at which this response was built from the index.","title":"As Of","type":"string"},"index_started_at":{"description":"ISO-8601 UTC timestamp of the first filing this index ever ingested: the start of coverage. Nothing published before it is available at any window, so check it before reading an empty result as an absence of events.","title":"Index Started At","type":"string"},"since":{"description":"Start of the window covered, ISO-8601 UTC to the second, after the requested `since` is clamped to at most 90 days back; the daily-digest view puts the YYYY-MM-DD day it covers here instead. Events before it are not returned.","title":"Since","type":"string"},"count":{"description":"Number of events in `events`, after every filter and the limit. Equal to the list length, not the number of events that matched before the limit.","title":"Count","type":"integer"},"events":{"description":"One derived filing event per element, most recent occurrence first. The daily digest and the distress screen instead return the highest-scoring events first.","items":{"$ref":"#/$defs/Event"},"title":"Events","type":"array"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Value to send as `since` on the next poll: the occurrence time of the newest event returned, or the window start when the page was empty. Null on views not intended for polling (latest, daily digest, distress screen).","title":"Next Cursor"},"method_id":{"default":"sec_events_rules_v1","description":"Identifier and version of the deterministic rule set that derived these events, their flags and their scores. A change in method gets a new id, so pin it if you need results that stay comparable over time.","title":"Method Id","type":"string"},"next_endpoints":{"description":"Ready-to-call follow-ups with the price of each, when the view suggests any: an event is a reason to look at the issuer, and this is where to look next.","items":{"$ref":"#/$defs/NextEndpoint"},"title":"Next Endpoints","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that everything in this response is derived from public SEC EDGAR filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","index_started_at","since","count","events"],"title":"EventsListOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_xbrl_compare","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/compare","method":"GET","price_usd":0.05,"description":"The latest reported value of one metric for up to 10 tickers, fetched per-company from the small concept API and ranked - a one-call peer comparison.","buyer_use_case":"\"Compare R&D spend across these five chipmakers\" in one call.","when_to_use":"Peer comparisons on one metric.","when_not_to_use":"Whole-market ranking — the frame view covers every filer.","avoids":["N per-company downloads","tag mapping","ranking code"],"input_schema":{"additionalProperties":false,"properties":{"tickers":{"description":"Comma-separated tickers, max 10","maxLength":120,"title":"Tickers","type":"string"},"metric":{"description":"Required metric key from /v1/sec/xbrl/metrics (e.g. revenue) or a raw US-GAAP XBRL concept as us-gaap:<Tag>; tickers not reporting it are dropped from the result.","maxLength":120,"title":"Metric","type":"string"}},"required":["tickers","metric"],"title":"CompareIn","type":"object"},"output_schema":{"$defs":{"CompareRow":{"properties":{"ticker":{"description":"Requested ticker this row is for, upper-cased (e.g. AAPL).","title":"Ticker","type":"string"},"cik":{"description":"SEC CIK the ticker resolved to, as 10 digits zero-padded (e.g. 0000320193).","title":"Cik","type":"string"},"tag":{"description":"US-GAAP XBRL concept this filer's value came from, without the taxonomy prefix (e.g. Revenues). It can differ between rows when filers report a metric under different tags, so check it before comparing.","title":"Tag","type":"string"},"end":{"description":"Period end date of this filer's most recent reported value, YYYY-MM-DD. Filers have different fiscal calendars, so rows are not guaranteed to share a period.","title":"End","type":"string"},"value":{"description":"The filer's most recent reported value for the metric, as filed — whole USD for monetary metrics, whole shares for share counts.","title":"Value","type":"number"}},"required":["ticker","cik","tag","end","value"],"title":"CompareRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC XBRL records may be up to a day older.","title":"As Of","type":"string"},"metric":{"description":"The metric key or us-gaap:<Tag> string that was requested, echoed unchanged.","title":"Metric","type":"string"},"count":{"description":"Number of rows in `latest`. It is lower than the number of tickers requested when a ticker cannot be resolved or reports no value for the metric.","title":"Count","type":"integer"},"latest":{"description":"One row per requested ticker that reports the metric, ranked by `value` descending (largest first). Tickers with no reported value are dropped rather than returned null.","items":{"$ref":"#/$defs/CompareRow"},"title":"Latest","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","metric","count","latest"],"title":"CompareOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_xbrl_concept","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/concept","method":"GET","price_usd":0.0,"description":"The as-reported series for one metric (catalog key or raw us-gaap tag) for one filer, deduplicated to 10-K/10-Q values with period metadata - from the small companyconcept API, not a megabyte companyfacts download.","buyer_use_case":"\"Revenue history for NVDA\" in one cheap, source-cited call.","when_to_use":"One metric, one company.","when_not_to_use":"Full statements — use financials; cross-company — use compare/frame.","avoids":["companyfacts download","tag hunting","dedup across restatements"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"},"metric":{"description":"Required metric key from /v1/sec/xbrl/metrics (e.g. revenue) or a raw US-GAAP XBRL concept as us-gaap:<Tag> (e.g. us-gaap:Assets). Anything else returns 422.","maxLength":120,"title":"Metric","type":"string"},"limit":{"default":20,"description":"Number of most recent 10-K and 10-Q period points to keep; they are returned oldest period end first. Default 20.","maximum":60,"minimum":1,"title":"Limit","type":"integer"}},"required":["metric"],"title":"ConceptIn","type":"object"},"output_schema":{"$defs":{"FactPointRow":{"properties":{"end":{"description":"Period end date the reported value covers, YYYY-MM-DD. Unique within a series: where several filings report the same period end, the most recently filed value is kept.","title":"End","type":"string"},"value":{"description":"Value as reported in the filing, in the series' unit — whole USD for monetary concepts and whole shares for share counts, never thousands or millions.","title":"Value","type":"number"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR form the value was reported on. Only annual and quarterly reports are kept, so this is 10-K or 10-Q. Null if upstream omits it.","title":"Form"},"fy":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filer's fiscal year for the report the value came from, as a 4-digit year (e.g. 2025); it can differ from the calendar year of `end`. Null if upstream omits it.","title":"Fy"},"fp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fiscal period of the report the value came from: FY for a full year, or Q1, Q2, Q3. Null if upstream omits it.","title":"Fp"},"filed":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the filing carrying this value was accepted by EDGAR, YYYY-MM-DD; always at or after `end`. Null if upstream omits it.","title":"Filed"}},"required":["end","value"],"title":"FactPointRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC XBRL record may be up to a day older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"metric":{"description":"The metric key or us-gaap:<Tag> string that was requested, echoed unchanged.","title":"Metric","type":"string"},"tag":{"description":"US-GAAP XBRL concept actually used, without the taxonomy prefix (e.g. Revenues). A metric key can map to several candidate tags; this is the one this filer reports.","title":"Tag","type":"string"},"unit":{"description":"XBRL unit of measure every value in `points` is expressed in — USD when the filer reports it, otherwise the concept's own unit such as shares or USD/shares.","title":"Unit","type":"string"},"points":{"description":"One row per reported period, ordered oldest period end first, ending with the most recent; at most `limit` rows. Never empty — a filer reporting nothing for the metric returns an error instead.","items":{"$ref":"#/$defs/FactPointRow"},"title":"Points","type":"array"},"source":{"description":"URL of the SEC XBRL company-concept record these points were read from.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","metric","tag","unit","points","source"],"title":"ConceptOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_xbrl_financials","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/financials","method":"GET","price_usd":0.02,"description":"The full metric catalog (revenue, income, cash flow, balance sheet, capex, R&D, shares) for one filer across the last eight 10-K/10-Q periods, normalized from companyfacts.","buyer_use_case":"One call replaces a 5-20MB companyfacts download and normalization.","when_to_use":"Multi-metric fundamentals for one company.","when_not_to_use":"One metric — concept is cheaper; peers — compare/frame.","avoids":["companyfacts download","tag mapping","restatement dedup"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"}},"title":"TickerCikIn","type":"object"},"output_schema":{"$defs":{"FactPointRow":{"properties":{"end":{"description":"Period end date the reported value covers, YYYY-MM-DD. Unique within a series: where several filings report the same period end, the most recently filed value is kept.","title":"End","type":"string"},"value":{"description":"Value as reported in the filing, in the series' unit — whole USD for monetary concepts and whole shares for share counts, never thousands or millions.","title":"Value","type":"number"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EDGAR form the value was reported on. Only annual and quarterly reports are kept, so this is 10-K or 10-Q. Null if upstream omits it.","title":"Form"},"fy":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Filer's fiscal year for the report the value came from, as a 4-digit year (e.g. 2025); it can differ from the calendar year of `end`. Null if upstream omits it.","title":"Fy"},"fp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fiscal period of the report the value came from: FY for a full year, or Q1, Q2, Q3. Null if upstream omits it.","title":"Fp"},"filed":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date the filing carrying this value was accepted by EDGAR, YYYY-MM-DD; always at or after `end`. Null if upstream omits it.","title":"Filed"}},"required":["end","value"],"title":"FactPointRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC XBRL record may be up to a day older.","title":"As Of","type":"string"},"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193), resolved from the supplied ticker or cik.","title":"Cik","type":"string"},"facts":{"additionalProperties":{"items":{"$ref":"#/$defs/FactPointRow"},"type":"array"},"description":"Keyed by metric key (revenue, net_income, total_assets and the rest of the catalog); each value is that metric's reported periods, oldest period end first, capped at the eight most recent. Values are whole USD except shares_outstanding, which is in whole shares. A metric the filer does not report is absent rather than empty.","title":"Facts","type":"object"},"source":{"description":"URL of the SEC XBRL company-facts record these values were read from.","title":"Source","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","facts","source"],"title":"FinancialsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_xbrl_frame","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/frame","method":"GET","price_usd":0.05,"description":"The SEC frames API served as a ranked view: one metric, one period (CY2025, CY2025Q1), every filer that reported it, top-N by value with the total filer count.","buyer_use_case":"Whole-market questions - \"largest R&D spenders last quarter\" - that otherwise need a bulk XBRL pipeline.","when_to_use":"Whole-market, single-period metric questions.","when_not_to_use":"Company histories — concept/financials; small peer sets — compare.","avoids":["bulk XBRL processing","frames period quirks","ranking"],"input_schema":{"additionalProperties":false,"properties":{"metric":{"description":"Required metric key from /v1/sec/xbrl/metrics (e.g. revenue) or a raw US-GAAP XBRL concept as us-gaap:<Tag>; one tag is queried across all filers.","maxLength":120,"title":"Metric","type":"string"},"period":{"description":"e.g. CY2025, CY2025Q1, CY2025Q1I","maxLength":12,"pattern":"^CY\\d{4}(Q[1-4])?I?$","title":"Period","type":"string"},"limit":{"default":50,"description":"Number of filers to return, ranked by reported value descending; total_filers reports the full population. Default 50.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"required":["metric","period"],"title":"FrameIn","type":"object"},"output_schema":{"$defs":{"FrameRow":{"properties":{"cik":{"description":"SEC CIK of the filer, as 10 digits zero-padded (e.g. 0000320193).","title":"Cik","type":"string"},"entity":{"description":"Registrant name as the SEC XBRL frames record gives it; empty string when upstream carries no name.","title":"Entity","type":"string"},"value":{"description":"Value this filer reported for the concept in the requested period, as filed — whole USD for monetary metrics, whole shares for share counts.","title":"Value","type":"number"}},"required":["cik","entity","value"],"title":"FrameRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (millisecond precision, trailing Z) at which this response was generated; the underlying SEC XBRL frame may be up to a day older.","title":"As Of","type":"string"},"metric":{"description":"The metric key or us-gaap:<Tag> string that was requested, echoed unchanged.","title":"Metric","type":"string"},"tag":{"description":"US-GAAP XBRL concept the frame was taken from, without the taxonomy prefix (e.g. Assets). One tag is used for every filer, which makes the values comparable.","title":"Tag","type":"string"},"period":{"description":"Calendar period the frame covers, echoing the request: CY2025 for a full year, CY2025Q1 for a quarter's flow, CY2025Q1I for an instantaneous balance at that quarter end. A duration request with no frame is retried as the instantaneous one.","title":"Period","type":"string"},"total_filers":{"description":"Number of filers the SEC frame reports for this concept and period, before the limit is applied — the full population `top` is drawn from.","title":"Total Filers","type":"integer"},"top":{"description":"Filers ranked by reported `value` descending (largest first), truncated to the requested limit.","items":{"$ref":"#/$defs/FrameRow"},"title":"Top","type":"array"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice on the source and permitted use of this data. Same on every row.","title":"Disclaimer","type":"string"}},"required":["as_of","metric","tag","period","total_filers","top"],"title":"FrameOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_xbrl_growth","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/growth","method":"GET","price_usd":0.05,"description":"Annual XBRL history for a company's key metrics with the growth arithmetic already done: year-over-year change per fiscal year, plus 3-year and 5-year CAGR, for revenue, net income, assets or any metric in /v1/sec/xbrl/metrics. Deduplicated to one point per fiscal year end, 10-K figures only, CAGR null across a sign change rather than fabricated.","buyer_use_case":"An agent judging a company's trajectory wants growth rates over years, not a raw fact dump it has to align by period and divide itself.","when_to_use":"You need multi-year growth rates for one company from filed figures.","when_not_to_use":"A single metric's raw points (/v1/sec/xbrl/concept, free) or a cross-company snapshot (/v1/sec/xbrl/compare).\n","avoids":["companyfacts JSON wrangling","period alignment","CAGR arithmetic","restatement duplicates"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"},"metrics":{"default":"revenue,net_income,total_assets","description":"Comma-separated metric names from /v1/sec/xbrl/metrics","maxLength":200,"title":"Metrics","type":"string"}},"title":"GrowthIn","type":"object"},"output_schema":{"$defs":{"GrowthPoint":{"properties":{"period_end":{"description":"Fiscal period end date of this annual (10-K) figure, YYYY-MM-DD.","title":"Period End","type":"string"},"value":{"description":"Value reported for this fiscal year, in the unit given by the parent metric's unit field (USD for financial metrics, shares for share counts).","title":"Value","type":"number"},"change_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Percent change against the previous annual point in this series, e.g. 12.5 means +12.5%. Null for the earliest point and when the previous value was zero.","title":"Change Pct"}},"required":["period_end","value","change_pct"],"title":"GrowthPoint","type":"object"},"MetricGrowth":{"properties":{"metric":{"description":"The requested metric key, e.g. revenue or net_income (see /v1/sec/xbrl/metrics).","title":"Metric","type":"string"},"tag":{"description":"US-GAAP XBRL concept actually used for this metric, e.g. Revenues or NetIncomeLoss; issuers tag the same idea differently, so this records which one was found.","title":"Tag","type":"string"},"unit":{"description":"Unit of value and latest_value as reported in XBRL, normally USD, or shares for share-count metrics.","title":"Unit","type":"string"},"latest_value":{"description":"Value at the most recent annual period end, in the unit given by unit.","title":"Latest Value","type":"number"},"latest_period_end":{"description":"Fiscal year end date of latest_value, YYYY-MM-DD.","title":"Latest Period End","type":"string"},"years_covered":{"description":"Number of distinct annual period ends available for this metric, i.e. the length of annual_points.","title":"Years Covered","type":"integer"},"growth_1y_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Percent change of the latest annual value against the prior year, e.g. -3.2 means a 3.2% decline. Null with fewer than two annual points or a zero prior value.","title":"Growth 1Y Pct"},"cagr_3y_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Compound annual growth rate in percent per year over the three years ending at latest_period_end (8.4 means 8.4%/yr). Null when the span is shorter or an endpoint is zero or negative, where a CAGR has no meaning.","title":"Cagr 3Y Pct"},"cagr_5y_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Compound annual growth rate in percent per year over the five years ending at latest_period_end. Null when the span is shorter or an endpoint is zero or negative.","title":"Cagr 5Y Pct"},"annual_points":{"description":"One entry per fiscal year reported for this metric, ordered oldest period end first (ascending by date), with the latest fiscal year last.","items":{"$ref":"#/$defs/GrowthPoint"},"title":"Annual Points","type":"array"}},"required":["metric","tag","unit","latest_value","latest_period_end","years_covered","growth_1y_pct","cagr_3y_pct","cagr_5y_pct","annual_points"],"title":"MetricGrowth","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer these series belong to, 10 digits zero-padded.","title":"Cik","type":"string"},"metrics":{"description":"One entry per requested metric that had annual data, in the order the metrics parameter listed them; at most the first eight requested metrics are computed.","items":{"$ref":"#/$defs/MetricGrowth"},"title":"Metrics","type":"array"},"unavailable":{"description":"Metric keys that were requested but had no annual 10-K XBRL values for this issuer, so no series could be built for them.","items":{"type":"string"},"title":"Unavailable","type":"array"},"method":{"default":"sec_xbrl_growth_rules_v1","description":"Identifier and version of the computation used. A change to how growth is derived gets a new identifier, so callers can detect it.","title":"Method","type":"string"},"note":{"default":"Annual (10-K) XBRL points only, deduplicated per fiscal year end; CAGR needs the full span or it is null. Reported figures as filed, not restated.","description":"Fixed caveat on which filings feed the series and why a growth figure can be null.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","metrics","unavailable"],"title":"GrowthOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"sec_xbrl_ratios","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/sec/xbrl/ratios","method":"GET","price_usd":0.05,"description":"Margins (gross, operating, net), returns (assets, equity), leverage (debt to equity) and intensities (R&D, capex, operating cash flow) for one company, computed from annual XBRL values that share a single fiscal period end — with both inputs shown for every ratio. A ratio is null when an input was not reported for that period rather than silently mixed across years.","buyer_use_case":"An agent judging profitability or leverage wants the ratios, not a fact dump it has to align by period and divide, with the risk of mixing two fiscal years.","when_to_use":"You need ratios for one company from filed figures, with the inputs auditable.","when_not_to_use":"Growth over time (/v1/sec/xbrl/growth) or raw facts (/v1/sec/xbrl/financials, /v1/sec/xbrl/concept).\n","avoids":["companyfacts wrangling","period misalignment across fiscal years","ratio arithmetic"],"input_schema":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"US exchange ticker, case-insensitive (e.g. AAPL); resolved through the EDGAR ticker map, and an unknown ticker returns 422. Provide exactly one of ticker or cik.","title":"Ticker"},"cik":{"anyOf":[{"maxLength":10,"pattern":"^\\d{1,10}$","type":"string"},{"type":"null"}],"default":null,"description":"SEC CIK, 1-10 digits, zero padding optional (e.g. 320193 or 0000320193). Provide exactly one of cik or ticker.","title":"Cik"}},"title":"RatiosIn","type":"object"},"output_schema":{"$defs":{"RatioRow":{"properties":{"ratio":{"description":"Ratio key: gross_margin_pct, operating_margin_pct, net_margin_pct, return_on_assets_pct, return_on_equity_pct, debt_to_equity, rnd_intensity_pct, capex_intensity_pct or ocf_margin_pct.","title":"Ratio","type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"The ratio at period_end: a percentage when as_multiple is false (24.53 means 24.53%) and a plain multiple when it is true (1.4234 means 1.42x). Null when either input was not reported for that period or the denominator is zero.","title":"Value"},"as_multiple":{"description":"True when value is a bare multiple (debt_to_equity), false when value is a percentage. Read it before scaling the number.","title":"As Multiple","type":"boolean"},"numerator_metric":{"description":"Metric key used as the numerator, e.g. net_income (see /v1/sec/xbrl/metrics).","title":"Numerator Metric","type":"string"},"denominator_metric":{"description":"Metric key used as the denominator, e.g. revenue or stockholders_equity.","title":"Denominator Metric","type":"string"},"numerator_value":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"The numerator as filed for period_end, in the metric's reported unit (USD for these metrics). Null when the issuer did not report it for that period.","title":"Numerator Value"},"denominator_value":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"The denominator as filed for period_end, in the metric's reported unit. Null when the issuer did not report it for that period.","title":"Denominator Value"},"definition":{"description":"Plain-English statement of the ratio in accounting terms, e.g. 'Net income / revenue'.","title":"Definition","type":"string"}},"required":["ratio","value","as_multiple","numerator_metric","denominator_metric","numerator_value","denominator_value","definition"],"title":"RatioRow","type":"object"}},"properties":{"as_of":{"description":"ISO-8601 UTC timestamp (milliseconds, Z-suffixed) at which this response was built.","title":"As Of","type":"string"},"cik":{"description":"SEC Central Index Key of the issuer these ratios describe, 10 digits zero-padded.","title":"Cik","type":"string"},"period_end":{"description":"The single fiscal year end, YYYY-MM-DD, that every ratio in this response is computed on: the issuer's latest annual period end with reported revenue, or reported total assets for balance-sheet-only filers.","title":"Period End","type":"string"},"period_source":{"default":"latest fiscal year end reported on Form 10-K for every input used","description":"Fixed statement of which filing period period_end is taken from.","title":"Period Source","type":"string"},"ratios":{"description":"One row per ratio in the catalog's fixed order (margins, returns, leverage, then intensity ratios). The full set is always returned; unavailable ones carry a null value.","items":{"$ref":"#/$defs/RatioRow"},"title":"Ratios","type":"array"},"inputs_missing":{"description":"Metric keys with no annual 10-K value for this issuer, so every ratio depending on them is null.","items":{"type":"string"},"title":"Inputs Missing","type":"array"},"method":{"default":"sec_xbrl_ratios_rules_v1","description":"Identifier and version of the computation used. A change to how the ratios are derived gets a new identifier, so callers can detect it.","title":"Method","type":"string"},"note":{"default":"Every ratio is computed from values sharing one fiscal period end, so a ratio is null when either input was not reported for that period rather than mixed across years. Percentages are percent, debt_to_equity is a multiple. Figures as filed.","description":"Fixed caveat on period alignment, the units of each ratio, and why a value can be null.","title":"Note","type":"string"},"disclaimer":{"default":"Derived from public SEC EDGAR filings; not investment advice.","description":"Fixed notice that the data is derived from public SEC filings and is not investment advice.","title":"Disclaimer","type":"string"}},"required":["as_of","cik","period_end","ratios","inputs_missing"],"title":"RatiosOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"trials_pipeline","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/trials/pipeline","method":"GET","price_usd":0.0,"description":"The distribution behind a condition, sponsor or intervention: trials and enrollment by phase, by recruitment status and by study type, the leading sponsors, and how many trials are actively enrolling. Computed over a sample of matching trials, so it is the shape of the pipeline rather than a registry census. Free.","buyer_use_case":"An agent assessing a therapeutic area or a sponsor's portfolio wants the phase and status distribution, not a list it has to tally itself.","when_to_use":"You want the distribution across a therapeutic area or a sponsor's portfolio.","when_not_to_use":"Individual trial records — /v1/trials/search.","avoids":["registry paging","phase and status tallying","enrollment summing"],"input_schema":{"additionalProperties":false,"properties":{"condition":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Condition or disease term defining the pipeline, e.g. glioblastoma. Give at least one of condition, sponsor, intervention.","title":"Condition"},"sponsor":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Lead-sponsor name term defining the pipeline, e.g. Novartis. Give at least one of condition, sponsor, intervention.","title":"Sponsor"},"intervention":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Intervention, drug or device term defining the pipeline, e.g. mRNA vaccine. Give at least one of condition, sponsor, intervention.","title":"Intervention"},"sample":{"default":200,"description":"How many matching trials to pull before aggregating; a larger sample is a more complete picture and a slower call. Default 200.","maximum":500,"minimum":20,"title":"Sample","type":"integer"}},"title":"PipelineIn","type":"object"},"output_schema":{"$defs":{"Bucket":{"properties":{"key":{"description":"The grouped value; its meaning depends on the list it appears in — a phase, an overall status, a study type or a lead-sponsor name. Trials missing that field are grouped under NA (phase), UNKNOWN (status, study type) or Unknown (sponsor).","title":"Key","type":"string"},"trials":{"description":"How many trials in the analyzed sample fall in this bucket. A count of registered studies, not of participants or sites.","title":"Trials","type":"integer"},"enrollment_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Sum of registered enrollment across the trials in this bucket, in participants. Null when none of them registered an enrollment count; trials that registered none contribute nothing to the sum.","title":"Enrollment Total"}},"required":["key","trials","enrollment_total"],"title":"Bucket","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp when this response was computed, ISO-8601 with milliseconds and a Z suffix, e.g. 2026-09-03T16:00:00.000Z.","title":"As Of","type":"string"},"query":{"additionalProperties":{"type":"string"},"description":"The registry search actually run, as ClinicalTrials.gov parameter names mapped to their values: query.cond, query.spons, query.intr. Only the filters you supplied appear.","title":"Query","type":"object"},"trials_analyzed":{"description":"Number of trials the distributions were computed over — the sample retrieved, capped by the requested sample size, not the registry-wide match count.","title":"Trials Analyzed","type":"integer"},"by_phase":{"description":"One element per registered phase (EARLY_PHASE1, PHASE1 … PHASE4, NA), ordered by trial count descending. A trial spanning PHASE1 and PHASE2 is counted in both, so these trial counts can sum to more than trials_analyzed.","items":{"$ref":"#/$defs/Bucket"},"title":"By Phase","type":"array"},"by_status":{"description":"One element per overall recruitment status (RECRUITING, COMPLETED, TERMINATED, …), ordered by trial count descending. Each trial appears exactly once.","items":{"$ref":"#/$defs/Bucket"},"title":"By Status","type":"array"},"by_study_type":{"description":"One element per study type (INTERVENTIONAL, OBSERVATIONAL, EXPANDED_ACCESS), ordered by trial count descending. Each trial appears exactly once.","items":{"$ref":"#/$defs/Bucket"},"title":"By Study Type","type":"array"},"top_sponsors":{"description":"Lead sponsors in the sample, ordered by trial count descending and capped at 15. Names are as registered and unnormalized, so one company may split across spellings.","items":{"$ref":"#/$defs/Bucket"},"title":"Top Sponsors","type":"array"},"active_trials":{"description":"Trials in the sample whose status is RECRUITING, NOT_YET_RECRUITING, ENROLLING_BY_INVITATION or ACTIVE_NOT_RECRUITING.","title":"Active Trials","type":"integer"},"total_enrollment":{"description":"Sum of registered enrollment across the analyzed sample, in participants, counting each trial once. Trials with no registered count contribute 0.","title":"Total Enrollment","type":"integer"},"note":{"default":"Distributions are computed over the sample of trials matching the query (capped by `sample`), newest registry order — a shape of the pipeline, not a registry census. Enrollment is the registered target or actual count as submitted.","description":"Fixed reading guidance: the distributions describe a capped sample rather than every registered trial, and enrollment is whatever the sponsor registered.","title":"Note","type":"string"},"source":{"default":"Source: National Library of Medicine (ClinicalTrials.gov)","description":"Attribution for the underlying data: the ClinicalTrials.gov registry, a work of the US National Library of Medicine.","title":"Source","type":"string"},"disclaimer":{"default":"Courtesy of the National Library of Medicine (ClinicalTrials.gov), retrieved at as_of; distributions and totals are computed by AnswerPool. Registry entries are submitted by sponsors and reflect what was registered, not verified outcomes. Not medical advice.","description":"Required NLM courtesy notice plus the limits of the data: entries are sponsor-submitted registrations rather than verified outcomes, totals are AnswerPool's, and none of it is medical advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","trials_analyzed","by_phase","by_status","by_study_type","top_sponsors","active_trials","total_enrollment"],"title":"PipelineOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"trials_search","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/trials/search","method":"GET","price_usd":0.0,"description":"Trials matching a condition, sponsor, intervention or recruitment status, normalized to one flat shape — NCT id, status, phases, study type, lead sponsor, enrollment, start and completion dates, conditions — instead of the registry's nested protocol modules. Factual registration fields only. Free.","buyer_use_case":"An agent researching a disease or a company needs the trials as flat records it can reason over, not nested protocol JSON.","when_to_use":"You need the trials themselves in a flat, reasoned-over shape.","when_not_to_use":"The pipeline shape across many trials — /v1/trials/pipeline.","avoids":["protocolSection nesting","per-module field digging"],"input_schema":{"additionalProperties":false,"properties":{"condition":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Condition or disease term, e.g. glioblastoma, sent to the registry as query.cond. At least one filter is required.","title":"Condition"},"sponsor":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Lead-sponsor name term, e.g. Pfizer, sent to the registry as query.spons. At least one filter is required.","title":"Sponsor"},"intervention":{"anyOf":[{"maxLength":80,"minLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Intervention, drug or device term, e.g. pembrolizumab, sent to the registry as query.intr. At least one filter is required.","title":"Intervention"},"status":{"anyOf":[{"pattern":"^(RECRUITING|NOT_YET_RECRUITING|ACTIVE_NOT_RECRUITING|COMPLETED|TERMINATED|WITHDRAWN|SUSPENDED|ENROLLING_BY_INVITATION|UNKNOWN)$","type":"string"},{"type":"null"}],"default":null,"description":"Exact overall status: RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, SUSPENDED, ENROLLING_BY_INVITATION or UNKNOWN.","title":"Status"},"limit":{"default":20,"description":"Maximum trials returned, in the order ClinicalTrials.gov returns them. Default 20.","maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"TrialsIn","type":"object"},"output_schema":{"$defs":{"Trial":{"properties":{"nct_id":{"description":"ClinicalTrials.gov registry identifier in the form NCT########, e.g. NCT06131398. Empty string only if the record carried no id.","title":"Nct Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The sponsor-submitted brief title that identifies the study. Null when the record carries none; the longer descriptive text is never redistributed here.","title":"Title"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registered overall recruitment status, e.g. RECRUITING, NOT_YET_RECRUITING, ENROLLING_BY_INVITATION, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, SUSPENDED, WITHDRAWN or UNKNOWN. Null when the record carries no status.","title":"Status"},"phases":{"description":"Registered trial phases, e.g. EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4 or NA. A trial may span several (PHASE1 and PHASE2); the list is empty for observational studies and others with no registered phase.","items":{"type":"string"},"title":"Phases","type":"array"},"study_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registered study type: INTERVENTIONAL, OBSERVATIONAL or EXPANDED_ACCESS. Null when the record carries no type.","title":"Study Type"},"lead_sponsor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the lead sponsor organisation as registered, unnormalized — the same company may appear under several spellings. Null when absent.","title":"Lead Sponsor"},"enrollment":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Registered participant count — the target before a study reports, the actual count after — as submitted by the sponsor. Null when no count is registered.","title":"Enrollment"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registered study start date as the registry states it: YYYY-MM-DD, or YYYY-MM when only month precision was submitted. Null when no start date is registered.","title":"Start Date"},"completion_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Registered completion date, actual or anticipated, as YYYY-MM-DD or YYYY-MM. Null when none is registered; a future date is a projection, not an outcome.","title":"Completion Date"},"conditions":{"description":"Conditions or diseases the study targets, as free-text terms submitted by the sponsor rather than a controlled vocabulary. May be empty.","items":{"type":"string"},"title":"Conditions","type":"array"},"url":{"description":"Public ClinicalTrials.gov page for the study, https://clinicaltrials.gov/study/<nct_id>. Empty string when nct_id is missing.","title":"Url","type":"string"}},"required":["nct_id","title","status","phases","study_type","lead_sponsor","enrollment","start_date","completion_date","conditions","url"],"title":"Trial","type":"object"}},"properties":{"as_of":{"description":"UTC timestamp when this response was computed, ISO-8601 with milliseconds and a Z suffix, e.g. 2026-09-03T16:00:00.000Z.","title":"As Of","type":"string"},"query":{"additionalProperties":{"type":"string"},"description":"The registry search actually run, as ClinicalTrials.gov parameter names mapped to their values: query.cond, query.spons, query.intr, filter.overallStatus. Only the filters you supplied appear.","title":"Query","type":"object"},"count":{"description":"Number of trials in the trials array — at most the requested limit, not the total number of registry records matching the query.","title":"Count","type":"integer"},"trials":{"description":"One element per matching study, in the order ClinicalTrials.gov returns them for the query — no sort is requested, so do not read it as newest-first.","items":{"$ref":"#/$defs/Trial"},"title":"Trials","type":"array"},"source":{"default":"Source: National Library of Medicine (ClinicalTrials.gov)","description":"Attribution for the underlying data: the ClinicalTrials.gov registry, a work of the US National Library of Medicine.","title":"Source","type":"string"},"disclaimer":{"default":"Courtesy of the National Library of Medicine (ClinicalTrials.gov), retrieved at as_of; distributions and totals are computed by AnswerPool. Registry entries are submitted by sponsors and reflect what was registered, not verified outcomes. Not medical advice.","description":"Required NLM courtesy notice plus the limits of the data: entries are sponsor-submitted registrations rather than verified outcomes, totals are AnswerPool's, and none of it is medical advice.","title":"Disclaimer","type":"string"}},"required":["as_of","query","count","trials"],"title":"TrialsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"weather_alerts","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/weather/alerts","method":"GET","price_usd":0.0,"description":"Active NWS alerts for a state or nationwide, with the counts every wrapper makes you compute yourself: how many alerts by event type, by severity and by urgency, and how many are Severe or Extreme. One system produces many zone alerts, so counts measure alert volume rather than storms. Free.","buyer_use_case":"An agent assessing where severe weather is active wants the distribution, not a GeoJSON feed it has to page and tally.","when_to_use":"You need what is active now and how it breaks down by type or severity.","when_not_to_use":"A point forecast — /v1/weather/forecast.","avoids":["paging alert GeoJSON","hand-tallying event types","missing the severity split"],"input_schema":{"additionalProperties":false,"properties":{"area":{"anyOf":[{"pattern":"^[A-Z]{2}$","type":"string"},{"type":"null"}],"default":null,"description":"Two-letter state/territory/marine area, e.g. CA. Omit for nationwide.","title":"Area"},"severity":{"anyOf":[{"pattern":"^(Extreme|Severe|Moderate|Minor|Unknown)$","type":"string"},{"type":"null"}],"default":null,"description":"Exact NWS severity to filter on: Extreme, Severe, Moderate, Minor or Unknown. Omit for all severities.","title":"Severity"},"limit":{"default":25,"description":"Maximum individual alerts listed; the by_event, by_severity and by_urgency counts always cover every matching active alert. Default 25.","maximum":200,"minimum":1,"title":"Limit","type":"integer"}},"title":"AlertsIn","type":"object"},"output_schema":{"$defs":{"AlertGroup":{"properties":{"key":{"description":"The grouped value: an NWS event name, a severity (Extreme, Severe, Moderate, Minor, Unknown) or an urgency (Immediate, Expected, Future, Past, Unknown), depending on which list this entry appears in. Unknown when NWS left it blank.","title":"Key","type":"string"},"count":{"description":"Number of active alerts matching the request that carry this key. Counts cover every matching alert, not only the ones listed in `alerts`.","title":"Count","type":"integer"}},"required":["key","count"],"title":"AlertGroup","type":"object"},"AlertItem":{"properties":{"event":{"description":"NWS event name for this alert, e.g. Wind Advisory, Tornado Warning, Flood Watch; Unknown when NWS supplied none.","title":"Event","type":"string"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"NWS severity of the alert: Extreme, Severe, Moderate, Minor or Unknown; null if the alert carries no severity.","title":"Severity"},"urgency":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"NWS urgency of the responsive action: Immediate, Expected, Future, Past or Unknown; null if the alert carries no urgency.","title":"Urgency"},"certainty":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"NWS confidence that the event will occur: Observed, Likely, Possible, Unlikely or Unknown; null if the alert carries no certainty.","title":"Certainty"},"area":{"description":"Human-readable list of the counties or zones the alert covers, as issued by NWS (names separated by semicolons), truncated to 300 characters.","title":"Area","type":"string"},"onset":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 timestamp with UTC offset for when the hazardous conditions are expected to begin; null when NWS gives no onset (common for already-active alerts).","title":"Onset"},"ends":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 timestamp with UTC offset for when the hazardous conditions are expected to end; null when NWS gives no end time. This is not the message expiry time.","title":"Ends"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the issuing NWS office, e.g. 'NWS Los Angeles CA'; null when NWS omits it.","title":"Sender"}},"required":["event","severity","urgency","certainty","area","onset","ends","sender"],"title":"AlertItem","type":"object"}},"properties":{"as_of":{"description":"UTC ISO-8601 timestamp with milliseconds and a Z suffix, marking when this response was produced; all counts describe the active-alert set at that moment.","title":"As Of","type":"string"},"area":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Uppercased two-letter area the request was filtered to, e.g. CA; null when the request covered the whole country.","title":"Area"},"active_alerts":{"description":"Total active alerts matching the requested area and severity filters. This is the full matched set, which can exceed the number of entries in `alerts`.","title":"Active Alerts","type":"integer"},"by_event":{"description":"One entry per distinct NWS event name in the matched set, ordered by count descending (ties keep first-seen order).","items":{"$ref":"#/$defs/AlertGroup"},"title":"By Event","type":"array"},"by_severity":{"description":"One entry per distinct severity level in the matched set, ordered by count descending (ties keep first-seen order), not by severity rank.","items":{"$ref":"#/$defs/AlertGroup"},"title":"By Severity","type":"array"},"by_urgency":{"description":"One entry per distinct urgency level in the matched set, ordered by count descending (ties keep first-seen order), not by urgency rank.","items":{"$ref":"#/$defs/AlertGroup"},"title":"By Urgency","type":"array"},"severe_or_extreme":{"description":"Count of alerts in the matched set whose severity is Severe or Extreme; a quick read of how much of the activity is high-end.","title":"Severe Or Extreme","type":"integer"},"alerts":{"description":"Individual alerts, one entry per active NWS alert, in the order NWS returns them for the query (not re-sorted here) and truncated to the requested limit.","items":{"$ref":"#/$defs/AlertItem"},"title":"Alerts","type":"array"},"note":{"default":"Counts are computed over the active-alert set at retrieval time. One weather system produces many alerts across zones, so counts measure alert volume, not storm count.","description":"Fixed note on how to read the counts; identical on every response and not derived from the requested area.","title":"Note","type":"string"},"source":{"default":"NOAA National Weather Service (api.weather.gov)","description":"Upstream source of the alerts: the NOAA National Weather Service API.","title":"Source","type":"string"},"disclaimer":{"default":"Source data from the NOAA National Weather Service (public domain), retrieved at as_of; counts and groupings are computed by AnswerPool and are NOT official NWS products. Conditions change continuously — for life-safety decisions use the live NWS product at weather.gov.","description":"Fixed rights and life-safety notice: NWS material is public domain, the counts here are not official NWS products, and life-safety use needs weather.gov.","title":"Disclaimer","type":"string"}},"required":["as_of","area","active_alerts","by_event","by_severity","by_urgency","severe_or_extreme","alerts"],"title":"AlertsOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"weather_forecast","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/weather/forecast","method":"GET","price_usd":0.0,"description":"Point forecast in one call — coordinates resolved to the grid for you — with the period series plus computed aggregates: the high and low across the window, the maximum precipitation probability, and how many periods are at or above 50 percent. Free.","buyer_use_case":"An agent planning around weather wants the summary numbers, not a two-step grid lookup followed by its own min/max pass over periods.","when_to_use":"You need a point forecast plus its summary numbers.","when_not_to_use":"Active warnings — /v1/weather/alerts.","avoids":["the NWS points-then-gridpoints two-step","min/max passes over forecast periods"],"input_schema":{"additionalProperties":false,"properties":{"latitude":{"description":"Latitude in decimal degrees, WGS84, e.g. 38.8894; rounded to 4 decimals because NWS rejects more precision. US coverage only.","maximum":90,"minimum":-90,"title":"Latitude","type":"number"},"longitude":{"description":"Longitude in decimal degrees, WGS84, e.g. -77.0352; rounded to 4 decimals because NWS rejects more precision. US coverage only.","maximum":180,"minimum":-180,"title":"Longitude","type":"number"},"periods":{"default":8,"description":"How many forecast periods to return and aggregate over; NWS periods are day and night halves, so 8 is about four days. Default 8.","maximum":14,"minimum":1,"title":"Periods","type":"integer"}},"required":["latitude","longitude"],"title":"ForecastIn","type":"object"},"output_schema":{"$defs":{"ForecastPeriod":{"properties":{"name":{"description":"NWS label for the period, e.g. Today, This Afternoon, Tonight, Overnight or a weekday such as Tuesday / Tuesday Night; empty string if NWS supplied none.","title":"Name","type":"string"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 timestamp with UTC offset for the start of the period, expressed in the forecast location's local time; null when NWS omits it.","title":"Start"},"is_daytime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True for a daytime period, false for an overnight period; null when NWS omits it. Daytime periods carry the high, overnight periods the low.","title":"Is Daytime"},"temperature_f":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Forecast temperature for the period in degrees Fahrenheit, as issued by the forecast office; null when NWS supplied no numeric temperature.","title":"Temperature F"},"wind":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Wind as issued by NWS: a speed or speed range in miles per hour followed by the cardinal direction it blows from, e.g. '5 to 10 mph SW'. Null if neither is given.","title":"Wind"},"precipitation_probability_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Chance of measurable precipitation during the period, in percent from 0 to 100; null when NWS publishes no probability for that period.","title":"Precipitation Probability Pct"},"short_forecast":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"NWS one-line sky/weather phrase for the period, e.g. 'Chance Showers And Thunderstorms' or 'Mostly Sunny'; null when NWS omits it.","title":"Short Forecast"}},"required":["name","start","is_daytime","temperature_f","wind","precipitation_probability_pct","short_forecast"],"title":"ForecastPeriod","type":"object"}},"properties":{"as_of":{"description":"UTC ISO-8601 timestamp with milliseconds and a Z suffix, marking when this response was produced from the NWS forecast behind it.","title":"As Of","type":"string"},"grid":{"description":"The NWS grid cell the coordinates resolved to, formatted office/x,y, e.g. LWX/97,71. This is the cell the forecast was issued for.","title":"Grid","type":"string"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Nearest named place NWS associates with the requested point, which is not necessarily the jurisdiction containing it; null outside US coverage.","title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter state or territory code of that nearest named place, e.g. DC; null outside US coverage.","title":"State"},"periods_returned":{"description":"Number of forecast periods in `periods`, which is the window every aggregate below is computed over. Can be fewer than requested if NWS issued fewer.","title":"Periods Returned","type":"integer"},"high_f":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Highest daytime temperature in degrees Fahrenheit across the returned window, falling back to all periods if the window has no daytime period; null if none carry a temperature.","title":"High F"},"low_f":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Lowest overnight temperature in degrees Fahrenheit across the returned window, falling back to all periods if the window has no overnight period; null if none carry a temperature.","title":"Low F"},"max_precip_probability_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Highest precipitation probability, in percent from 0 to 100, over the returned periods; null when no period in the window publishes a probability.","title":"Max Precip Probability Pct"},"periods_with_precip_50pct_plus":{"description":"How many of the returned periods have a precipitation probability of 50 percent or more. Periods without a published probability are not counted.","title":"Periods With Precip 50Pct Plus","type":"integer"},"periods":{"description":"One entry per forecast period, in chronological order as issued by NWS starting with the current period; day and night are separate periods.","items":{"$ref":"#/$defs/ForecastPeriod"},"title":"Periods","type":"array"},"note":{"default":"Highs, lows and precipitation aggregates are computed by AnswerPool across the returned periods; the per-period values are as issued by the forecast office.","description":"Fixed note separating the aggregates computed here from the per-period values issued by NWS; identical on every response.","title":"Note","type":"string"},"source":{"default":"NOAA National Weather Service (api.weather.gov)","description":"Upstream source of the forecast: the NOAA National Weather Service API.","title":"Source","type":"string"},"disclaimer":{"default":"Source data from the NOAA National Weather Service (public domain), retrieved at as_of; counts and groupings are computed by AnswerPool and are NOT official NWS products. Conditions change continuously — for life-safety decisions use the live NWS product at weather.gov.","description":"Fixed rights and life-safety notice: NWS material is public domain, the aggregates here are not official NWS products, and life-safety use needs weather.gov.","title":"Disclaimer","type":"string"}},"required":["as_of","grid","city","state","periods_returned","high_f","low_f","max_precip_probability_pct","periods_with_precip_50pct_plus","periods"],"title":"ForecastOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"},{"id":"weather_point","version":"0.1.0","status":"EXPERIMENTAL","endpoint":"/v1/weather/point","method":"GET","price_usd":0.0,"description":"NWS keys every forecast by a forecast-office grid, not by latitude and longitude, so a coordinate must be resolved first. Returns the grid id and cell, the city, state and timezone, and the forecast, hourly and observation-station URLs. Free.","buyer_use_case":"An agent holding coordinates needs the NWS identifiers before any other weather call.","when_to_use":"You have coordinates and need NWS identifiers or the city/timezone for them.","when_not_to_use":"The forecast itself — /v1/weather/forecast does both steps in one call.","avoids":["two-step NWS grid lookup","guessing forecast office codes"],"input_schema":{"additionalProperties":false,"properties":{"latitude":{"description":"Latitude in decimal degrees, WGS84, e.g. 38.8894; rounded to 4 decimals because NWS rejects more precision. US coverage only.","maximum":90,"minimum":-90,"title":"Latitude","type":"number"},"longitude":{"description":"Longitude in decimal degrees, WGS84, e.g. -77.0352; rounded to 4 decimals because NWS rejects more precision. US coverage only.","maximum":180,"minimum":-180,"title":"Longitude","type":"number"}},"required":["latitude","longitude"],"title":"PointIn","type":"object"},"output_schema":{"properties":{"as_of":{"description":"UTC ISO-8601 timestamp with milliseconds and a Z suffix, marking when this response was produced from the NWS point data behind it.","title":"As Of","type":"string"},"latitude":{"description":"The requested latitude in decimal degrees (WGS84), echoed back; NWS itself is queried at 4-decimal precision.","title":"Latitude","type":"number"},"longitude":{"description":"The requested longitude in decimal degrees (WGS84), echoed back; NWS itself is queried at 4-decimal precision.","title":"Longitude","type":"number"},"grid_id":{"description":"Identifier of the NWS forecast office covering this point, a short letter code such as LWX or MTR; empty string if NWS returned no grid for the coordinate.","title":"Grid Id","type":"string"},"grid_x":{"description":"Column index of the forecast office's grid cell containing the point; 0 when NWS returned no grid. Use with grid_id and grid_y for /gridpoints calls.","title":"Grid X","type":"integer"},"grid_y":{"description":"Row index of the forecast office's grid cell containing the point; 0 when NWS returned no grid.","title":"Grid Y","type":"integer"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Nearest named place NWS associates with the point (its relative location), which is not necessarily the jurisdiction containing it; null outside US coverage.","title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Two-letter state or territory code of that nearest named place, e.g. DC; null outside US coverage.","title":"State"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA time zone name for the point, e.g. America/New_York; null when NWS omits it. Forecast timestamps for this grid carry this zone's UTC offset.","title":"Timezone"},"forecast_url":{"description":"Absolute api.weather.gov URL for this grid cell's day/night period forecast; empty string when the point falls outside NWS coverage.","title":"Forecast Url","type":"string"},"hourly_forecast_url":{"description":"Absolute api.weather.gov URL for this grid cell's hourly forecast; empty string when the point falls outside NWS coverage.","title":"Hourly Forecast Url","type":"string"},"observation_stations_url":{"description":"Absolute api.weather.gov URL listing the observation stations NWS associates with this grid cell; empty string when the point falls outside NWS coverage.","title":"Observation Stations Url","type":"string"},"forecast_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Absolute api.weather.gov URL of the public forecast zone containing the point, ending in the zone code (e.g. .../zones/forecast/DCZ001); null if NWS omits it.","title":"Forecast Zone"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Absolute api.weather.gov URL of the county zone containing the point, ending in the county zone code (e.g. .../zones/county/DCC001); null if NWS omits it.","title":"County"},"note":{"default":"NWS keys forecasts by office grid, not by coordinates; this is the resolution step every other weather call needs first.","description":"Fixed explanatory note on why this resolution step exists; identical on every response and not derived from the requested point.","title":"Note","type":"string"},"source":{"default":"NOAA National Weather Service (api.weather.gov)","description":"Upstream source of these identifiers: the NOAA National Weather Service API.","title":"Source","type":"string"},"disclaimer":{"default":"Source data from the NOAA National Weather Service (public domain), retrieved at as_of; counts and groupings are computed by AnswerPool and are NOT official NWS products. Conditions change continuously — for life-safety decisions use the live NWS product at weather.gov.","description":"Fixed rights and life-safety notice: NWS material is public domain, values computed here are not official NWS products, and life-safety use needs weather.gov.","title":"Disclaimer","type":"string"}},"required":["as_of","latitude","longitude","grid_id","grid_x","grid_y","city","state","timezone","forecast_url","hourly_forecast_url","observation_stations_url","forecast_zone","county"],"title":"PointOutput","type":"object"},"cache_ttl_days":1,"methodology_version":"0.1.0"}]}