Which version to use
Each resource has one current endpoint. Older versions stay available, so existing integrations keep working.v1 document by ID
GET /api/v1/documents/{id} is kept for older integrations. Compared with v2, it:
- returns
formTypeandtickersinstead ofsecFormTypeandcompanyTickers, and has nofiscalPeriod,languageorcompanyId; - returns legacy category codes: renamed categories map to their old code, and categories that didn’t exist before are returned as
other.
Every other endpoint returns the current codes listed in Document Coverage. The
documentCategories filter accepts both current and legacy codes.
Pagination
To read all results, request pages with the same filters and increasing
offset (0, limit, 2 × limit, …) until a page returns fewer than limit items. Results have a stable order: companies by name, documents by date (newest first by default), with ties broken by ID.
Tickers
Ticker filters (tickers on /companies/list, companyTickers on /documents/list) accept tickers in the form the API returns them:
- With an exchange suffix, such as
STO.AXorITX.MC, to match one listing. - Without a suffix, such as
STOorAAPL, to match that symbol on every exchange. A short symbol can match companies listed on different exchanges, so prefer the suffixed form. - Symbols that contain a dot work as returned, for example
BRK.BorBRK.B.US.
countries) are matched in any case.
Document IDs
Use theid from /documents/list, from documentMetadata.id in chunks and agent sources, or from a webhook payload, with GET /api/v2/documents/{id}. They identify the same document across endpoints.
File links
originalFileUrl and markdownFileUrl are signed links that expire one hour after the request. Download the files within that hour, or request the document again for fresh links instead of storing them. When a document has no Markdown version yet, markdownFileUrl is an empty string.
Limits and credits
- Requests over your organization’s rate limit receive
429. Wait and retry. - Each endpoint has a price per call in API credits; when your organization runs out of credits, requests receive
402. Check usage in the API Dashboard. - Requests that take longer than about 15 seconds are cut off with
504. This mainly affects text searches (queryon/documents/list) for very common words across all companies: add a filter such ascompanyTickersordocumentCategories.