Pricing

Find the plan that fits your use case.
All subscription plans come with unlimited access to all our APIs.

Free Tier

Your first 100 API calls are on us. You don't pay. It's free.

Personal &
Startups

$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:

  • Professors teaching financial engineering classes with class-wide access to all APIs for students
  • PhDs writing research papers, published in journals or presented at conferences
  • Early-stage startups and self-starters developing minimal viable products

Business
Internal Use

$199 / mo (billed annually) or

$239 / mo (billed monthly)

The license covers business use cases for internal usage. For example:

  • Equity research, investment advisors, family offices
  • Hedge funds monitoring registration statements in real-time
  • Law firms accessing administrative and legal proceedings
  • Buy/sell-side analysts at banks conducting research
  • Executive recruiters screening employment agreements and compensation data

Enterprise &
Institutions

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:

  • Exchanges complying with regulatory requirements
  • Stock brokers providing their users with live access to SEC filings
  • Distribution providers reselling data through APIs or other means, for example, CSV downloads
  • Websites and apps displaying data behind a paywall or where a user requires a license to access the data

Please contact us at support@sec-api.io
if you have any questions or need help getting started.

Compare PlansPersonal &
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
-
-

Frequently Asked Questions

What is the difference between the SEC.gov free API and your API?

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:

  • Query API vs EDGAR quarterly/daily index files: the quarterly and daily indices are a good start but only provide a very limited amount of properties compared to our Query API. If you rely on the index files, such as master.idx, in your production environment, please be aware that some files have data corruption and data inconsistency issues.
  • Stream API vs SEC.gov filing RSS feed: the pull-based RSS feed does not provide a real-time stream of new filings and about 8% of filing types are not published at times via the RSS feed. In contrast, our Stream API provides a real-time, push-based stream of all new filings including all properties available in the Query API.
  • Download API vs EDGAR downloading: you can directly download all filings and exhibits from SEC EDGAR with a maximum rate of 10 requests per second. If you exceed the limit, your IP is blocked for 10 minutes. Our Download API supports up to 40 requests per second. If you exceed the limit per second, your API key is blocked for the remaining milliseconds. As soon as the next second starts, you can download up to 40 filings and exhibits again. No 10-minute wait time. All files are hosted on our own infrastructure, making it possible to process gigabytes of data in milliseconds.
  • Mapping API: the SEC.gov CIK/ticker mapping file is a good start but lacks multiple important properties such CUSIP, exchange, security type, industry and sector and also does not include historical mappings.

Why is your pricing so cheap?

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.

Do you provide a free, extended trial for institutions?

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.

Do you offer a partner or reseller program?

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.

What does the institutional license for a university look like?

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:

  • How can I and my students register for the paid subscription as educational institution?

What is the request per second limit?

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.

I'm unable to subscribe.

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.

I'd like to test your service but it doesn't seem like my API key works.

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.

I found an inconsistency in a data set. Where can I report this?

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.

How do I get the Query API to return more than 50 results?

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?

I'm looking for an API that supports extraction of Executive Compensation from DEF 14A filings, and wondering if this is something your API can help with?

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.

I'm using your API to receive fundamental data, but I don't understand how to detect the type of report (quarterly or annual). Could you help me?

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.

I observed some filings having “filedAt” times that are much earlier than the time the filings were published. Is there any delay in your Query API or Stream API?

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.

I'm noting a discrepancy in the filedAt field vs what the SEC website is publishing. Why is that?

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.

I am interested in searching and downloading material contracts of public companies (exhibit 10) but I am not sure how to do that.

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:

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 returns an empty result for a filer agent's CIK. Why is the result empty?

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.

With your APIs do you provide PDF, XBRL and HTML files?

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.

Do you support querying multiple form types together? For example, return all 10-K OR 10-Q for a given ticker?

Yes, we do. Try this query in our sandbox:

Example Query
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 }

I can't seem to make an account under my email address.

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.

I forgot to cancel my subscription. Can I get a refund?

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.

Is the free trial API key valid for 100 calls total or per month/year?

The free trial API key is valid for 100 calls total.

Do you also cover Form 20-K filings of foreign companies?

Yes, we do. We cover all filings filed with the SEC. A complete list of all filings can be found here.

Do you update tickers of historical filings when a CIK-ticker combination is updated?

Yes, we update all historical filings in our Query API database as soon as one of the following events occur:

  • A filer is allocated a ticker for the very first time. For example, a pre-IPO filer decides on their ticker.
  • The ticker symbol of a filer changes. For example, a SPAC company changes its ticker.

How do I dump the result of the Query API to a CSV file?

You can find a simple Python example on how to export the Query API results to a CSV file here.

Is there a way to pull only the URL of the XSD file of the annual report?

Yes, you can download all XSD files of annual reports. Please have a look at the Python example here.

How do I search for filings with specific exhibits?

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:

  • How to find and download all exhibits of an SEC filing?

Where do I find a list of all exhibits of a 10-K filing?

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.

How do I extract "us-gaap:CommonStockSharesAuthorized" from the XBRL filing?

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.


Python Code Examples