SEC EDGAR API endpoint
Searches the full text of SEC EDGAR filings, filtered by form and date, with pagination. Free where incumbents gate full-text search behind paid tiers.
/sec/full-text-searchQuery parameters:
q (required) — search query (supports quoted phrases).forms (optional) — comma-separated form types, e.g. 10-K.from, to (optional) — filing-date bounds (YYYY-MM-DD).page (optional, default 1) — 1-based page (10 hits/page).Response includes hits[]: accession_number, cik, company_names, form, filed_at, document_url.
| Field | Filled in, of 100 checked | Values in the sample |
|---|---|---|
| accession_number | 100 | “0001161697-21-000289” and 93 other values |
| cik | 100 | 6,951 to 2,017,758, median 1,498,148 |
| company_names | 100 | median 1 entry |
| form | 100 | 10-K in all 100 |
| filed_at | 100 | 2011-03-31 to 2026-10-09 |
| document_url | 100 | sec.gov |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query (supports quoted phrases) | artificial intelligence | |
| forms | string | No | Filter by form types, comma-separated | 10-K | |
| from | string | No | Earliest filing date (YYYY-MM-DD) | ||
| to | string | No | Latest filing date (YYYY-MM-DD) | ||
| page | integer | No | 1-based page number, default 1 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sec/full-text-search?q=artificial+intelligence&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "artificial intelligence",
"total": 10000,
"page": 1,
"count": 1,
"hits": [
{
"accession_number": "0001161697-21-000289",
"cik": 1498148,
"company_names": [
"Artificial Intelligence Technology Solutions Inc. (AITX) (CIK 0001498148)"
],
"form": "10-K",
"filed_at": "2021-06-01",
"document_url": "https://www.sec.gov/Archives/edgar/data/1498148/000116169721000289/ex_99-1.htm"
}
],
"source_url": "https://efts.sec.gov/LATEST/search-index?forms=10-K&q=artificial+intelligence"
}
}Request schema
No body schema
Response schema
#/definitions/sec.fullTextResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sec.FullTextSearchResponse | No | ||||
| data.count | integer | No | Number of hits returned on this page. | |||
| data.hits | array | No | Filing documents that match the query. | |||
| data.hits[].accession_number | string | No | SEC accession number of the filing that contains the match. | |||
| data.hits[].cik | integer | No | SEC Central Index Key (CIK) number of the filing company. | |||
| data.hits[].company_names | array | No | Names of the companies named on the filing, as EDGAR lists them. | |||
| data.hits[].document_url | string | No | Link to the matching document on sec.gov. | |||
| data.hits[].filed_at | string | No | Date the filing was submitted, in YYYY-MM-DD format. | |||
| data.hits[].form | string | No | SEC form type of the matching document, such as `10-K`. | |||
| data.page | integer | No | Page number returned, starting at 1. | |||
| data.query | string | No | Search text that was run. | |||
| data.source_url | string | No | URL the data was read from. | |||
| data.total | integer | No | Total number of matches reported by EDGAR full-text search. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/sec/full-text-search?q=artificial+intelligence&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"