Find the plan that fits your use case.
All subscription plans come with unlimited access to all our APIs.
$49 / mo (billed annually) or
$55 / mo (billed monthly)
The license covers startups with less than 5 employees, individual developers and researchers at universities. Use cases include:
$199 / mo (billed annually) or
$239 / mo (billed monthly)
The license covers business use cases for internal usage. For example:
Talk to us about custom plans tailored to your enterprise needs.
If you're looking for a redistribution license, multiple API keys per account, priority level 1 support, or unlimited data volume, please contact us. Use cases include:
Please contact us at support@sec-api.io
if you have any questions or need help getting started.
Compare Plans | Personal & Startups | Business Internal Use | Enterprise & Institutions |
---|---|---|---|
Usage | Personal.
For startups: business internal. | Business internal only. | Business internal +
redistribution and reselling. |
API Tokens | 1 | 1 | Custom |
Included Data Download Volume per Month | 5 GB | 15 GB | Custom |
Additional Data Volume per Month | $0.30 per GB | $0.30 per GB | - |
Products | |||
Sandbox Testing | |||
Historical SEC Filing Data Access | 1993 to present (30+ years) | 1993 to present (30+ years) | 1993 to present (30+ years) |
Supported EDGAR Form Types | All 400+ | All 400+ | All 400+ |
New Filings Availability | < 300 milliseconds | < 300 milliseconds | < 300 milliseconds |
SEC Filings Query API | |||
SEC Filings Full-Text Search API | |||
Real-Time Filing Stream API | |||
Download & PDF Generator APIs | |||
XBRL-to-JSON Converter API | |||
Financial Statements | |||
10-K/10-Q/8-K Extractor API | |||
Form 3/4/5 - Insider Trading Data | |||
Form 13F - Institutional Holdings Data | |||
Form 13D/13G - Activist & Passive Investors Data | - | ||
Form N-PORT Data API | - | - | |
Form S-1/424B4 Structured Data API | |||
Form D - Exempt Offerings Data API | |||
Form 8-K Structured Data API | |||
Executive Compensation Data | |||
Directors & Board Members Data | |||
Float & Outstanding Shares Data API | - | ||
Company Subsidiariy API | - | ||
CIK/CUSIP/Ticker Mapping API | |||
EDGAR Entities Database | |||
AAER Database | |||
SRO Filings Database | |||
Investment Advisor & Form ADV Data | - | - | |
API Rate Limits | |||
Query API | 20 per second per API key | 40 per second per API key | Custom |
Full-Text Search API | 10 per second per API key | 20 per second per API key | Custom |
10-K/10-Q/8-K Extractor API | 10 per second per API key | 20 per second per API key | Custom |
XBRL-to-JSON Converter API | 10 per second per API key | 20 per second per API key | Custom |
Mapping API | 20 per second per API key | 40 per second per API key | Custom |
Filing Download API | 7,000 in 5 minutes per API key | 15,000 in 5 minutes per API key | Custom |
Billing | |||
Payment Methods | Credit Card | Credit Card | Credit Card, Wire Transfer |
Payment Terms | Net 0 | Net 0 | Net 0 with credit card or max. Net 30 |
Billing Cycle | Monthly, Annually | Monthly, Annually | Annually, Multi-Year |
Terms of Service | Our standard terms apply | Our standard terms apply | Custom terms if required |
NDA | Our standard NDA applies | Our standard NDA applies | Custom NDA if required |
Processing of Purchase Orders | - | - | |
Processing of DDQs | - | - | |
Onboarding in Customer’s ERP | - | - | |
Invoicing before Pay | An automatic PDF invoice with the address and billing details you provide is generated upon payment and can be downloaded from your account. | ||
How to Subscribe & Pay | Log in to your account, click the "Upgrade" button, select your preferred plan and billing cycle, provide your payment details, and click the "Subscribe" button. | Credit card: provide your payment details by using the Stripe payment link that will be shared with you. Wire transfer as instructed on the invoice | |
Support | |||
Support Level | Basic | Level 2 | Level 1 Priority |
Availability | M-F 9:30 a.m. - 4 p.m. ET | M-F 9:30 a.m. - 4 p.m. ET | M-F 9:30 a.m. - 4 p.m. ET |
Response Time | Best effort | Within 2 business days | Within 1 business day |
Email Support | |||
Phone Support | - | - | |
Onboarding & Premium Support | - | - |
The SEC.gov free API is an excellent initiative towards open public data and we're a big supporter. Let's look at some fundamental differences.
The SEC's primary focus is the regulation of financial markets and oversight of such. The SEC is a government agency, aiming to make markets more fair and more efficient to the extent possible, reducing fraud and introducing new financial regulations and laws.
The SEC is not a technology company and does not provide API and customer/product support. The SEC.gov free API does not come with uptime guarantees nor does it inform you about upcoming API changes, including breaking changes. The majority of people working at the SEC are not software developers working and improving the API products.
While the SEC's focus is to increase fairness in financial markets and reduce fraud by utilizing state of the art technology, the SEC does not primarily develop and research such technologies in house but mostly relies on external technology vendors.
We're a private technology company and our primary focus is the development of our SEC-API products and services, providing best-in-class customer support and launching new features based on customer feedback. As a commercial enterprise, the financial resources at our disposal are used for product development, maintenance and customer support.
Another fundamental difference is the number of API features. Here is a short list of features the SEC.gov free API doesn't provide: Query API, Stream API, Full-Text Search API, Extractor API, Executive Compensation Data API, Institutional Ownership API, full XBRL-to-JSON conversion, NPORT-P Data API, ADV and Float API.
Differences in other APIs include:
It always makes our day when we hear this question. Financial data providers have created an unhealthy, inefficient and unfair market environment over the last 15 years, milking financial institutions and big money by selling data sets at horrendous mark ups ranging all the way up to 13,000%.
In the mid-to-late 2000's, it made more or less sense to sell the data at high gross margins because the costs involved in creating and storing it was exorbitantly high. Ten years ago, Amazon Web Services and cloud computing in general was still in its infant stage and running high CPU-load tasks to extract and standardize data was actually really expensive. So was storing and querying peta-bytes of data. Technologies didn't exist to make the data mining process more cost efficient.
Times have changed, and thanks to Moore's law we're now able to mine the same data, at much better quality, faster and much more efficiently. Hence, reducing the overall costs by a factor of 60 to 80. We happily forward those cost savings to our customers.
Financial data providers from the dark ages unfortunately got stuck in their inefficient, high-cost environment (while partially benefiting from a reduction in computing and storage costs) and never explored the options to innovate and reduce costs.
Yes, we do. Institutional onboarding and compliance processes can take between 6 to 12 months to complete and we're happy to give you full access to all our products in the meantime - even if you end up not signing a contract with us.
How it works: you can create a free account here in less than 60 seconds and start using our products with your free API key. If you consumed all of your free credits, you can simply send us an email to support@sec-api.io or your point of contact. The prerequisite for upgrading your account free-of-charge is a confirmation of interest to purchase a license(s). This is a non-binding confirmation, but helps us to plan better.
We upgrade your account free of charge so that you and your team can continue testing our products while you evaluate for product fit or while we start the onboarding process in case you have already made a purchase decision.
If you haven't reached the point to make a confident purchase decision at the time we upgrade your account, no problem at all. Your maximum free-of-charge trial length is 3 months. Generally, every customer makes a purchase decision in this time period.
After your three-month trial expires, we need a simple purchase confirmation notice via email to extend your trial until we complete the onboarding process and sign the contact. In case you decide to not proceed with us after the trial expires, no problem again - you're not charged anything and your API key expires. Our standard terms of service apply during your free trial period.
The contract and invoicing period will include your free-of-charge trial starting from the date of your purchase confirmation notice.
For example, you signed up for a free API key in January 2021 and confirmed your purchase decision in March 2021. The onboarding process including contract term negotiation with legal starts in March 2021 and we complete signing the contract in October 2021. The invoice issued in October 2021 (six month after confirmation) includes the initial free-of-charge trial period starting in March 2021 so that you can continue using all data utilized during March and October.
Yes, we offer a reseller and partner program and are very picky about our relationships (see our take in “Why is your pricing so cheap?”). We look for partners with extensive industry expertise, not measured by years in the industry, who are genuinely interested in the financial data market with an outstanding track record. Our partners are our extended faces and we're not here to make a quick buck, but to provide high quality products and services.
If that sounds like you and your team, please contact us at partner@sec-api.io.
The cost of a license for educational institutions, such as universities or online course providers, are generally linked to the number of API keys your class or faculty is looking for. Educational licenses always come with a discount as we're huge fans of supporting learners and early-stage developers. Feel free to contact us at support@sec-api.io to learn more.
Related questions:
Our license tiers come with different request limits per API. You can find all rate limits under “API Rate Limits” in the “Compare Plan” section on our pricing page. We aim to constantly increase the capacity of our infrastructure to provide you with as much request quota as technically feasible.
Sorry to hear that! In rare cases, your bank or our payment system rejects your credit card to reduce the risk of fraud. Feel free to reach out to us at support@sec-api.io and we should get you set up in no time.
There are generally two reasons why. The first and most common reason is that the API key is not used as described in the documentation. No worries, it happens. Please ensure to copy the entire key from your account profile. Also please don't add a prefix such as “Bearer” to your API key when setting it as a header value. The second reason why your API key might not work anymore is because you consumed your free trial credits. In this case, you see a 429 error with a message explaining that you exceeded your trial requests.
Also note, our Stream API is only available to users with an active subscription.
It rarely happens, but it happens. Feel free to report your observation to support@sec-api.io and we will investigate it straight away. Data quality is the number priority for us and we usually react within less than 60 minutes if something like this comes up.
The Query API returns up to 50 filings per request. The size
parameter defines the maximum number of filings to be returned per search query and cannot exceed 50. So let's set size
to 50.
The from
parameter defines the starting position of your search result, much like an index of an array. Set from
to 0, if you send your first query to return the first 50 matching filings starting from search position 0. Next, set from
to 50 and make another request to return the next 50 matching filings. Then set it to 100, 150, 200 and so on. This way you paginate through the universe of matching filings and can get the Query API to return all matches.
See also: How to download all 10-Q filings filed in the last 10 years?
Yes, absolutely. Our Executive Compensation Data API does this job for you. The API already extracted and standardized all compensation data as reported in DEF 14A filings. You can use the API to query all compensation items of the last 15 years per company or use more complex search queries.
There are two strategies you can use. The first option is to use our Query API and list the filing by accession number. You can extract the accession number from the URL of the filing. The response of the Query API includes the “formType” property that indicates the type of filing, either 10-Q for quarterly or 10-K for annual. You also find 20-F filings representing quarterly reports filed by foreign companies and 40-F filings representing annual reports.
Alternatively, our XBRL-to-JSON API also includes the filing type in the “CoverPage” property.
Our systems index new filings as soon as they are published. ThefiledAt
property in the JSON data of a filing represents the “Accepted” value on EDGAR. The filedAt
value does not represent the time at which the filing was indexed or when the filing was made available to the public. In other words, filedAt
and “Accepted” can represent a moment in time that was 30 minutes ago while the filing was released to the public just 10 seconds ago.
The best example to illustrate this case are EFFECT filings. The SEC publishes filings between 6am and 10pm EST on business days. EFFECT filings are accepted at 00:15 am (quarter past midnight) daily, but published at 6am the earliest. For example, the filedAt
property is set to “2022-06-16 00:15” while the filing is distributed via our Stream API at 6:00am the same day. The EFFECT filing was not published at 00:15am, just accepted by the SEC.
Question continued: your Query API returns the filing with the accession number 0001829126-22-007096 with a "filedAt" of "2022-03-31T08:36:05-04:00", but if you go to the SEC's official website, it shows "2022-03-31T08:36:05.000Z" (TZ vs ET).
Answer: This is a common challenge with timezone conversion. All date times on any index page of SEC EDGAR are displayed in Eastern Time. The timezone is omitted and this results in the misconception of the timezone being UTC (=Z) instead of Eastern Time.
The time you mentioned, “8:36 Z” am, was most likely incorrectly converted by your browser or a custom crawler you used to generate this timestamp. Either way, the correct time should be “8:36 ET” am.
The “filedAt” property in our systems always includes the timezone offset “-04:00” (Eastern Daylight Time) or “-05:00” (Eastern Standard Time) to solve this problem. This Wikipedia article provides more information on the EST vs EDT topic.
That's a simple two step process. First, you want to use our Query API to list all filings that include exhibit 10 and to get the URLs of those exhibits. Next, you can use our Download API and iterate over all exhibit URLs from step 1 to download the material contracts. A complete Python tutorial illustrating the approach is available here.
Starting with the Query API to find all filings that include exhibit 10, here is an example query:
1
{
2
"query": "formType:\"10-K\" AND documentFormatFiles.type:\"EX-10\"*",
3
"from": "0",
4
"size": "20",
5
"sort": [{ "filedAt": { "order": "desc" } }]
6
}
Exhibit 10 is included in the documentFormatFiles
array of a filing. The type
property of an exhibit 10 item in the array is a variation of EX-10
, for example EX-10 (VI)
or EX-10.22
.
Our sandbox allows you to test the query without writing any code and to fetch filings from the SEC corpus.
In the second and final step, the Download API is used to download all material contracts using the URLs generated in step 1.
The Mapping API resolves all publicly available CIKs. In some cases, a filer agent doesn't have a public presence because it only files filings on behalf of another entity. Even though the SEC issued a CIK to the agent, its CIK is not publicly published.
Yes, we provide all SEC EDGAR files of any filing, including XBRL files, XML, PDF, HTML, TXT, images in filings, Excel financial sheets, and many more. In other words, everything you find on SEC EDGAR (without exception), you find with us.
A basic tutorial on how to convert any filing or exhibit into PDF can be found here.
Yes, we do. Try this query in our sandbox:
1
{
2
"query": "ticker:TSLA AND (formType:\"10-Q\" OR formType:\"10-K\")",
3
"from": "0",
4
"size": "20",
5
"sort": [{ "filedAt": { "order": "desc" } }]
6
}
Sorry about that! Your email address was most likely blocked by our security systems. Please try using a different email address or contact support@sec-api.io for help.
We're sorry to hear that. As per our terms that you accepted upon signing up for a subscription, we do not offer refunds for subscriptions that have already renewed. However, you can cancel the renewal of your subscription at any time in your account settings after logging in.
The free trial API key is valid for 100 calls total.
Yes, we do. We cover all filings filed with the SEC. A complete list of all filings can be found here.
Yes, we update all historical filings in our Query API database as soon as one of the following events occur:
You can find a simple Python example on how to export the Query API results to a CSV file here.
Yes, you can download all XSD files of annual reports. Please have a look at the Python example here.
Our Query API lets you search for filings by exhibit type. An exhibit type query returns all filings that have at least one attached exhibit matching your provided exhibit identifier. The filing meta data also includes exhibit information, such as the URL and type. Two examples of such queries can be found here:
Related questions:
A complete list of all exhibits per SEC form type can be found here. The table lists all exhibits across most common form types, such as 10-K, 10-Q and more.
Important to consider is the absence of standardized exhibit identifiers in filings. For example, if you're looking for all 10-K filings that include exhibit 21 (list of subsidiaries), you would need to search for variants of the exhibit type
property to list all such filings. Exhibit 21 types
are usually one of the following: EX-21
,EX-21.1
, EX-21.01
. Our sandbox includes an example illustrating the structure of such a search query.
You can find the "CommonStockSharesAuthorized" item in the "BalanceSheetsParenthetical" or "BalanceSheets" object returned by our XBRL-to-JSON API. The API removes trailing "us-gaap:" prefixes to standardize the keys in each object.