Create a key, call by CIK, ticker, or accession number, and look at the filing, document, or fact behind any value. Every example on this page is a real response for Amprius Technologies (AMPX). AMPX is the sandbox company, so each example works on a new account.
Example issuer
AMPX
CIK 0001899287
Indexed history
2021+
Earliest indexed filing: 2021-12-15
Sample filing
10-K
0001899287-26-000015
Product-data calls use an API key in Authorization: Bearer .... Create and manage your keys in the SourceKeel dashboard.
The response snippets on this page are selected fields from real AMPX API responses. Full responses include the remaining source context, rows, links, downloadable references, and failure state where applicable.
sk_demo_ampx_readonly_v1 to call any public endpoint for AMPX (CIK 0001899287). Use your own API key when you need other companies.
sourcekeel.failure.v1 envelope, and the API does not invent a value to fill the gap. A 404 with reason: not_materialized means we know the company but that data is not ready yet. Check coverage before you retry.
Use the AMPX demo key immediately, or create an account. New accounts start in the sandbox with AMPX.
Check coverage for the company and feature you want. Coverage checks are free.
Call with a Bearer key. Use CIK for stable identity; tickers are aliases.
Follow links, objects, and applicable_extractions back to source.
export SOURCEKEEL_BASE_URL=https://api.sourcekeel.com
export SOURCEKEEL_API_KEY=sk_demo_ampx_readonly_v1
curl -s "$SOURCEKEEL_BASE_URL/v1/companies/0001899287" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
Send Accept-Encoding: gzip for large JSON responses. Authenticate with Authorization: Bearer (or the X-SourceKeel-Key header). 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.
A free pre-flight: does SourceKeel have this company and feature? Coverage checks are not counted as calls. Use them to request only data marked ready.
curl -s "$SOURCEKEEL_BASE_URL/v1/coverage?identifier=AMPX&feature=financials" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
# -> {"company_known":true,"status":"ready", ...}
# status is one of: ready | not_materialized
# an unknown company returns 404 company_not_found
Use CIK when you have it. If you have a ticker, resolve it first, then store and call by CIK.
curl -s "$SOURCEKEEL_BASE_URL/v1/companies/lookup?ticker=AMPX" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
{
"company": {
"cik": "0001899287",
"ticker": "AMPX",
"name": "Amprius Technologies, Inc.",
"exchange": "NYSE",
"profile_object": "/objects/companies/cik/0001899287/profile.json",
"schema_latest_object": "/objects/companies/cik/0001899287/schema/latest.json",
"revenue_segments_latest_object": "/objects/companies/cik/0001899287/features/revenue_segments/latest.json"
},
"lookup": { "identifier": "AMPX", "resolved_by": "ticker_active_alias" },
"recommended_identifier": "cik"
}
Start with company lookup if you only have a ticker. Use the returned CIK here.
The company profile shows the available coverage and the response schema in use.
curl -s "$SOURCEKEEL_BASE_URL/v1/companies/0001899287" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
{
"company": {
"cik": "0001899287",
"ticker": "AMPX",
"name": "Amprius Technologies, Inc.",
"sic": "3690",
"sic_description": "Miscellaneous Electrical Machinery, Equipment & Supplies",
"ticker_aliases": [
{ "ticker": "AMPX", "active": true, "exchange": "NYSE" },
{ "ticker": "AMPX-WT", "active": true, "exchange": "NYSE" }
]
},
"coverage": {
"earliest_filing_indexed": "2021-12-15",
"latest_filing_indexed": "2026-06-17",
"available_documents": 79,
"facts_total": 5492,
"sections_total": 360,
"forms_available": ["10-K", "10-Q", "144", "4", "424B3", "424B7", "8-K", "DEF 14A", "S-4", "SC 13D"]
},
"links": {
"filings": "/v1/filings?cik=0001899287",
"documents": "/v1/documents?cik=0001899287",
"facts": "/v1/companies/0001899287/facts",
"financials": "/v1/companies/0001899287/financials",
"management_guidance": "/v1/companies/0001899287/guidance",
"debt": "/v1/companies/0001899287/debt",
"operating_items": "/v1/companies/0001899287/operating-items",
"schema": "/v1/companies/0001899287/schema",
"securities": "/v1/companies/0001899287/securities",
"security_lifecycle": "/v1/companies/0001899287/security-lifecycle"
}
}
Start with company profile if you need the CIK or want to confirm this surface is available.
Use this when you need to separate common stock from warrants, units, preferred stock, notes, or other listed classes.
curl -s "$SOURCEKEEL_BASE_URL/v1/companies/0001899287/securities" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
{
"schema": "sourcekeel.company_securities.v1",
"as_of": "2026-07-02",
"source_form": "10-K",
"source_accession": "0001899287-26-000015",
"source_filed_date": "2026-03-06",
"sec_ticker_mapping": {
"tickers": ["AMPX", "AMPX-WT"],
"disagreements": [],
"symbol_variants": [
{ "cover_symbol": "AMPX.W", "ticker_file_symbol": "AMPX-WT" }
]
},
"securities": [
{
"trading_symbol": "AMPX",
"title_of_class": "Common Stock, par value $0.0001 per share",
"security_type": "common_stock",
"exchange": "NYSE",
"registration_section": "12b",
"confidence": 0.98
},
{
"trading_symbol": "AMPX.W",
"title_of_class": "Redeemable Warrants",
"security_type": "warrant",
"exchange": "NYSE",
"registration_section": "12b",
"confidence": 0.95
}
]
}
Start with company securities when you need class-level context for ticker symbols, warrants, units, or listed classes.
Use this when you need SEC-filing-backed active, delisted, deregistered, and lifecycle event evidence for a company. Top-level flags describe the current conclusion; superseded notices remain available in events and historical evidence.
curl -s "$SOURCEKEEL_BASE_URL/v1/companies/0001899287/security-lifecycle" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
{
"schema": "sourcekeel.security_lifecycle.v1",
"status": "active",
"status_confidence": 0.92,
"as_of": "2026-07-02",
"delisting_date": null,
"deregistration_date": null,
"flags": {
"delisting_notice": false,
"prior_delisting": true,
"prior_delisting_notice": true,
"needs_cover_page_enrichment": false,
"sec_mapping_disagrees": false
},
"events": [
{ "event_type": "registration_statement", "form": "S-1", "accession": "0001193125-22-013880" },
{ "event_type": "registration_statement", "form": "S-1/A", "accession": "0001193125-22-037353" }
],
"boundary": "Classes and lifecycle status are SEC-filing-backed. OTC trading after delisting and non-SEC venue events are outside this surface."
}
Start with company profile if you need the CIK or want to inspect the available filing and document coverage.
curl -s "$SOURCEKEEL_BASE_URL/v1/filings?cik=0001899287" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
{
"object": "list",
"schema": "sourcekeel.filing_query.v1",
"data": [
{
"accession": "0001899287-26-000045",
"form": "10-Q",
"filing_date": "2026-05-07",
"accepted_at": "2026-05-07 21:52:27+01",
"period_end_date": "2026-03-31",
"primary_document": "ampx-20260331.htm"
},
{
"accession": "0001899287-26-000015",
"form": "10-K",
"filing_date": "2026-03-06",
"accepted_at": "2026-03-06 21:21:25+00",
"period_end_date": "2025-12-31",
"primary_document": "ampx-20251231.htm"
}
]
}
Start with company filings if you need an accession number.
For one filing, the metadata is the menu. applicable_extractions tells you what can be pulled and whether it is a document pointer, fact object, section extraction, or typed extraction.
curl -s "$SOURCEKEEL_BASE_URL/v1/filings/0001899287-26-000015" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY"
{
"accession": "0001899287-26-000015",
"form": "10-K",
"filing_date": "2026-03-06",
"period_end_date": "2025-12-31",
"primary_document": "ampx-20251231.htm",
"is_inline_xbrl": true,
"applicable_extractions": [
{ "surface": "source_package", "status": "ready", "endpoint": "/v1/filings/0001899287-26-000015/source-package" },
{ "surface": "documents", "status": "available", "endpoint": "/v1/filings/0001899287-26-000015/documents" },
{ "surface": "revenue_segments", "status": "success", "row_count": 2, "endpoint": "/v1/filings/0001899287-26-000015/revenue-segments" },
{ "surface": "sections", "status": "success", "endpoint": "/v1/filings/0001899287-26-000015/sections" },
{ "surface": "facts", "status": "success", "row_count": 763, "endpoint": "/v1/filings/0001899287-26-000015/facts" }
]
}
Start with company profile if you need the CIK or want to confirm the financials object is available.
Financials are compact by default. Add statement=income_statement|balance_sheet|cash_flow_statement|stockholders_equity for one bounded, period-coherent statement with classified components and reconciliation. Add as_of=YYYY-MM-DD to a statement request for an inclusive causal cutoff across values, derivations, reconciliations, and provenance; a current selection first available later remains explicitly unavailable. Use view=full only when selection and derivation diagnostics are required. A valid statement takes precedence over metrics; unsupported query parameters and combinations are ignored.
GET /v1/companies/0001899287/financials
GET /v1/companies/0001315098/financials?statement=cash_flow_statement&periods=2026Q1
{
"schema": "sourcekeel.normalized_company_financials.v2",
"status": "success",
"latest_four_quarters": {
"period_count": 4,
"periods": [
{ "fiscal_year": 2025, "fiscal_period": "Q2", "period_end": "2025-06-30" },
{ "fiscal_year": 2025, "fiscal_period": "Q3", "period_end": "2025-09-30" },
{ "fiscal_year": 2025, "fiscal_period": "Q4", "period_end": "2025-12-31" },
{ "fiscal_year": 2026, "fiscal_period": "Q1", "period_end": "2026-03-31" }
],
"sample_quarter": {
"period": { "fiscal_year": 2026, "fiscal_period": "Q1", "period_end": "2026-03-31" },
"metrics": {
"revenue": 28536000,
"gross_profit": 5740000,
"operating_income": -6687000,
"net_income": -5046000,
"cash": 62352000,
"operating_cash_flow": -37275000,
"capex": 980000,
"free_cash_flow": -38255000,
"basic_shares": 136947076,
"diluted_shares": 136947076
},
"derived_metrics": {
"gross_margin": 20.1149,
"operating_margin": -23.4336,
"revenue_qoq_growth": 13.0855,
"revenue_yoy_growth": 152.889
}
}
}
}
Start with normalized financials when you need total revenue for segment reconciliation.
Use this when you need revenue mix by reported dimension without summing incompatible segment views together. SourceKeel returns grouped segments, reconciliation status, coverage, warnings, and source evidence.
GET /v1/companies/0001899287/revenue-segments/latest
{
"schema": "sourcekeel.revenue_segments.v2",
"periods": [
{
"period_end": "2026-03-31",
"total_revenue": 28536000,
"groups": [
{
"group": "product_service",
"reconciliation_status": "reconciled",
"reconciliation_basis": "whole_structural_group",
"source_measure": "{http://fasb.org/us-gaap/2025}RevenueFromContractWithCustomerExcludingAssessedTax",
"source_unit": "iso4217:USD",
"coverage_pct": 99.3,
"segments": [
{
"segment_name": "Sale of battery products",
"source_measure": "{http://fasb.org/us-gaap/2025}RevenueFromContractWithCustomerExcludingAssessedTax",
"source_unit": "iso4217:USD",
"value": 28336000,
"share_pct": 99.3
}
],
"warnings": ["dimension groups are alternative breakdowns and should not be summed together"]
},
{
"group": "geography",
"reconciliation_status": "reconciled",
"coverage_pct": 100
}
]
}
]
}
Start with company profile if you need the SIC and schema family SourceKeel assigned.
Use this when you need to see which sector schema SourceKeel applied and which canonical tags drive the normalized outputs. AMPX uses electrical_equipment_company.v1.
GET /v1/companies/0001899287/schema
{
"schema_used": {
"schema_id": "electrical_equipment_company.v1",
"display_name": "Electrical equipment",
"sic_rules": ["3600", "3612", "3613", "3620", "3621"],
"status": "best_effort"
},
"metrics": {
"assets": { "canonical_tag": "Assets" },
"capex": { "canonical_tag": "PaymentsToAcquirePropertyPlantAndEquipment" },
"cash": { "canonical_tag": "CashAndCashEquivalentsAtCarryingValue" },
"revenue": { "canonical_tag": "Revenues" }
}
}
Start with applied schema if you need to compare normalized fields against the accepted raw/source tags.
Use this when you need the source-backed escape hatch instead of the normalized schema output. SourceKeel returns canonical tags, raw/source tags, units, periods, values, and filing evidence. Fact responses are paginated: the default page holds 100 facts and limit accepts up to 1000. Filters such as tags, periods, and as_of narrow the scan before paging.
GET /v1/companies/0001899287/facts/latest?limit=500
GET /v1/companies/0001899287/facts?tags=Revenues&cursor=500
{
"schema": "sourcekeel.company_facts.v1",
"data": [
{
"accession": "0001899287-26-000045",
"form": "10-Q",
"period_end_date": "2026-03-31",
"canonical_tag": "Revenues",
"raw_tag": "us-gaap:Revenues",
"unit": "USD",
"value": 28536000
}
]
}
Start with filing metadata if you need the accession number and want to confirm section extraction is available for that filing.
Use this when you need filing text such as MD&A, business, financial statements, or risk factors. SourceKeel returns the text, section boundaries, confidence evidence, and source document reference.
GET /v1/filings/0001899287-26-000015/sections/item7
{
"schema": "sourcekeel.section.v1",
"accession": "0001899287-26-000015",
"item_code": "item7",
"title": "Management's Discussion and Analysis",
"extraction_status": "success",
"word_count": 7008,
"evidence": { "boundary_confidence": 0.94 },
"clean_text_sample": "Item 7. Management's Discussion and Analysis of Financial Condition and Results of Operations..."
}
Start with filing metadata, company profile, or an endpoint response that includes object_key and object_url.
Some responses include authenticated file references. Use /objects/{object_key} to retrieve the referenced JSON, text, source package, or export. Source identity uses the SEC accession and form; origin URLs are intentionally omitted from API responses.
curl -L "$SOURCEKEEL_BASE_URL/objects/filings/accession/0001899287-26-000015/source_manifest.json" \
-H "Authorization: Bearer $SOURCEKEEL_API_KEY" \
-o ampx-source-manifest.json
{
"accession": "0001899287-26-000015",
"form": "10-K",
"primary_document": "ampx-20251231.htm",
"raw_source_available": true,
"documents": [
{
"document": "ampx-20251231.htm",
"document_kind": "primary",
"object_key": "sec/documents/1899287/000189928726000015/ampx-20251231.htm",
"object_url": "/objects/sec/documents/1899287/000189928726000015/ampx-20251231.htm",
"available": true,
"text_available": true
}
]
}
Start with the endpoint-specific section above when you need the success shape. This section shows the failure shape for unavailable data and missing references.
A successful 2xx response never contains a top-level error or failure_reason. Every response includes an X-Request-Id header for support and tracing. Request failures use the relevant 4xx or 5xx status and repeat that identifier as request_id in this structured envelope. Availability details may still appear on individual fields or rows inside an otherwise successful resource.
GET /v1/filings/0001899287-26-000045/cover-securities
{
"schema": "sourcekeel.failure.v1",
"object": "error",
"error": {
"code": "object_not_found",
"message": "The requested data is not available.",
"status": 404,
"type": "not_found_error"
},
"failure_reason": {
"code": "object_not_found",
"evidence": { "object": "/objects/filings/accession/0001899287-26-000045/cover_securities.json" },
"message": "The requested data is not available."
}
}
GET /v1/filings/0001899287-26-000015/sections/item999
{
"schema": "sourcekeel.failure.v1",
"object": "error",
"error": {
"code": "section_not_materialized",
"message": "The filing is covered, but this section is not available for the requested item.",
"status": 404,
"type": "not_found_error"
},
"failure_reason": {
"code": "section_not_materialized",
"evidence": {
"accession": "0001899287-26-000015",
"item_code": "item999",
"extraction_status": "not_materialized"
},
"message": "The filing is covered, but this section is not available for the requested item."
}
}
Every paid plan reads the same data. Plans differ in included calls, rate limits, and the price of overage. All keys on an account share one allowance.
A call is one successful (2xx) response that returns data. Each page of a paginated result is one call. These are free: coverage checks, failed authentication, not found and no-coverage responses, 304 Not Modified, other error responses, and errors on our side.
X-Plan: build
X-Monthly-Limit: 500000
X-Monthly-Used: 128734
X-Overage-Enabled: true
X-Overage-Calls: 0
X-Overage-Charges-Cents: 0
X-Overage-Limit-Cents: 5000
X-Monthly-Capacity: 1928571
X-Monthly-Capacity is how many calls the account can make this month before it stops: the included allowance, plus what the remaining spend limit buys when overage is on.
A 429 with monthly_quota_exceeded means the included allowance is used and overage is off. overage_spend_limit_reached means overage reached the limit you set. rate_limited means the per-minute or burst limit was hit. Every 429 carries Retry-After. Overage is billed pro rata and settled after the month ends.
New accounts start in the sandbox. Sandbox keys call the full API for the sandbox companies (Financial & Corporate: Amprius Technologies (AMPX)), are rate-limited, and are not billed. A request for another company returns 403 sandbox_scope. Sandbox responses carry X-Environment: sandbox and X-Sandbox-Scope. The same key reads every supported company after you choose a paid plan.
Endpoints are grouped by vertical and country, the same way as the coverage page. The reference below uses the same groups.
Source: United States Securities and Exchange Commission EDGAR
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.
Names, tickers, and exchanges come from each company's submissions file. The classes of stock, with their trading symbols and exchanges, are listed on the cover page of the 10-K and 10-Q, so you read those too. To learn that a security was delisted or deregistered, you watch for Form 25 and Form 15 filings.
A company's submissions file holds at least a year of filings or its latest 1,000, whichever is more. Older filings sit in extra files that you fetch and join. New filings also show up in the latest filings feed and the daily index, so you read those and drop duplicates by accession number. Deadlines depend on the filer's category, as the 10-K and 10-Q instructions set out.
10-K and 10-Q documents are HTML with inline XBRL tags inside the text. Each company formats its item headings its own way, so finding where one item ends and the next begins takes rules for many layouts. 8-K items are numbered, and the text under each one is free form.
The company facts API gives you each tagged value, but not the statement or line it belongs to. Companies can pick different tags for the same line, and a company can switch tags from one year to the next, so you map tags to lines yourself and check that the totals add up.
The company facts API only includes facts that use a standard taxonomy and apply to the whole company. Company-specific tags and segment figures stay in the filing itself. The same value appears again in each later filing that repeats it, and an amendment can change it, so you track which filing reported which value and when.
Segment figures are XBRL facts with dimensions, and the company facts API leaves those out, so you parse the inline XBRL in each 10-K and 10-Q. Companies name their own segments and can rename them between years, and you reconcile the parts to the reported total yourself.
Shares outstanding and public float are cover page values, measured on different dates from the balance sheet. Debt rates and maturities mostly sit in the notes as tables and text, so you read the notes to get them.
Results usually arrive as a press release attached to an 8-K under Item 2.02. An 8-K only has to tag its cover page and certain revised financial statements in XBRL, so the release tables are usually plain HTML. You then match each figure to the value in the 10-Q or 10-K that comes later.
Each Form 4 and Form 144 is its own XML file inside a filing, so you fetch them one at a time. The ownership XML format has had several versions, and older filings use older ones. A Form 144 is a notice of an intended sale. For officers and directors, the sale itself shows up later on a Form 4.
Officer and director changes are reported under Item 5.02 of Form 8-K as free text, so you read the text to find the person, the role, and the date. Governance tables sit inside proxy statements, and each company lays them out its own way.
An 8-K's item numbers tell you what kind of event it reports, and the details are in the text. A public offering spreads across a registration statement and later prospectus filings that you link yourself. Form D arrives as XML, and subsidiary lists come from Exhibit 21, usually a simple table.
The same list is on the coverage page.
Coverage checks and file downloads work the same way for all data.
This reference is rendered from openapi.json. It covers every public endpoint, grouped by vertical and country like the list above, with parameters, response schemas, examples, and a Try button. Open a group in the left rail to see one endpoint at a time.
sk_demo_ampx_readonly_v1 is already loaded, so Try works immediately. Open Authentication only to use your own sk_live_ key and call other companies.