Intrinio sells financial data through APIs and we get questions about how exactly this works on a weekly basis. It's easy to see how it could be confusing - no one was selling financial data through APIs until recently.

This article covers the following questions/topics in this order:
What Is An API Call?
API Call Limits
API "High-Paging" Requests and Limits
API Bulk Requests and Limits
How Do You Count API Calls?
How Can I Track My Usage?
API Documentation

What Is An API Call?

API stands for Application Programming Interface, and this is just a fancy term for a tool that gets data from a database so a developer can display that data in their application. Intrinio has a massive database of financial information like stock prices, balance sheets, economic data, and etc. Our data feeds, which you can browse in our marketplace, give developers an easy, systematic way to pull that data into whatever program they want to use via a single API.

Pulling data in this manner is called an API call, and its very much like a phone call. The developer calls the database, asks for a specific piece of data, and the database sends back that data. The developer can then use that data in their application.

When you use an application like those Intrinio lists in the marketplace, apps like the Excel add-in or the Intrinio Screener for Excel, the data you are seeing is being "called" from Intrinio's database.

API Call Limits

To use one of Intrinio's APIs or applications, it is necessary to subscribe to the data feed you want to use. In general, more expensive plans allow more API calls, meaning you can access more data in that period of time. 

The various plans a user can subscribe to have different features, such as whether the plan includes redistribution rights, but the savvy user will still want to estimate how many API calls they will need so they can pick the right plan.

API "High-Paging" Requests and Limits

Users are able to make requests with a page_size up to 10,000 for any API request, including JSON and CSV.

Requests with a page offset > 10,000 are limited to the “high-paging” limits. To determine the size of a page offset, multiply page_size by page_number. Keep in mind, the default page size is 100 for all requests, except historical data, which has a default page size of 1,000.

These types of “high-paging” requests are limited 1 request per second for paid users, and 1 request per minute for free users. Some restrictions apply, so please contact us if you need a higher limit.

API Bulk Requests and Limits

The prices endpoint has an optional “bulk=true” parameter. When specified, it will quickly return all available prices for the specified ticker. 

Please note, that when using this parameter, you cannot use any other parameters such as start_date or end_date. 

This “bulk” functionality is limited to 1 request per second for paid users, and 1 request per minute for free users. Your individual limits may differ, so please contact us if you have any questions.

How Do You Count API Calls?

Since Intrinio's plans come in units of API calls, it's important to understand exactly how much data you can get with an API call. For most data types, one API call gets you one data point. For example, =intriniodatapoint("AAPL","ceo") returns Apple's CEO in Excel and charges your US Fundamentals & Stock Prices subscription one API call.

In reality, the Excel application is making this API call when that formula is entered:

https://api-v2.intrinio.com/companies/AAPL/data_point/ceo

A developer building an application would also be charged one API call to get this data.

There are two exceptions to the 1 data point = 1 API call rule. For historical stock prices, it is possible to get up to 100 stock prices in a single API call. For example:

https://api-v2.intrinio.com/securities/AAPL/prices

will get a developer Apple's price history. That call is limited to 100 results per page, each containing the open, low, high, close, volume, and adjusted stock prices. 

Likewise, when an Excel user pulls historical stock prices:

=IntrinioHistoricalPrices("AAPL", "adj_close", 0, "2012-01-01", "2012-12-31")

They will be charged one call. They can then subsequently access then next 100 historical prices for that stock, in this case Apple, without being charged additional calls. This is because the API call that Excel made to get the stock price actually pulled the first 100 prices into memory with a single API call. If you want to get the 101st price (using a sequence of 100), another API call will be made. Thus, Intrinio Excel functions with a "sequence" parameter call the API in 100-record increments.

A developer can get the entire income or balance sheet for a company in a single API call:

https://api-v2.intrinio.com/fundamentals/AAPL-income_statement-2018-Q1/standardized_financials

This API call gets quite a few data points but counts as only a single API call. If a user in Excel queries a balance sheet or income statement, Excel will use the API to pull the entire statement into memory, allowing the user to access that data in subsequent formulas without additional API calls.

How Can I Track My Usage?

Users can track their usage within their account by clicking "Details" on any of the data feeds they are subscribed to, then clicking "Usage" within the subscription details.

Wait, what?

If any of this sounds confusing, and we know it might, check out the API Documentation, or feel free to chat with our team regarding any specific examples or use cases you are facing.

Did this answer your question?