SEC EDGAR API endpoint
Returns a company's recent insider transactions from Form 3/4/5 ownership filings (owner, role, security, shares, price). Provide cik or ticker.
/sec/insiderReturns a company's recent insider transactions from Form 3/4/5 ownership filings. Official SEC data.
Query parameters:
cik or ticker (one required) — company identifier.limit (optional, default 10, max 30) — max transactions.Response includes transactions[]: accession_number, form, filing_date, owner_name, owner_title, is_director, is_officer, security_title, transaction_date, code, acquired_or_disposed, shares, price_per_share, shares_owned_after, filing_url.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| accession_number | 20 | 0001140361-26-038674 (7), 0001140361-26-038669 (6), 0001140361-26-038672 (4) and 2 more |
| form | 20 | 4 |
| filing_date | 20 | 2026-10-05 to 2026-10-08 |
| owner_name | 20 | |
| owner_title | 20 | |
| is_officer | 20 | true in 20 of 20 |
| security_title | 20 | Common Stock in all 20 |
| transaction_date | 20 | 2026-10-01 to 2026-10-06 |
| code | 20 | |
| acquired_or_disposed | 20 | D (16), A (4) |
| shares | 20 | 2,399 to 374,541, median 40,764 |
| price_per_share | 15 | 330.32 to 334.05, median 332.16 |
| shares_owned_after | 20 | 39,593 to 3,654,959, median 183,199 |
| filing_url | 20 | sec.gov |
| is_director | 13 | true in 13 of 13 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| cik | string | No | SEC CIK (numeric or zero-padded) | 320193 | |
| ticker | string | No | Ticker symbol (alternative to cik) | AAPL | |
| limit | integer | No | Max transactions, default 10, max 30 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sec/insider?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"cik": 320193,
"ticker": "AAPL",
"name": "Apple Inc.",
"count": 1,
"transactions": [
{
"accession_number": "0001140361-26-025622",
"form": "4",
"filing_date": "2026-06-17",
"owner_name": "Newstead Jennifer",
"owner_title": "SVP, GC and Secretary",
"is_officer": true,
"security_title": "Common Stock",
"transaction_date": "2026-06-15",
"code": "M",
"acquired_or_disposed": "A",
"shares": 30104,
"shares_owned_after": 57784
}
],
"source_url": "https://data.sec.gov/submissions/CIK0000320193.json"
}
}Request schema
No body schema
Response schema
#/definitions/sec.insiderResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sec.InsiderResponse | No | ||||
| data.cik | integer | No | Company's SEC Central Index Key (CIK) number. | |||
| data.count | integer | No | Number of transactions returned. | |||
| data.name | string | No | Company name as registered with the SEC. | |||
| data.source_url | string | No | URL the data was read from. | |||
| data.ticker | string | No | Stock ticker symbol of the company. | |||
| data.transactions | array | No | Insider transactions from recent Form 3, 4 and 5 filings. | |||
| data.transactions[].accession_number | string | No | SEC accession number that uniquely identifies the filing. | |||
| data.transactions[].acquired_or_disposed | string | No | `A` if the insider acquired the shares, `D` if disposed of them. | |||
| data.transactions[].code | string | No | ||||
| data.transactions[].filing_date | string | No | Date the filing was submitted to the SEC, in YYYY-MM-DD format. | |||
| data.transactions[].filing_url | string | No | Link to the filing's index page on sec.gov. | |||
| data.transactions[].form | string | No | Ownership form type: `3`, `4`, `5` or an amendment such as `4/A`. | |||
| data.transactions[].is_director | boolean | No | Whether the insider is a director of the company. | |||
| data.transactions[].is_officer | boolean | No | Whether the insider is an officer of the company. | |||
| data.transactions[].is_ten_percent_owner | boolean | No | Whether the insider owns more than 10 percent of the company's shares. | |||
| data.transactions[].owner_name | string | No | Name of the insider who filed. | |||
| data.transactions[].owner_title | string | No | Insider's job title at the company, as stated on the filing. | |||
| data.transactions[].price_per_share | number | No | Price per share in the transaction. | |||
| data.transactions[].security_title | string | No | Title of the security traded, such as `Common Stock`. | |||
| data.transactions[].shares | number | No | Number of shares in the transaction. | |||
| data.transactions[].shares_owned_after | number | No | Number of shares the insider owns after the transaction. | |||
| data.transactions[].transaction_date | string | No | Date the transaction took place, in YYYY-MM-DD format. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/insider?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"