Skip to main content
Make a request against the unversioned production API, inspect its named response envelope, and then switch between the US, India, and China namespaces.

1. Create an API key

Corpus is self-serve. Sign up at corpus.onera.app/signup with an email and password, then create a key from your account page — there is no approval step, and your account is provisioned with 100,000 credits. Keep the key in an environment variable:
The key is shown once at creation and cannot be retrieved afterwards; create a new one and revoke the old if you lose it. Every authenticated request sends the key in the X-API-KEY header. GET /catalog is public and free; every other request costs credits and requires a key. Self-serve keys carry the full public surface — us:read, india:read, china:read, search:read, rag:search, litigation:read, and data:export. See Authentication for credit costs and key management.
Never place a long-lived Corpus API key in browser JavaScript. A frontend should call its own server route, which adds the key before forwarding the request to Corpus.

2. Make your first request

Request the latest available US income statement for Apple:
Python requires requests (python -m pip install requests). The JavaScript example uses Node.js 18 or later, where fetch is built in.
The endpoint returns the most recent available income-statement periods in descending report-date order. Results can include annual and quarterly periods; inspect each record’s period and fiscal_period. The response uses the income_statements resource name and includes metadata about jurisdiction, record count, normalization version, and provenance:
The statement above is an abbreviated example, and meta.as_of is the request time when the parameter is omitted. Add an explicit as_of cutoff when you need a reproducible historical read. The current provenance object names Corpus as the serving provider, indicates whether the read is point-in-time, and records the knowledge-time cutoff applied to the query. Nullable response fields are defined in the API reference.

3. Choose the correct country namespace

US endpoints accept US identifiers. India endpoints accept Indian identifiers; they do not translate an ISIN into a US ticker model. Request an Indian security by ISIN:
The response uses the India security schema:

4. Explore more endpoints

Find a recent 10-K

Retrieve one filing section

Read an Indian annual-report catalog

Search US filing text

Search requires both us:read and search:read. India search similarly requires india:read and search:read; court records additionally require litigation:read.

5. Handle pagination and processing state

Offset-paginated collection endpoints include limit, offset, and next_offset in meta. Continue while next_offset is not null. Some resources, including prices and financial statements, are limit-only; follow the parameters in that endpoint’s API reference. Some EDGAR documents are still moving through archival or parsing. Filing content endpoints return 503 with Retry-After when processing is incomplete. Do not treat a metadata row as proof that normalized text or filing items are already available.

What next?

United States API

Companies, prices, financial statements, SEC filings, ownership, events, and search.

India API

Securities, prices, annual reports, news, judgments, exports, and search.

MCP server

Connect compatible agents to read-only US, India, and internal China tools.

Authentication

Understand scopes and safe frontend integration.

Errors and pagination

Handle validation, authorization, rate limits, and processing state.