SEC API Python SDK
secapi-client is the Python client for SEC API filings, statements, ownership data, factor data, and filing sections.
Documentation · Get an API key · Support · Status
Install and make a request
pip install secapi-client
export SECAPI_API_KEY="secapi_live_..."
Create first_request.py:
from secapi_client import SecApiClient
client = SecApiClient()
filing = client.agent_latest_filing(ticker="AAPL", form="10-K")
print(filing["accessionNumber"])
print(filing["filingUrl"])
Run python first_request.py. It prints the latest matching filing's accession number and SEC source URL; both can change after a new filing.
Common requests
company = client.resolve_entity(ticker="AAPL")
filings = client.search_filings(ticker="AAPL", forms="10-K,10-Q", limit=20)
risk_factors = client.agent_section(ticker="AAPL", form="10-K", section_key="item_1a")
income = client.agent_statement("income_statement", ticker="AAPL", period="annual", limit=3)
Flat methods cover the SDK surface. Grouped namespaces including client.entities, client.filings, client.sections, client.search, and client.factors offer discoverable equivalents for common workflows.
Factor response modes
Use response_mode="compact" when you want the smallest useful payload. Compact catalog responses still include readiness/proof summaries. Set include="trust" only when you need the full trust/provenance envelope plus full methodology/materialization/revision/source-rights objects for citations or checks. For catalog/tool-discovery calls, start narrow with category and limit; the full trust envelope can be larger than a simple picker payload.
Configuration and compatibility
SecApiClient() reads SECAPI_API_KEY and optional SECAPI_BASE_URL by default. SECAPI_API_BASE_URL is an alias. Pass bearer_token or set SECAPI_BEARER_TOKEN only for signed-in account endpoints; normal data requests use an API key.
Python 3.11 or newer is required. The legacy OMNI_DATASTREAM_API_KEY, OMNI_DATASTREAM_BEARER_TOKEN, OMNI_DATASTREAM_BASE_URL, and OMNI_DATASTREAM_API_BASE_URL environment variables remain supported for compatibility.
Failures raise SecApiError, which includes status, error code, and request ID. Include the request ID with a support report. See the API documentation for pagination, retries, and complete endpoint coverage.
License
MIT
Metadata
Release files for secapi-client 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| secapi_client-1.1.0.tar.gz | 35.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| secapi_client-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.1 kB
Release files / secapi_client-1.1.0.tar.gz
| Download URL | secapi_client-1.1.0.tar.gz |
|---|---|
| Size | 35.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef588660805d1c2d9a7ef3165510905356374cfa0aa33207851d159fe5e80c21
|
|
BLAKE2b-256 checksum How to use checksums |
1c7e095def071dcbc82a1c00033bdbea46e0d9a6c8f3984455510802cb1c941b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / secapi_client-1.1.0-py3-none-any.whl
| Download URL | secapi_client-1.1.0-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f4770a3a3103ef4b4e5292cdeec4ba04c2dcb0f88ba224b5bef16a45198a401
|
|
BLAKE2b-256 checksum How to use checksums |
9e21205ae5ddd5eef11863946168b801ec45e5c4bf88747db0cdf4981a776372
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|