{"openapi":"3.1.0","info":{"title":"Signals Infra v1 (alpha)","description":"**ALPHA.** Schema names and types are stable. Extraction quality is improving weekly. Breaking changes get 90 days notice via the `Sunset` and `Deprecation` response headers (RFC 8594) and a changelog entry. Auth: send `Authorization: Bearer sk_live_...`. Free tier 100 req/day, no commercial use. See docs.signals.ai/infra for the upgrade path.","version":"0.1.0"},"paths":{"/api/disclosed/v1/company-kpis/index":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Tickers with first-party KPI v2 coverage (for sitemap/SEO)","description":"Distinct tickers that have at least one multi-quarter verified KPI\nseries. Used by the SEO sitemap build to emit /symbol/:t/kpis only for\ncovered companies (coverage is uneven across the universe). Declared\nBEFORE /company-kpis/{ticker} so 'index' is not captured as a ticker.\n\nMirrors the serving rule in ``list_company_kpis``: a metric renders only\nwith >=3 recent quarterly points, and while the call-derived holdback\n(``kpi2.read.HIDE_CALL_DERIVED``) is on, transcript observations don't\ncount toward that. The edge-SSR page still computes noindex from the\nlive metric_count as the backstop.","operationId":"company_kpis_index_api_disclosed_v1_company_kpis_index_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Company Kpis Index Api Disclosed V1 Company Kpis Index Get"}}}}},"security":[{"InfraApiKey":[]}]}},"/api/disclosed/v1/company-kpis/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Company-native KPI v2 series (multi-source, with provenance)","description":"KPI v2 read surface for the redesigned company Signals tab.\n\nEach metric is the company's OWN label (no us-gaap concepts, no taxonomy\ncoverage). Each is a quarterly time series whose points carry the sources\nthat reported the number, the verbatim quote, a source-appropriate link\n(SEC EDGAR for filings, the call/deck otherwise), and whether 2+ sources\nagree. Reads disclosed.kpi2 tables (company_kpi_metrics/observations);\nunverified observations are held back. See specs/kpi_v2_migration_and_deprecation.md.","operationId":"list_company_kpis_api_disclosed_v1_company_kpis__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Company Kpis Api Disclosed V1 Company Kpis  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/filings/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1"],"summary":"List Filings","operationId":"list_filings_api_disclosed_v1_filings__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FilingOut"},"title":"Response List Filings Api Disclosed V1 Filings  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/transcripts/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1"],"summary":"List Transcripts","operationId":"list_transcripts_api_disclosed_v1_transcripts__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptOut"},"title":"Response List Transcripts Api Disclosed V1 Transcripts  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/ir-documents/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1"],"summary":"List Ir Documents","operationId":"list_ir_documents_api_disclosed_v1_ir_documents__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IRDocOut"},"title":"Response List Ir Documents Api Disclosed V1 Ir Documents  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/extracted-facts/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1"],"summary":"List Facts","operationId":"list_facts_api_disclosed_v1_extracted_facts__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FactOut"},"title":"Response List Facts Api Disclosed V1 Extracted Facts  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/kpi/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Current KPI facts for a ticker (fact_contract_v2)","description":"Lists CURRENT KPI facts for a ticker — emits fact_contract_v2\nconsumed by `signals-app/frontend/src/api/kpi.ts::useKpiFacts`.\n\n\"Current\" = `supersedes IS NULL` (the latest version after the\nrestatement chain has been reconciled). Older versions of the\nsame logical fact remain queryable via /v1/facts/{fact_id} but\naren't returned here.\n\nQuery params (mirrors frontend hook signature):\n  - canonical: filter to one KPI name\n  - calendar_period: filter to one period (e.g. \"2026-Q1\")\n  - tier: 'default' returns verified+dimensioned+derived;\n          'all' adds extracted (gated by API key entitlement upstream)\n  - published_only: defaults True (publication gate filter)\n  - include: 'qa' adds the _qa block with extractor confidence\n             and auditor status (internal-only normally)","operationId":"list_kpi_facts_api_disclosed_v1_kpi__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"canonical","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Canonical"}},{"name":"calendar_period","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Calendar Period"}},{"name":"tier","in":"query","required":false,"schema":{"type":"string","maxLength":16,"default":"default","title":"Tier"}},{"name":"published_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Published Only"}},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Include"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Kpi Facts Api Disclosed V1 Kpi  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/coverage/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"KPI coverage for a ticker (taxonomy + per-tier counts)","description":"Drives the per-company KPI page: expected canonicals from the\nticker's L2 templates + per-tier counts of what's actually in kpi_facts.\n\nResponse shape:\n  {\n    \"ticker\": \"AAPL\",\n    \"templates\": [\n      {\"template_slug\": \"consumer_hardware\", \"template_name\": \"...\",\n       \"description\": \"...\", \"kpi_count\": 39,\n       \"kpis\": [{\"canonical_name\": \"...\", \"display_name\": \"...\",\n                 \"unit\": \"...\", \"tier\": \"headline\", \"category\": \"...\",\n                 \"decimal_places\": 0, \"higher_is_better\": true}, ...]\n      }, ...],\n    \"expected_canonicals\": [\"...\", ...],   // union across templates\n    \"counts\": {\n      \"expected\": 74,\n      \"by_tier\": {\"verified\": 12, \"dimensioned\": 3, \"derived\": 4,\n                  \"extracted\": 6, \"extracted_low_confidence\": 1,\n                  \"missing\": 48}\n    }\n  }\n\nThe `by_tier.missing` count = expected_canonicals - canonicals we\nactually returned a published fact for. Drives the \"12 of 74 disclosed\"\nUX on the company page and the per-tier badge row.","operationId":"kpi_coverage_api_disclosed_v1_coverage__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Kpi Coverage Api Disclosed V1 Coverage  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/canonical/{ticker}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Canonical facts for a ticker (Arelle-backed)","description":"Lists canonical_fact rows for `ticker` — Arelle-backed,\ntier-classified, calc-linkbase-evidenced.\n\nDefault response includes all tiers (verified / dimensioned /\nderived / extracted). Entitlement gating on tier may downsample\nfurther once Phase E wires the Infra surface.","operationId":"list_canonical_facts_api_disclosed_v1_canonical__ticker__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"canonical","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Canonical"}},{"name":"period_end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"description":"YYYY-MM-DD","title":"Period End"},"description":"YYYY-MM-DD"},{"name":"only_axis","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"filter to one axis local name, e.g. 'ProductOrServiceAxis'","title":"Only Axis"},"description":"filter to one axis local name, e.g. 'ProductOrServiceAxis'"},{"name":"only_consolidated","in":"query","required":false,"schema":{"type":"boolean","description":"exclude dimensional/segment rows","default":false,"title":"Only Consolidated"},"description":"exclude dimensional/segment rows"},{"name":"tier","in":"query","required":false,"schema":{"type":"string","maxLength":16,"default":"default","title":"Tier"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Canonical Facts Api Disclosed V1 Canonical  Ticker  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/canonical/{ticker}/{canonical_name}/calc":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Calc-linkbase children for one canonical fact (verified-tier explainer)","description":"Returns the depth-1 calc-linkbase children (name + weight +\nvalue) for a verified canonical_fact row. Drives the\nunified-matrix inline math tooltip.\n\nScoped to the SAME filing the canonical_fact came from\n(relationship_set.document_id = report.report_schema_doc_id).\nOnly the best link_role is returned — the role whose summed\nchildren most closely match the actual value (matches the calc\ngate semantics from migration 0065).","operationId":"canonical_calc_tree_api_disclosed_v1_canonical__ticker___canonical_name__calc_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"canonical_name","in":"path","required":true,"schema":{"type":"string","title":"Canonical Name"}},{"name":"period_end","in":"query","required":true,"schema":{"type":"string","maxLength":16,"description":"YYYY-MM-DD; the fact's period_end","title":"Period End"},"description":"YYYY-MM-DD; the fact's period_end"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Canonical Calc Tree Api Disclosed V1 Canonical  Ticker   Canonical Name  Calc Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/canonical/{ticker}/{canonical_name}/peers":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Peer time series for one canonical (metric detail page)","description":"Returns the peer comparison time series for one canonical.\n\nPeer set comes from public.stock_peers (curated, joined via the\nsymbols table). For each peer we pull the same canonical_name\ntime series from canonical_fact and align on period_end.","operationId":"canonical_peers_api_disclosed_v1_canonical__ticker___canonical_name__peers_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"canonical_name","in":"path","required":true,"schema":{"type":"string","title":"Canonical Name"}},{"name":"max_peers","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"default":5,"title":"Max Peers"}},{"name":"max_periods","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":8,"title":"Max Periods"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Canonical Peers Api Disclosed V1 Canonical  Ticker   Canonical Name  Peers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/_meta/allowlist":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1"],"summary":"Get Allowlist","operationId":"get_allowlist_api_disclosed_v1__meta_allowlist_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Allowlist Api Disclosed V1  Meta Allowlist Get"}}}}},"security":[{"InfraApiKey":[]}]}},"/api/disclosed/v1/metrics/{ticker}/concepts":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Pickable first-party XBRL concepts for a company","description":"Concepts (native Arelle) a user can pin to track for this company.\n\nRanked by fact frequency. Display name = local concept name for now; a\nlabel-linkbase enrichment can replace it later. No canonical map needed\nfor single-company picking.","operationId":"list_metric_concepts_api_disclosed_v1_metrics__ticker__concepts_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":300,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MetricConceptOut"},"title":"Response List Metric Concepts Api Disclosed V1 Metrics  Ticker  Concepts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/metrics/{ticker}/series":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","KPI"],"summary":"Clean time series for one pinned concept (sparkline)","description":"Deterministic, deduped, duration-selected series for ONE pinned\nconcept. This is the firing-safe path: the concept is pinned, never\nre-mapped. Restated periods are flagged, not silently overwritten.","operationId":"metric_series_api_disclosed_v1_metrics__ticker__series_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"concept","in":"query","required":true,"schema":{"type":"string","maxLength":256,"description":"pinned concept key, e.g. 'us-gaap:Revenues'","title":"Concept"},"description":"pinned concept key, e.g. 'us-gaap:Revenues'"},{"name":"freq","in":"query","required":false,"schema":{"type":"string","description":"quarterly | annual | instant | any","default":"quarterly","title":"Freq"},"description":"quarterly | annual | instant | any"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MetricPointOut"},"title":"Response Metric Series Api Disclosed V1 Metrics  Ticker  Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","companies"],"summary":"List/filter the company universe","operationId":"list_companies_api_disclosed_v1_companies_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"name/ticker substring","title":"Q"},"description":"name/ticker substring"},{"name":"markets","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Markets"}},{"name":"is_etf","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Etf"}},{"name":"is_fund","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Fund"}},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"GAP: sector not stored on disclosed.Issuer","title":"Sector"},"description":"GAP: sector not stored on disclosed.Issuer"},{"name":"tickers","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Tickers"}},{"name":"ciks","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Ciks"}},{"name":"isins","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Isins"}},{"name":"figis","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Figis"}},{"name":"issuer_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"title":"Issuer Ids"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Companies Api Disclosed V1 Companies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","companies"],"summary":"Company profile (identity, website, description)","operationId":"get_company_api_disclosed_v1_companies__symbol__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Company Api Disclosed V1 Companies  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/executives":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","companies"],"summary":"Officers / IR / analysts (exec_roster_entries)","operationId":"get_executives_api_disclosed_v1_companies__symbol__executives_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"executives | ir | analysts","title":"Category"},"description":"executives | ir | analysts"},{"name":"current_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Current Only"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Executives Api Disclosed V1 Companies  Symbol  Executives Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/segments":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","companies"],"summary":"Segment revenue series (KPI v2 segment observations)","description":"Segment revenue comes from KPI v2 observations tagged\ndimension='segment'. GAP: disclosed has NO dedicated\n``revenue_segments`` XBRL model (the dimensional XBRL segment rows\nlive behind the /canonical Arelle surface, not a segments table), so\nthis endpoint serves the KPI v2 substrate only.","operationId":"get_segments_api_disclosed_v1_companies__symbol__segments_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"unit","in":"query","required":false,"schema":{"type":"string","description":"as_reported | thousand | million | billion","default":"as_reported","title":"Unit"},"description":"as_reported | thousand | million | billion"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Segments Api Disclosed V1 Companies  Symbol  Segments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/fundamentals":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","fundamentals"],"summary":"Canonical fundamentals (kpi_facts, publication-gated)","operationId":"get_fundamentals_api_disclosed_v1_companies__symbol__fundamentals_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"metrics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"canonical_name filter (repeatable)","title":"Metrics"},"description":"canonical_name filter (repeatable)"},{"name":"periods","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"calendar_period filter (repeatable), e.g. 2026Q1","title":"Periods"},"description":"calendar_period filter (repeatable), e.g. 2026Q1"},{"name":"unit","in":"query","required":false,"schema":{"type":"string","description":"as_reported | thousand | million | billion","default":"as_reported","title":"Unit"},"description":"as_reported | thousand | million | billion"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Fundamentals Api Disclosed V1 Companies  Symbol  Fundamentals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/statements/{statement}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","fundamentals"],"summary":"Financial statements (GAP: XBRL statement rows live in marketd)","description":"GAP endpoint. income|balance|cashflow statements are XBRL-sourced\nrows that live in **marketd** (the ~448k FMP rows are gate-blocked;\nonly source_provider='sec' rows serve per §4.7). disclosed has NO\nstatement model — the closest first-party substrate is the /canonical\nArelle surface (per-concept, not a formatted statement). We register\nthe route so the surface is complete and return a documented\nnot-covered problem rather than inventing a model.","operationId":"get_statement_api_disclosed_v1_companies__symbol__statements__statement__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"statement","in":"path","required":true,"schema":{"type":"string","title":"Statement"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Statement Api Disclosed V1 Companies  Symbol  Statements  Statement  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/scores":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","scores"],"summary":"Financial scores (GAP: persisted rows live in marketd)","description":"GAP endpoint. Per §4.8 the backing tables (financial_scores,\ncompany_red_flags) live in **marketd**, not disclosed.\ndisclosed.fundamentals.scores CAN compute Altman-Z / Piotroski-F LIVE\nfrom SEC XBRL, but the DCF/market-value terms need a share price\ninjected from the commercial path (signals-app) — which the corpus\nAPI does not have. Registered for surface-completeness; returns a\ndocumented not-covered problem rather than inventing a model or a\nprice. Wire from signals-app where price is available.","operationId":"get_scores_api_disclosed_v1_companies__symbol__scores_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Scores Api Disclosed V1 Companies  Symbol  Scores Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/valuation":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","scores"],"summary":"DCF valuation (GAP: persisted rows live in marketd)","description":"GAP endpoint. Per §4.8 the DCF / reverse-DCF valuation is persisted\nin **marketd** (dcf_valuations). The live computation\n(disclosed.fundamentals.scores) needs a share price + beta from the\ncommercial path, which the corpus API does not have. Registered for\nsurface-completeness; returns a documented not-covered problem.","operationId":"get_valuation_api_disclosed_v1_companies__symbol__valuation_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Valuation Api Disclosed V1 Companies  Symbol  Valuation Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/insider":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"Form 4 insider transaction feed (all issuers)","operationId":"insider_feed_api_disclosed_v1_insider_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"transaction_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Form 4 codes, e.g. P (open-market buy), S (sale). Repeatable.","title":"Transaction Types"},"description":"Form 4 codes, e.g. P (open-market buy), S (sale). Repeatable."},{"name":"min_value","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"minimum $ transaction value","title":"Min Value"},"description":"minimum $ transaction value"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"filing_date >= YYYY-MM-DD","title":"Start Date"},"description":"filing_date >= YYYY-MM-DD"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"filing_date <= YYYY-MM-DD","title":"End Date"},"description":"filing_date <= YYYY-MM-DD"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Insider Feed Api Disclosed V1 Insider Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/insider":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"Form 4 insider transactions for one company","operationId":"company_insider_api_disclosed_v1_companies__symbol__insider_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"transaction_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Transaction Types"}},{"name":"min_value","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Value"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Insider Api Disclosed V1 Companies  Symbol  Insider Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/institutions/holders-of/{symbol}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"Top 13F institutional holders of a symbol (latest quarter)","operationId":"holders_of_api_disclosed_v1_institutions_holders_of__symbol__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Holders Of Api Disclosed V1 Institutions Holders Of  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/institutions/flow-of/{symbol}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"Quarter-over-quarter 13F holder/value flow for a symbol","description":"Per-quarter holder count + total reported value for a symbol, newest\nfirst, with the change in holder count vs the immediately prior quarter.\nBounded (last ~12 quarters); not cursor-paginated (small fixed series).","operationId":"flow_of_api_disclosed_v1_institutions_flow_of__symbol__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Flow Of Api Disclosed V1 Institutions Flow Of  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/institutions/{cik}/positions":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"One 13F filer's book — latest filing (Starter tier)","operationId":"filer_positions_api_disclosed_v1_institutions__cik__positions_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","title":"Cik"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Filer Positions Api Disclosed V1 Institutions  Cik  Positions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/congress":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"STOCK Act congressional trade feed (all filers)","operationId":"congress_feed_api_disclosed_v1_congress_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Congress Feed Api Disclosed V1 Congress Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/congress/politicians/{slug}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"One politician's STOCK Act trades","operationId":"congress_politician_api_disclosed_v1_congress_politicians__slug__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Congress Politician Api Disclosed V1 Congress Politicians  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/congress":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"STOCK Act congressional trades in one company","operationId":"company_congress_api_disclosed_v1_companies__symbol__congress_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Congress Api Disclosed V1 Companies  Symbol  Congress Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/short-interest":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","ownership"],"summary":"FINRA bi-monthly short-interest series + days_to_cover","operationId":"short_interest_series_api_disclosed_v1_companies__symbol__short_interest_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Short Interest Series Api Disclosed V1 Companies  Symbol  Short Interest Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/events":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","events"],"summary":"List disclosure events","operationId":"list_events_api_disclosed_v1_events_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Symbols"}},{"name":"types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"earnings_call|investor_day|agm|ma_announcement","title":"Types"},"description":"earnings_call|investor_day|agm|ma_announcement"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD","title":"Start Date"},"description":"YYYY-MM-DD"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD","title":"End Date"},"description":"YYYY-MM-DD"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO datetime; filters on created_at (GAP: no updated_at)","title":"Updated After"},"description":"ISO datetime; filters on created_at (GAP: no updated_at)"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Events Api Disclosed V1 Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/events/calendar":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","events"],"summary":"Forward earnings calendar (first-party; date_status)","description":"Forward calendar from FIRST-PARTY events only. The FMP `earnings_events`\ntable is gate-blocked (no provenance column), so coverage is sparse until\nfirst-party calendar ingestion grows. GAP noted at module top.","operationId":"events_calendar_api_disclosed_v1_events_calendar_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Symbols"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD horizon","title":"End Date"},"description":"YYYY-MM-DD horizon"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Events Calendar Api Disclosed V1 Events Calendar Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/events/{event_id}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","events"],"summary":"One event WITH its bundle (the differentiator)","operationId":"get_event_api_disclosed_v1_events__event_id__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Event Api Disclosed V1 Events  Event Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/filings":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","filings"],"summary":"List SEC filings","operationId":"list_filings_api_disclosed_v1_filings_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Symbols"}},{"name":"forms","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Forms"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO datetime; filters accessed_at (GAP: no updated_at)","title":"Updated After"},"description":"ISO datetime; filters accessed_at (GAP: no updated_at)"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Filings Api Disclosed V1 Filings Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/filings/{accession}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","filings"],"summary":"Filing metadata + section index","operationId":"get_filing_api_disclosed_v1_filings__accession__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"accession","in":"path","required":true,"schema":{"type":"string","title":"Accession"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Filing Api Disclosed V1 Filings  Accession  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/filings/{accession}/exhibits":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","filings"],"summary":"Exhibit list; Ex-99.1 text inline","operationId":"get_filing_exhibits_api_disclosed_v1_filings__accession__exhibits_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"accession","in":"path","required":true,"schema":{"type":"string","title":"Accession"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Filing Exhibits Api Disclosed V1 Filings  Accession  Exhibits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/documents":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","documents"],"summary":"List IR docs + decks","operationId":"list_documents_api_disclosed_v1_documents_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Symbols"}},{"name":"doc_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Doc Types"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Documents Api Disclosed V1 Documents Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/documents/{doc_id}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","documents"],"summary":"IR document metadata + page count","operationId":"get_document_api_disclosed_v1_documents__doc_id__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"doc_id","in":"path","required":true,"schema":{"type":"integer","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Document Api Disclosed V1 Documents  Doc Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/documents/{doc_id}/pages":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","documents"],"summary":"Per-page text for one IR document","operationId":"get_document_pages_api_disclosed_v1_documents__doc_id__pages_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"doc_id","in":"path","required":true,"schema":{"type":"integer","title":"Doc Id"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"0-based page index; omit for all","title":"Page"},"description":"0-based page index; omit for all"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Document Pages Api Disclosed V1 Documents  Doc Id  Pages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/transcripts":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","transcripts"],"summary":"List first-party transcripts (is_current only)","operationId":"list_transcripts_api_disclosed_v1_transcripts_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Symbols"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Transcripts Api Disclosed V1 Transcripts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/transcripts/{transcript_id}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","transcripts"],"summary":"Full verbatim transcript (segments/chapters/speakers)","operationId":"get_transcript_api_disclosed_v1_transcripts__transcript_id__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"integer","title":"Transcript Id"}},{"name":"section","in":"query","required":false,"schema":{"type":"string","description":"full|prepared|qa","default":"full","title":"Section"},"description":"full|prepared|qa"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Transcript Api Disclosed V1 Transcripts  Transcript Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/kpis":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","kpis"],"summary":"Company KPI metric registry (first-party, provenanced)","description":"The company's own KPI metric registry (CompanyKpiMetric): metric_key,\ndisplay, importance, unit, first/last period, canonical_id. Keyset\npaginated on (importance, id).","operationId":"company_kpi_registry_api_disclosed_v1_companies__symbol__kpis_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Kpi Registry Api Disclosed V1 Companies  Symbol  Kpis Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/kpis/{metric_key}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","kpis"],"summary":"One KPI series — provenanced points with verbatim quotes","description":"The served time series for ONE metric: one point per period, each\nwith period_block + value_block + provenance_block (quote INCLUDED),\nkind (actual/forward), tier. Built on `company_kpi_signals` so it shares\nthe holdback / scale-guard / split-adjust logic with the internal page.\nThe provenance gate runs per corroborating source before serializing.","operationId":"company_kpi_series_api_disclosed_v1_companies__symbol__kpis__metric_key__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"metric_key","in":"path","required":true,"schema":{"type":"string","title":"Metric Key"}},{"name":"scale","in":"query","required":false,"schema":{"type":"string","default":"as_reported","title":"Scale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Kpi Series Api Disclosed V1 Companies  Symbol  Kpis  Metric Key  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/kpis/{metric_key}/observations":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","kpis"],"summary":"Raw L1 KPI observations (multiple per period, one per source)","description":"L1 raw observations (CompanyKpiObservation) — multiple per period,\none per source, each with its verbatim quote. Provenance-gated per row\n(provider derived from source_type). Keyset paginated on (period_end, id).","operationId":"company_kpi_observations_api_disclosed_v1_companies__symbol__kpis__metric_key__observations_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"metric_key","in":"path","required":true,"schema":{"type":"string","title":"Metric Key"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Kpi Observations Api Disclosed V1 Companies  Symbol  Kpis  Metric Key  Observations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/metrics":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","search"],"summary":"Search the cross-company KPI taxonomy (ALPHA)","description":"Search the canonical KPI taxonomy (Kpi2CanonicalMetric) by keyword /\nalias match.\n\nALPHA. GAP: `kpi2_canonical_metrics` is per-ticker scoped\n(canonical_key unique per ticker, not global) — TRUE cross-company\ncanonicalization is Layer 3 and not built. Embedding match is available\non the row but there is no cross-company ANN index, so we do keyword /\nalias / ILIKE match only here. Results are effectively (ticker, metric).","operationId":"search_metrics_api_disclosed_v1_metrics_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"metric name / alias","title":"Q"},"description":"metric name / alias"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Metrics Api Disclosed V1 Metrics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/metrics/{canonical_key}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","search"],"summary":"Canonical metric definition + which companies report it (ALPHA)","description":"Definition + the companies reporting this canonical.\n\nALPHA. GAP: canonical linkage is intra-company today (Layer 3\ncross-company mapping not built), so \"which companies report it\" is the\nset of tickers whose per-ticker canonical_key matches — not a true\ncross-company cluster. Flagged alpha.","operationId":"metric_definition_api_disclosed_v1_metrics__canonical_key__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"canonical_key","in":"path","required":true,"schema":{"type":"string","title":"Canonical Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Metric Definition Api Disclosed V1 Metrics  Canonical Key  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/metrics/{canonical_key}/values":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","search"],"summary":"Cross-company values for one canonical metric (ALPHA)","description":"Cross-company values for one canonical metric.\n\nALPHA. GAP: without Layer 3 cross-company clustering, \"cross-company\"\nhere is the union over each ticker whose per-ticker canonical_key ==\n`canonical_key`. For each matched (ticker, metric_key) we pull the\nlatest verified/reported observation. This is best-effort until the\ncross-company canonical layer exists.","operationId":"metric_values_api_disclosed_v1_metrics__canonical_key__values_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"canonical_key","in":"path","required":true,"schema":{"type":"string","title":"Canonical Key"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Metric Values Api Disclosed V1 Metrics  Canonical Key  Values Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/search":{"post":{"tags":["Signals Infra v1 (public API key)","public-v1","search"],"summary":"Hybrid search over the document corpus (pgvector + keyword)","description":"Hybrid search over DocumentChunk (vector + keyword, RRF-fused via\n`disclosed.search.index.search_corpus`). Returns snippets ≤400 chars +\nref pointers + provenance. Weighted 4x for quota (documented, not\nenforced here — the host rate-limiter reads the weight).\n\nProvenance gate: search hits carry no `source_provider` column; we\nderive it from source_kind and drop non-allowlisted hits. Vendor-corpus\ntranscripts (earningscall.biz) that leaked into document_chunks are\ngate-blocked by resolving CallTranscript.source_provider for transcript\nhits.","operationId":"hybrid_search_api_disclosed_v1_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Hybrid Search Api Disclosed V1 Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InfraApiKey":[]}]}},"/api/disclosed/v1/coverage":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","meta"],"summary":"Corpus-wide coverage stats","description":"Corpus stats: distinct issuers/tickers per dataset. Extends the\nexisting coverage logic (disclosed.api.router admin/quality) with the\nfirst-party dataset counts the Infra surface serves.","operationId":"coverage_api_disclosed_v1_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Coverage Api Disclosed V1 Coverage Get"}}}}},"security":[{"InfraApiKey":[]}]}},"/api/disclosed/v1/coverage/{symbol}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","meta"],"summary":"Per-company dataset freshness","description":"Per-company dataset freshness: what datasets exist for this ticker\nand how fresh each is (latest date).","operationId":"coverage_symbol_api_disclosed_v1_coverage__symbol__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Coverage Symbol Api Disclosed V1 Coverage  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/src/{src_id}":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","meta"],"summary":"Resolve a provenance src_id","description":"Resolve a provenance src_id to its source record.\n\nGAP: full src_id → row resolution needs a persisted lookup table\n(src_id is a content-hash of dataset|metric|period|url, minted at\nserialize time and NOT stored). There is no reverse index today, so we\ncan only validate the shape and echo the decoded structure. `redirect`\ncannot 302 without the stored source_url — flagged as GAP.","operationId":"resolve_src_api_disclosed_v1_src__src_id__get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"src_id","in":"path","required":true,"schema":{"type":"string","title":"Src Id"}},{"name":"redirect","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Redirect"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Resolve Src Api Disclosed V1 Src  Src Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/funds/{symbol}/holdings":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","funds"],"summary":"Fund holdings snapshot (ALPHA — N-PORT sign-off pending)","description":"Latest (or as-of) holdings snapshot for a fund. ALPHA.\n\nReads etf_holdings_snapshots + etf_holding_positions (the same tables\nthat back both ETFs and mutual funds — see disclosed/etf/models.py).\nPositions are provenance-gated per row: issuer_page (iShares/SSGA/\nVanguard) or sec (N-PORT) survive; anything else is dropped.","operationId":"fund_holdings_api_disclosed_v1_funds__symbol__holdings_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD; return the snapshot as of this date (freshest on-or-before). None = latest.","title":"As Of"},"description":"YYYY-MM-DD; return the snapshot as of this date (freshest on-or-before). None = latest."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ishares | ssga | vanguard | sec_nport. None = freshest.","title":"Source"},"description":"ishares | ssga | vanguard | sec_nport. None = freshest."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":5000,"minimum":1},{"type":"null"}],"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fund Holdings Api Disclosed V1 Funds  Symbol  Holdings Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/funds/{symbol}/nav":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","funds"],"summary":"Fund NAV series (ETF or mutual fund) — ALPHA","description":"Daily NAV series for a fund, newest first, keyset-paginated.\n\nTwo backing stores, tried in order:\n  1. mutual_fund_nav_snapshots (issuer-direct: Vanguard / T. Rowe /\n     Capital Group) — the dedicated NAV table with nav_change.\n  2. etf_holdings_snapshots.nav_per_share (SSGA daily; the issuer file\n     carries NAV alongside holdings) — fallback when (1) is empty.\nProvenance is per point; NAV rows gate to issuer_page.","operationId":"fund_nav_api_disclosed_v1_funds__symbol__nav_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fund Nav Api Disclosed V1 Funds  Symbol  Nav Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/fund-exposure":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","funds"],"summary":"Which funds hold this company (inverted holdings) — ALPHA","description":"Inverted holdings: the funds whose latest snapshot holds `symbol`.\n\nLifted from public.list_etf_exposure — DISTINCT ON keeps one row per\nfund (its most-recent, most-recently-ingested snapshot). Re-wrapped in\nthe v1 envelope + per-row provenance gate.\n\nGAP: there is no dedicated `etf_exposure` matview / model in the\ndisclosed layer (the spec listed one as backing). The inversion is\ncomputed live off etf_holding_positions, which the covering index\nidx_etf_pos_holding_weight makes cheap (prod ~0.08ms). No new model\nneeded; noted so a later matview swap is a known optimization, not a\nmissing feature.","operationId":"company_fund_exposure_api_disclosed_v1_companies__symbol__fund_exposure_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"default":50,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(weight|value)$","default":"weight","title":"Sort"}},{"name":"etfs_only","in":"query","required":false,"schema":{"type":"boolean","description":"restrict to exchange-traded funds","default":false,"title":"Etfs Only"},"description":"restrict to exchange-traded funds"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Fund Exposure Api Disclosed V1 Companies  Symbol  Fund Exposure Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/prices":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","prices"],"summary":"Daily price bars — NOT COVERED here (served from marketd)","description":"Daily OHLCV bars.\n\nNOT COVERED by the `disclosed` package. Prices live in **marketd**\n(`PriceEOD`), which owns the provenance-gated price path:\n  - venue \"consolidated\" → databento_mini (2023→)\n  - venue \"iex\"          → iex_hist (2016→2023, quality caveat)\n  - FMP price rows are BLOCKED.\ndisclosed has no price model, so rather than invent one we return a\ndocumented RFC-9457 `not-covered` problem. The intended bar shape is in\n`price_bar_shape()` and the venue→provider mapping in\n`PRICE_VENUE_PROVENANCE`, so the marketd wiring here is a drop-in later.\n\nGAP: no disclosed PriceEOD model. This route is a stable placeholder\nthat documents the contract; the host should route it to marketd's\nprovenance-gated serializer when the two surfaces merge.","operationId":"company_prices_api_disclosed_v1_companies__symbol__prices_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD","title":"Start Date"},"description":"YYYY-MM-DD"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD","title":"End Date"},"description":"YYYY-MM-DD"},{"name":"unit","in":"query","required":false,"schema":{"type":"string","default":"as_reported","title":"Unit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Prices Api Disclosed V1 Companies  Symbol  Prices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/companies/{symbol}/corporate-actions":{"get":{"tags":["Signals Infra v1 (public API key)","public-v1","prices"],"summary":"Splits / dividends / M&A with source URLs + provenance","description":"Corporate-action events for `symbol`, newest action_date first.\n\nLifted from public.list_corporate_actions; re-wrapped with keyset\ncursor pagination + per-row provenance gate. CorporateActionEvent\nproviders are nasdaq | sec | iex_hist — all allowlisted — but we gate\nanyway so a mislabeled row can never leak.","operationId":"company_corporate_actions_api_disclosed_v1_companies__symbol__corporate_actions_get","security":[{"InfraApiKey":[]}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"split | dividend | m_and_a | spinoff","title":"Kind"},"description":"split | dividend | m_and_a | spinoff"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Company Corporate Actions Api Disclosed V1 Companies  Symbol  Corporate Actions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/ask":{"post":{"tags":["Signals Infra ask"],"summary":"Ask Endpoint","operationId":"ask_endpoint_api_disclosed_v1_ask_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AskIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InfraApiKey":[]}]}},"/api/disclosed/v1/webhook-endpoints":{"get":{"tags":["Signals Infra webhooks"],"summary":"List Eps","operationId":"list_eps_api_disclosed_v1_webhook_endpoints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"InfraApiKey":[]}]},"post":{"tags":["Signals Infra webhooks"],"summary":"Create Ep","operationId":"create_ep_api_disclosed_v1_webhook_endpoints_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEndpointIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InfraApiKey":[]}]}},"/api/disclosed/v1/webhook-endpoints/{endpoint_id}":{"delete":{"tags":["Signals Infra webhooks"],"summary":"Delete Ep","operationId":"delete_ep_api_disclosed_v1_webhook_endpoints__endpoint_id__delete","security":[{"InfraApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/webhook-endpoints/{endpoint_id}/test":{"post":{"tags":["Signals Infra webhooks"],"summary":"Test Ep","operationId":"test_ep_api_disclosed_v1_webhook_endpoints__endpoint_id__test_post","security":[{"InfraApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disclosed/v1/webhook-topics":{"get":{"tags":["Signals Infra webhooks"],"summary":"Topics","operationId":"topics_api_disclosed_v1_webhook_topics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"InfraApiKey":[]}]}}},"components":{"schemas":{"AskIn":{"properties":{"question":{"type":"string","maxLength":2000,"minLength":1,"title":"Question"},"symbols":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Symbols"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"mode":{"type":"string","title":"Mode","default":"fast"},"as_of":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"},"stream":{"type":"boolean","title":"Stream","default":false}},"type":"object","required":["question"],"title":"AskIn"},"CreateEndpointIn":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"topics":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Topics"}},"type":"object","required":["url","topics"],"title":"CreateEndpointIn"},"FactOut":{"properties":{"id":{"type":"integer","title":"Id"},"ticker":{"type":"string","title":"Ticker"},"kind":{"type":"string","title":"Kind"},"value":{"additionalProperties":true,"type":"object","title":"Value"},"source_kind":{"type":"string","title":"Source Kind"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"source_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Provider"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At"}},"type":"object","required":["id","ticker","kind","value","source_kind"],"title":"FactOut"},"FilingOut":{"properties":{"id":{"type":"integer","title":"Id"},"ticker":{"type":"string","title":"Ticker"},"accession":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accession"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Form"},"filed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filed At"},"source_url":{"type":"string","title":"Source Url"},"source_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Provider"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","required":["id","ticker","source_url"],"title":"FilingOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IRDocOut":{"properties":{"id":{"type":"integer","title":"Id"},"ticker":{"type":"string","title":"Ticker"},"doc_url":{"type":"string","title":"Doc Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"doc_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Type"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At"},"source_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Provider"}},"type":"object","required":["id","ticker","doc_url"],"title":"IRDocOut"},"MetricConceptOut":{"properties":{"concept_key":{"type":"string","title":"Concept Key"},"local_name":{"type":"string","title":"Local Name"},"is_instant":{"type":"boolean","title":"Is Instant"},"fact_count":{"type":"integer","title":"Fact Count"},"latest_period_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Period End"}},"type":"object","required":["concept_key","local_name","is_instant","fact_count"],"title":"MetricConceptOut","description":"One pickable XBRL concept for a company (metric picker)."},"MetricPointOut":{"properties":{"period_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period Start"},"period_end":{"type":"string","title":"Period End"},"value":{"type":"number","title":"Value"},"is_instant":{"type":"boolean","title":"Is Instant"},"duration_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Days"},"source_accession":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Accession"},"source_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Form"},"filed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filed At"},"restated":{"type":"boolean","title":"Restated","default":false}},"type":"object","required":["period_end","value","is_instant"],"title":"MetricPointOut","description":"One resolved point in a pinned-concept time series (sparkline)."},"SearchBody":{"properties":{"query":{"type":"string","maxLength":1024,"minLength":2,"title":"Query"},"symbols":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Symbols"},"source_kinds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Kinds"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},"type":"object","required":["query"],"title":"SearchBody"},"TranscriptOut":{"properties":{"id":{"type":"integer","title":"Id"},"ticker":{"type":"string","title":"Ticker"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange"},"period_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period End Date"},"source_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Provider"},"source_vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Vendor"}},"type":"object","required":["id","ticker"],"title":"TranscriptOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"InfraApiKey":{"type":"http","scheme":"bearer","description":"Send `sk_live_*` (production) or `sk_test_*` (test mode)."},"McpBearer":{"type":"http","scheme":"bearer"}}},"servers":[{"url":"https://api.signals.ai","description":"production"}]}