Datasets API endpoint
Searches SEC-reporting companies — filing history, financial-statement rollups (latest annual/quarterly revenue, net income, total assets) and trailing-90-day insider (Form 3/4/5) activity. Sort enum: `relevance`, `name_asc`, `revenue_desc`, `net_income_desc`, `filing_recent_desc`, `insider_activity_desc`. `entity_type`, `sic`, `sic_description`, `exchange`, and `state_of_incorporation` are open filters over the exact values EDGAR reports for each filer (not a fixed enum) — discover real values via the matching facet. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).
/datasets/sec-companies/searchDataset id enum:
sec-companiesQuery parameters:
q: optional full-text query over the company name, or an exact ticker match, max 256 characters.ticker: optional exact ticker filter (case-insensitive), e.g. AAPL, max 32 characters.cik: optional exact CIK filter, numeric or zero-padded, e.g. 320193 or 0000320193.sic: optional exact SIC industry-code filter, e.g. 3571, max 32 characters.sic_description: optional exact SIC description filter, e.g. Electronic Computers, max 128 characters.exchange: optional exact exchange filter as reported by EDGAR, e.g. Nasdaq, NYSE, max 64 characters.state_of_incorporation: optional exact state/country-of-incorporation filter as reported by EDGAR, e.g. DE, CA, max 32 characters.entity_type: optional exact entity-type filter as reported by EDGAR (e.g. operating), max 64 characters. This is an open filter over whatever value EDGAR reports for a filer, not a fixed enum — discover real values via the entity_type facet.reporting_currency: optional exact reporting-currency filter, ISO-4217 code, e.g. USD, JPY, EUR. Discover real values via the reporting_currency facet.has_financials: optional boolean; when true, keep only companies that have XBRL financial statements (a latest_annual_revenue_usd value).min_revenue: optional minimum latest-annual revenue in USD, 0 or greater. Applied to the USD-normalized figure (see currency note below), so the threshold means the same across reporting currencies.max_revenue: optional maximum latest-annual revenue in USD (normalized), 0 or greater.min_net_income: optional minimum latest-annual net income in USD (normalized; negative allowed).min_total_assets: optional minimum latest-annual total assets in USD (normalized), 0 or greater.form_filed: optional exact form-type filter; keeps only companies that have ever filed this form, e.g. 10-K, 8-K.min_insider_txn_count_90d: optional minimum insider (Form 3/4/5) transaction count in the trailing 90 days, 0 or greater.sort: optional sort order. Allowed values: relevance, name_asc, revenue_desc, net_income_desc, filing_recent_desc, insider_activity_desc. Defaults to relevance with q, otherwise name_asc.page: optional page number, defaults to 1.page_size: optional page size, defaults to 20 and maxes at 100.Response behavior:
cik, cik_padded, name, former_names, tickers, primary_ticker, exchange, sic, sic_description, state_of_incorporation, fiscal_year_end, entity_type, filing_count, latest_filing_date, forms_filed, recent_filings (capped detail list), reporting_currency, the latest_annual_*/latest_quarterly_* financial rollups (each with a native _revenue/_net_income/_total_assets and a _usd normalized counterpart), revenue_band, and the insider_txn_count_90d/insider_net_shares_90d/insider_last_transaction_at trailing-90-day rollup.reporting_currency exactly as filed; the *_usd fields (and revenue_band, and the revenue_desc/net_income_desc sorts and min_*/max_revenue filters) are that value converted at fixed reference rates so they compare across currencies. Read the native figure for exactness; screen and sort on the USD fields.*_usd conversion uses a single fixed rate per currency, as of 2026-07-17, refreshed about annually — not the exchange rate on each filing's own reporting date. So a *_usd figure is accurate enough to sort, band and range-filter across currencies, but it is not a restatement: for a non-USD filer's exact dollar value, take the native figure and apply your own as-of rate. Conversion is applied only to currencies we hold a rate for; a filer reporting in any other currency keeps its native figures and simply has no *_usd value (so it sorts last rather than being given a guessed one).10000; page * page_size must not exceed 10000.items array (not an error) when nothing matches or the dataset has no data yet.GET /sec/company/submissions instead.1 credit per record returned, minimum 2. A search that returns 20 records costs 20 credits, a full page of 100 costs 100, and an empty or one-record result costs 2. You are charged for what comes back, not for the page_size you ask for, but your balance must cover the requested page_size for the call to be accepted. The response header x-credit-cost shows what a call was charged.
| Field | Filled in, of 1 checked | Values in the sample |
|---|---|---|
| cik | 1 | 320,193 |
| cik_padded | 1 | 320,193 |
| name | 1 | |
| former_names | 1 | median 3 entries |
| tickers | 1 | median 1 entry |
| primary_ticker | 1 | |
| exchange | 1 | median 1 entry |
| sic | 1 | 3,571 |
| sic_description | 1 | |
| state_of_incorporation | 1 | |
| fiscal_year_end | 1 | 926 |
| entity_type | 1 | |
| filing_count | 1 | 500 |
| latest_filing_date | 1 | 2026-10-08 |
| forms_filed | 1 | median 27 entries |
| recent_filings | 1 | median 50 entries |
| reporting_currency | 1 | |
| latest_annual_fiscal_year | 1 | 2,025 |
| latest_annual_revenue | 1 | 383,285,000,000 |
| latest_annual_revenue_usd | 1 | 383,285,000,000 |
| latest_annual_net_income | 1 | 96,995,000,000 |
| latest_annual_net_income_usd | 1 | 96,995,000,000 |
| latest_annual_total_assets | 1 | 364,980,000,000 |
| latest_annual_total_assets_usd | 1 | 364,980,000,000 |
| latest_quarterly_fiscal_year | 1 | 2,026 |
| latest_quarterly_revenue | 1 | 313,695,000,000 |
| revenue_band | 1 | |
| insider_txn_count_90d | 1 | 30 |
| insider_net_shares_90d | 1 | 27,908 |
| insider_last_transaction_at | 1 | 2026-10-06 |
| crawled_at | 1 | 2026-10-10 |
| submissions_synced_at | 1 | 2026-10-10 |
| financials_synced_at | 1 | 2026-10-10 |
| seed_source | 1 | |
| schema_version | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Full-text query over the company name, or an exact ticker match, max 256 characters | ||
| ticker | string | No | Exact ticker filter (case-insensitive), e.g. AAPL, max 32 characters | ||
| cik | string | No | Exact CIK filter, numeric or zero-padded, e.g. 320193 or 0000320193 | ||
| sic | string | No | Exact SIC industry-code filter, e.g. 3571, max 32 characters | ||
| sic_description | string | No | Exact SIC description filter, e.g. Electronic Computers, max 128 characters | ||
| exchange | string | No | Exact exchange filter as reported by EDGAR, e.g. Nasdaq, NYSE, max 64 characters | ||
| state_of_incorporation | string | No | Exact state/country-of-incorporation filter as reported by EDGAR, e.g. DE, CA, max 32 characters | ||
| entity_type | string | No | Exact entity-type filter as reported by EDGAR (e.g. operating), max 64 characters | ||
| reporting_currency | string | No | Exact reporting-currency filter, ISO-4217 code, e.g. USD, JPY, EUR | ||
| has_financials | boolean | No | When true, keep only companies that have XBRL financial statements | ||
| min_revenue | number | No | Minimum latest-annual revenue in USD (normalized from the filer's reporting currency at reference rates), 0 or greater | ||
| max_revenue | number | No | Maximum latest-annual revenue in USD (normalized), 0 or greater | ||
| min_net_income | number | No | Minimum latest-annual net income in USD (normalized; negative allowed) | ||
| min_total_assets | number | No | Minimum latest-annual total assets in USD (normalized), 0 or greater | ||
| form_filed | string | No | Exact form-type filter; keeps only companies that have ever filed this form, e.g. 10-K, 8-K | ||
| min_insider_txn_count_90d | integer | No | Minimum insider (Form 3/4/5) transaction count in the trailing 90 days, 0 or greater | ||
| sort | string | No | Sort enum: relevance, name_asc, revenue_desc, net_income_desc, filing_recent_desc, insider_activity_desc Allowed values: relevance, name_asc, revenue_desc, net_income_desc, filing_recent_desc, insider_activity_desc. | ||
| page | integer | No | 1 | Page number, defaults to 1 | |
| page_size | integer | No | 20 and maxes at 100 | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/sec-companies/search?q=coffee&has_financials=true&sort=relevance&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "sec-companies",
"items": [
{
"cik": 320193,
"cik_padded": "0000320193",
"name": "Apple Inc.",
"tickers": [
"AAPL"
],
"primary_ticker": "AAPL",
"exchange": [
"Nasdaq"
],
"sic": "3571",
"sic_description": "Electronic Computers",
"entity_type": "operating",
"filing_count": 342,
"latest_filing_date": "2025-10-31",
"forms_filed": [
"10-K",
"10-Q",
"8-K",
"4"
],
"latest_annual_fiscal_year": 2024,
"latest_annual_revenue": 391035000000,
"latest_annual_net_income": 93736000000,
"revenue_band": "over_10b",
"insider_txn_count_90d": 6
}
],
"page": 1,
"page_size": 20,
"total": 1,
"sort": "relevance"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.secCompaniesSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.SecCompanySearchResponse | No | ||||
| data.dataset | string | No | Identifier of the dataset queried (`sec-companies`). | |||
| data.items | array | No | Matching SEC-registered company records on this page. | |||
| data.items[].cik | integer | No | SEC Central Index Key of the company. Use it with the company item endpoint. | |||
| data.items[].cik_padded | string | No | CIK zero-padded to 10 digits, usually with a `CIK` prefix, such as `CIK0000320193`. | |||
| data.items[].crawled_at | string | No | Time the company record was last collected, in UTC (RFC 3339). | |||
| data.items[].entity_type | string | No | Entity type EDGAR reports for the filer, such as `operating`. | |||
| data.items[].exchange | array | No | Stock exchanges the company is listed on, as EDGAR reports them, such as `Nasdaq` or `NYSE`. | |||
| data.items[].filing_count | integer | No | Number of filings the company has on EDGAR. | |||
| data.items[].financials_synced_at | string | No | Time the financial figures were last updated, in UTC (RFC 3339). | |||
| data.items[].fiscal_year_end | string | No | Last day of the company's fiscal year as month and day (MMDD), for example `0928`. | |||
| data.items[].former_names | array | No | Names the company filed under previously. | |||
| data.items[].forms_filed | array | No | Distinct SEC form types the company has filed. | |||
| data.items[].insider_last_transaction_at | string | No | Date of the most recent insider transaction in the last 90 days. | |||
| data.items[].insider_net_shares_90d | number | No | Shares insiders acquired minus shares they disposed of over the last 90 days. Negative when more were sold. | |||
| data.items[].insider_txn_count_90d | integer | No | Number of insider transactions reported over the last 90 days. | |||
| data.items[].latest_annual_fiscal_year | integer | No | Fiscal year of the latest annual financial figures. | |||
| data.items[].latest_annual_net_income | number | No | Net income for the latest fiscal year, in the filer's reporting currency. | |||
| data.items[].latest_annual_net_income_usd | number | No | Net income for the latest fiscal year, converted to US dollars at a fixed reference rate. | |||
| data.items[].latest_annual_revenue | number | No | Revenue for the latest fiscal year, in the filer's reporting currency. | |||
| data.items[].latest_annual_revenue_usd | number | No | Revenue for the latest fiscal year, converted to US dollars at a fixed reference rate. | |||
| data.items[].latest_annual_total_assets | number | No | Total assets at the end of the latest fiscal year, in the filer's reporting currency. | |||
| data.items[].latest_annual_total_assets_usd | number | No | Total assets at the end of the latest fiscal year, converted to US dollars at a fixed reference rate. | |||
| data.items[].latest_filing_date | string | No | Date of the company's most recent filing, in YYYY-MM-DD format. | |||
| data.items[].latest_quarterly_fiscal_year | integer | No | Fiscal year of the latest quarterly financial figures. | |||
| data.items[].latest_quarterly_revenue | number | No | Revenue for the latest reported quarter, in the filer's reporting currency. | |||
| data.items[].name | string | No | Company name as registered with the SEC. | |||
| data.items[].primary_ticker | string | No | Main stock ticker symbol of the company. | |||
| data.items[].recent_filings | array | No | Most recent filings of the company, newest first. | |||
| data.items[].recent_filings[].accession_number | string | No | SEC accession number that uniquely identifies the filing. | |||
| data.items[].recent_filings[].filing_date | string | No | Date the filing was submitted to the SEC, in YYYY-MM-DD format. | |||
| data.items[].recent_filings[].form | string | No | SEC form type of the filing, such as `10-K`, `10-Q` or `8-K`. | |||
| data.items[].recent_filings[].primary_doc_url | string | No | URL of the filing's main document on SEC.gov. | |||
| data.items[].reporting_currency | string | No | Native-currency figures are exactly as the filer reported them (see ReportingCurrency); the *USD fields are the same values converted at fixed reference rates so they can be sorted, banded and range-filtered ACROSS currencies. Screen on the USD fields; display the native value + currency. | |||
| data.items[].revenue_band | string | No | Size band of the latest annual revenue in US dollars: `under_1m`, `1m_10m`, `10m_100m`, `100m_1b`, `1b_10b`, `over_10b` or `unknown`. | |||
| data.items[].schema_version | integer | No | Version of the record format. | |||
| data.items[].seed_source | string | No | Label of the SEC company list this record was first built from. | |||
| data.items[].sic | string | No | Standard Industrial Classification code of the company. | |||
| data.items[].sic_description | string | No | Plain-text description of the company's SIC code. | |||
| data.items[].state_of_incorporation | string | No | Code of the state or country where the company is incorporated. | |||
| data.items[].submissions_synced_at | string | No | Time the filing history was last updated, in UTC (RFC 3339). | |||
| data.items[].tickers | array | No | All stock ticker symbols of the company. | |||
| data.page | integer | No | Page number returned. | |||
| data.page_size | integer | No | Number of items per page. | |||
| data.sort | string | No | Sort order applied. | |||
| data.total | integer | No | Total number of records matching the filters. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/sec-companies/search?q=coffee&has_financials=true&sort=relevance&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"