API Reference

The complete specification for all 50 endpoints: every parameter, every response field, every type. For task-oriented walkthroughs and worked examples, read the guides instead.

Base URL

Every endpoint lives under one host. The path identifies the API, and the reference page for each endpoint gives its exact URL and method.

https://api.sec-api.io

Authentication

Authenticate every request with your API key, either as an Authorization header or as a token query parameter. The header is preferred. Do not prefix the key with Bearer or any other word. Use the query parameter only where a header cannot be set, such as opening a URL directly in a browser.

curl -X POST https://api.sec-api.io \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "ticker:TSLA", "from": "0", "size": "10" }'

Request format

Search endpoints take a JSON body in a POST request and require Content-Type: application/json. Retrieval endpoints, which fetch one known object, take GET with the identifier in the URL or query string. Each endpoint page states which it uses.

Pagination and sorting

Search endpoints page with from and size. Page by incrementing from by the value of size until no further results come back.

  • size returns at most 50 records per response
  • from reaches 10000, which caps a single query at 10000 records. Split the query by date range to go beyond it
  • total.value is capped at 10000. A relation of gte means the true count is higher
The second page of 50 results
{ "query": "formType:\"10-K\"", "from": "50", "size": "50", "sort": [{ "filedAt": { "order": "desc" } }] }

Status codes

200Success. The response body holds the result.
400The request body could not be parsed, or a search expression is malformed.
403The API key is missing or not valid.
404The requested object does not exist.
429Too many requests. Slow the request rate and retry.
500Server error. Retry, and report it if it persists.

Endpoints

Broker-dealers

FOCUS reports filed by broker-dealers.