# SourceKeel API Base URL: https://api.sourcekeel.com Authentication: `Authorization: Bearer sk_live_...`. Create and manage API keys in the SourceKeel dashboard. New accounts start in the sandbox: the full API for the sandbox companies (AMPX), rate-limited and not billed. Paid plans read every supported company. Public AMPX demo: `Authorization: Bearer sk_demo_ampx_readonly_v1`. It works on every endpoint below for Amprius Technologies (AMPX). Use your own API key for other companies. Use CIK for stable company identity. Tickers are aliases. Check coverage before pulling (free, not counted as a call): - `GET /v1/coverage?identifier={cik_or_ticker}` -> per-feature status: ready | not_materialized. An unresolved identifier returns 404 `company_not_found`. - `GET /v1/coverage?identifier=...&feature=financials` for one feature. Use it to request only data marked `ready`. Then call data endpoints and follow `links`, `objects`, and `applicable_extractions`. Example issuer used in docs: - Company: Amprius Technologies, Inc. - Ticker: AMPX - CIK: 0001899287 - Sample accession: 0001899287-26-000015 - Form: 10-K Endpoints, grouped by vertical and jurisdiction (see /verticals for coverage): ## Financial & Corporate: United States Source: United States Securities and Exchange Commission EDGAR, https://www.sec.gov/. Access rules: Free, with no account or API key. The SEC asks automated clients to send a User-Agent header with a company name and a contact email, and to stay at or under 10 requests per second in total, however many machines they use. Above that, it may limit requests from your IP address until the rate has stayed under the limit for 10 minutes. It does not offer technical support for scripted downloads. See Accessing EDGAR Data (https://www.sec.gov/search-filings/edgar-search-assistance/accessing-edgar-data) and SEC Internet Security Policy (https://www.sec.gov/about/privacy-information#security). Where each dataset comes from: /verticals#financial-us - `GET /v1/companies`: Returns the company manifest, or searches companies when q/limit is supplied. - `GET /v1/companies/lookup`: Resolve a CIK, ticker, or identifier to the canonical CIK-backed company record. - `GET /v1/identifiers/resolve`: Resolve a ticker or CIK through the same CIK-first identity map. - `GET /v1/companies/{cik_or_ticker}`: Compact company identity, SIC/schema selection, coverage, links, and object pointers. - `GET /v1/companies/{cik_or_ticker}/securities`: Latest cover-page securities table for the company, extracted from persisted SEC filing documents with row-level evidence. - `GET /v1/companies/{cik_or_ticker}/security-lifecycle`: SEC-filing-backed listing, delisting, deregistration, active-state, and lifecycle event evidence. - `GET /v1/filings/{accession}/cover-securities`: Cover-page securities rows extracted from one filing, including title, symbol, exchange, section, and evidence. - `GET /v1/filings`: Global filing search by company, form, date, accepted timestamp, and cursor. - `GET /v1/feed/filings`: Poll newly available filings since a timestamp. - `GET /v1/filings/{accession}`: Single filing metadata and applicable extraction/source surface manifest. - `GET /v1/documents`: Company document search by CIK/ticker and optional date window. - `GET /v1/filings/{accession}/documents`: Document index for one accession. - `GET /v1/filings/{accession}/source-package`: Source package manifest for one accession. - `GET /v1/companies/{cik_or_ticker}/source-packages`: Filing source package manifests for the company. - `GET /v1/filings/{accession}/timeliness`: Source-backed periodic filing deadline, filer class, calendar adjustment, extension linkage, and timeliness result. - `GET /v1/companies/{cik_or_ticker}/sections`: Company-level section extraction index. - `GET /v1/filings/{accession}/sections`: Section index for one filing. - `GET /v1/filings/{accession}/sections/{item}`: Extracted section text and evidence for one filing item. - `GET /v1/filings/{accession}/sections/{item}/schema`: Schema-applied disclosure extraction for a filing item. - `GET /v1/filings/{accession}/extractions`: Disclosure extraction index for one accession. - `GET /v1/companies/{cik_or_ticker}/disclosure-extractions`: Structured disclosure extraction rows and field partitions. - `GET /v1/companies/{cik_or_ticker}/financials`: Bounded compact financials by default. release_financials_state identifies the latest earnings-release period, whether it has entered normalized financials, selected or superseded release values, and later periodic-filing reconciliation. statement supports income_statement, balance_sheet, cash_flow_statement, or stockholders_equity and returns one coherent period-grouped statement with classified components, cash direction, reconciliation, and provenance. Statement-scoped as_of applies an inclusive point-in-time cutoff to values, derivations, reconciliations, and provenance; current selections first available after the cutoff are explicitly unavailable and never backdated. view=full adds selection and derivation diagnostics. A valid statement takes precedence over metrics; compact-only filters and all unknown parameters are ignored when they do not apply. - `GET /v1/companies/{cik_or_ticker}/schema`: SIC/sector-selected company schema output with mapped, missing, consumed, and unmapped facts. include_unmapped_values adds one page of unmapped raw values; page through them with unmapped_values_cursor. - `GET /v1/companies/{cik_or_ticker}/facts`: Raw numeric SEC fact history, returned in pages. The default page holds 100 facts and limit accepts up to 1,000; follow next_cursor while has_more is true. Filters narrow the scan before paging and every fact keeps its filing and source provenance. Each page is one call. Unsupported parameters such as view are ignored. - `GET /v1/companies/{cik_or_ticker}/facts/latest`: Latest raw numeric SEC facts, returned in pages with the same limit, cursor, and filters as company facts. Each page is one call. - `GET /v1/filings/{accession}/facts`: All raw numeric SEC facts for one filing. - `GET /v1/companies/{cik_or_ticker}/revenue-segments/latest`: Up to the latest four materialized revenue-segment periods, including reconciliation and derived-quarter input lineage where available. - `GET /v1/filings/{accession}/revenue-segments`: Revenue segment convenience rows for one filing. - `GET /v1/companies/{cik_or_ticker}/capital-structure`: Current reported shares, accounting share averages, potential shares, and transparent share-count totals. Compact is the default; view=full adds diagnostics. scope=historical&group_by=fiscal_quarter returns a fixed period-coherent component grid, preserves every observation's measurement and availability dates, and refuses to total overlapping claims. Missing and disclosed-but-unquantified values remain explicit. - `GET /v1/companies/{cik_or_ticker}/debt`: Detailed source-backed funded-debt, lease, facility, maturity, rate, lifecycle, and financing observations. Obligation classes remain separate and missing covenant, collateral, capacity, commitment, or refinancing terms are explicitly unavailable. - `GET /v1/companies/{cik_or_ticker}/float`: DEI public float and shares outstanding facts. - `GET /v1/filings/{accession}/float`: DEI public float and shares outstanding rows for one filing. - `GET /v1/companies/{cik_or_ticker}/earnings-release-metrics`: Complete paginated collection of historical SEC-filed earnings-release metrics. release_financials_state identifies the latest release period's normalized-financials status; matching latest observations carry selected, superseded, or not-in-normalized-financials relationship metadata. Only limit and cursor affect this already-bounded collection; unsupported query parameters such as view are ignored. - `GET /v1/companies/{cik_or_ticker}/earnings-official-metrics`: Complete paginated collection of independent official filing metrics used in earnings reconciliation, including qualified Q4 derivations. - `GET /v1/companies/{cik_or_ticker}/earnings-comparisons`: Complete paginated release-to-official comparison collection with circular-source rejection and source-backed Q4 derivations. - `GET /v1/companies/{cik_or_ticker}/guidance`: Structured source-backed management-guidance ranges with projected fiscal identity, GAAP basis, lifecycle status, known-at time, filing provenance, and explicit unavailable values. SourceKeel does not calculate forward earnings. - `GET /v1/companies/{cik_or_ticker}/operating-items`: Neutral source-backed inventory of reported impairment, restructuring, separation, termination, divestiture, and debt-extinguishment items. SourceKeel does not decide adjusted earnings. - `GET /v1/companies/{cik_or_ticker}/insider-rollup`: Issuer-level insider transaction rollup. - `GET /v1/companies/{cik_or_ticker}/proposed-sales`: Structured Form 144 proposed sale rows. - `GET /v1/filings/{accession}/proposed-sales`: Form 144 proposed sale rows for one filing. - `GET /v1/companies/{cik_or_ticker}/officer-changes`: 8-K Item 5.02 officer/director changes plus an as-of current roster composed from typed Item 5.02 and Form 3/4 role evidence, with confidence and source-history boundaries. - `GET /v1/filings/{accession}/officer-changes`: Officer change lens enriched from the filing's Item 5.02 disclosure extraction. - `GET /v1/companies/{cik_or_ticker}/proxy-filings`: Proxy and information statement filing lens. - `GET /v1/filings/{accession}/proxy`: Proxy filing lens for one filing. - `GET /v1/companies/{cik_or_ticker}/proxy-governance`: Proxy governance table inventory, source excerpts, and conservative normalized rows for recognized table layouts. - `GET /v1/filings/{accession}/proxy-governance`: Proxy governance table candidates and recognized normalized rows for one filing. - `GET /v1/companies/{cik_or_ticker}/events`: Item-classified filing event lens. - `GET /v1/filings/{accession}/events`: Item event lens for one filing. - `GET /v1/companies/{cik_or_ticker}/offerings`: Offering metadata lens over registration/prospectus-related filings. - `GET /v1/filings/{accession}/offerings`: Offering lens for one filing. - `GET /v1/companies/{cik_or_ticker}/private-offerings`: Structured Form D private offering rows. - `GET /v1/filings/{accession}/offering`: Form D offering extraction for one filing. - `GET /v1/companies/{cik_or_ticker}/public-offering-history`: Company-level public-offering chain history and structure rows. - `GET /v1/filings/{accession}/public-offering-structure`: Source-backed public offering structure object for one registration/prospectus filing. - `GET /v1/companies/{cik_or_ticker}/amendment-diffs`: Source-backed formal amendments and ordinary subsequent filings that revise prior reported periods. Every record uses prior_accessions; relationship_type distinguishes legal amendments from ordinary revisions. Revised values become PIT-valid at the revising filing's acceptance time. - `GET /v1/companies/{cik_or_ticker}/subsidiaries`: Best-effort Exhibit 21 subsidiary rows. - `GET /v1/filings/{accession}/subsidiaries`: Subsidiary rows for one filing. ## Every vertical Coverage checks and file downloads work the same way for all data. - `GET /v1/coverage`: Free latest-snapshot availability check for a company and optional feature. Coverage checks are not counted as calls. Availability is not evidence that an SEC event or field is absent. - `GET /objects/{object_key}`: Authenticated object download for keys returned by the API. Bulk export objects are not available. Response rules: - Company, filing, section, and document endpoints return complete responses. - Search, feed, and company fact endpoints are paginated with `limit` and `cursor`. Follow `next_cursor` while `has_more` is true. Each page is one call. - Send `Accept-Encoding: gzip` for large JSON responses. - Every response includes an `X-Request-Id` header. Include it when contacting support; failure bodies repeat it as `request_id`. - A successful 2xx response never contains a top-level `error` or `failure_reason`. Empty search results remain successful 200 responses. - Individual fields or rows may carry source-availability metadata without turning an otherwise valid resource or collection into a request failure. - Source provenance uses accession, form, and filing metadata. External origin URLs are omitted; use a returned `object_url` for authenticated source bytes. - Failures use `sourcekeel.failure.v1` with structured `failure_reason`. Branch on `error.code`. - A 404 `object_not_found` with `failure_reason.evidence.reason=not_materialized` means the company is known but the requested coverage is not ready. Check `/v1/coverage` before retrying. - `company_not_found` (404) means the identifier is not covered; `invalid_identifier_format` (400) means a numeric id longer than a 10-digit CIK. - 429 responses include a `Retry-After` header (seconds). `error.code` is `rate_limited`, `monthly_quota_exceeded` (included calls used, overage off), or `overage_spend_limit_reached` (the account's spend limit). - `403 sandbox_scope` means a sandbox key asked for a company outside the sandbox. Usage and billing: - A call is one successful (2xx) response. Coverage checks, failed authentication, not found and no-coverage responses, 304 Not Modified, other errors, and SourceKeel failures are free. - All keys on an account share one allowance. Usage headers: `X-Monthly-Limit`, `X-Monthly-Used`, `X-Overage-Calls`, `X-Overage-Charges-Cents`, `X-Monthly-Capacity`. OpenAPI: /openapi.json Human docs: /docs