US ETF Current Holdings | Intrinio

US ETF Current Holdings

Provided by First Bridge
Data Explorer

Flexible Access

This data is available via Web API and CSV Download. For enterprise solutions, contact us via chat or at

Detailed Data, Monitored Daily

This feed provides data on all holdings for all ETFs within the United States, including the constituent name, tickers, and weight percentages. The feed is monitored daily and is updated as such. 

First Bridge aggregates constituent data across all US ETF sponsors and standardizes it. The incoming raw data is run through a rules processing engine and checked for gaps & inconsistencies. ETFs are added to the coverage universe when they launch. The First Bridge analyst team monitors the ETF universe globally for new launches, closures, benchmark & expense ratio changes every day.

The First Bridge Philosophy

The key principles that underly First Bridge's data structure are: 

  • Multi-Dimensional: Every ETF in the world is tagged on multiple dimensions. For example, the 'Wisdom Tree International Hedged Dividend Growth ETF' is tagged as 'Equity', 'Developed', 'Ex-US', 'Currency hedged', 'Dividend weighted', 'Growth', etc. This multi-dimensional tagging is of the utmost importance since the analysis of ETFs could start on any of these dimensions. 
  • Consistent: While multi-dimensional tagging is important, a uniform standard must be applied on individual dimensions. For example, on sector & industry, the data stays consistent with the Global Industry Classification System (GICS) hierarchy 
  • Prospectus Based: If an investment manager classifies an ETF as 'growth', then it will be classified as 'growth' within the data. Doing so simplifies the data as there is no industry-wide agreement on how to define specific dimensions (i.e. growth or value). Additionally, it avoids confusion (i.e. if the manager labeled an ETF as 'growth' and it was to be labeled as 'value' within the data lists, it would complicate ETF search and analysis). 
  • Extensible: New types of ETFs are consistently being brought to market. Therefore, First Bridge constantly monitors the ETF universe and has a flexible database where new 'tagging' fields are added as appropriate, all while maintaining consistency on existing fields. 
Have Questions?

Custom Pricing with Intrinio

We offer custom pricing and plans for enterprises and start-ups because we don't think that you should pay an outrageous cost for data you don't use.
With Intrinio, you'll only pay for the data you need an an affordable rate.

US ETF Current Holdings

Request a Quote

Request Sent! Thank You.
{{ submittedText }}
Startup, Major Holdings
Startup, All Holdings
Enterprise, Major Holdings
Enterprise, All Holdings
Yearly, Save 15%
Your Price
Chat with Us
Request a Quote
The options you have selected require a custom quote.
Request Quote
Need to take a test drive?
7 days, 100 API calls, Top 10 holdings only Free Trial
Looking for an enterprise solution?
High limits, custom terms, flexible licensing Contact Us

Frequently Asked Questions

Below you will find the most frequently asked questions about this data feed. We have also curated some resources to help you get started, listed on the right. As always, feel free to chat with us if you have any questions.
What ETFs are covered in this feed?

All US listed ETFs are included in this feed. In total, that amounts to around 2,300 ETFs.

What data is included in the feed?

This holdings feed is updated daily, and includes current only holdings for all US listed ETFs. For each ETF constituent, it also offers almost 30 items; including, the constituent name, identifiers, and weight percentages. 

- or -
Data Categories

Intrinio offers a variety of ways to access this data feed. Choose your preferred access method below:


API Documentation

There are two versions of our API. We recommend "v2". To learn which one may be right for you, click here.
API v1
API v2

{{ docSectionTitle }} Documentation

Welcome to the Intrinio Financial Data Platform! Through our Financial Data Marketplace, we offer a wide selection of financial data feeds sourced by our own proprietary processes as well as from many data vendors. The Intrinio API uses HTTPS verbs and a RESTful endpoint structure, which makes it easy to request data from Intrinio. Basic Authentication is administered over HTTPS. Responses are delivered in JSON format.

Getting Started

First, you'll need an Intrinio account for your API access credentials.

Sign Up for API Access

If you have an Intrinio account you can view your Account API Access Keys here.

For a quick-start guide to our API, please see the tutorial.

If you need additional help using the API, chat with us.



You can find your API Key(s) on your Account API Access Keys page.

You must include a valid API Key with every request in-order to access to the API.

If your API Key is not authorized, a status code of 401 will be returned.

URL Parameter Authentication

Simply include your API Key in the HTTPS request by specifying an api_key URL parameter set to the value of your API Key.

For example:{{base64_encoded_api_key}}

* Showing your API Key.
* Example API Key is not valid.

Authorization Header Authentication

Include your API Key in the HTTPS request by specifying an Authorization header with the value:

Bearer [API_KEY]

Simply replace [API_KEY] with your valid API Key.

For example:

Authorization: Bearer {{base64_encoded_api_key}} Authorization: Bearer OjA1ZTFiNGZiN2U4Y2JlNjAwNzE0OGQ4YjM2YTFmNjRk

* Showing your API Key.
* Example API Key is not valid.


For public/untrusted environments (such as client-side JavaScript), use our public key authentication over HTTPS.

You can create a Public Access Key on your Account Access Keys page. Make sure to specify all domains from which this key may be used. Any domain not listed will be rejected by the API. For development purposes, localhost is listed as a domain by default. Make sure to delete this domain before going to production.

To include a public key in your HTTPS request, specify it as the value of an X-Authorization-Public-Key header.

If your public key is not authorized, a status code of 401 will be returned.

Response Codes

Intrinio uses normal HTTP response codes to indicate the success or failure of an API request. A response code of 200 indicates success and codes in the 4xx range indicate an error that failed given the information provided, and codes in the 5xx range indicate an error with Intrinio’s servers (these are rare).

The Intrinio API uses the following error codes:

Code Meaning
200 OK – Everything worked as expected
401 Unauthorized – Your User/Password API Keys are incorrect
403 Forbidden – You are not subscribed to the data feed requested
404 Not Found – The endpoint requested does not exist
429 Too Many Requests – You have hit a limit. See limits
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – You have hit your throttle limit or Intrinio may be experiencing high system load.


Often there is too much information in our system to serve in a single request of reasonable size. Therefore we limit results to a certain number per request and provide you with paging information which can be used to retrieve the remaining pages of data.

In the Web API, you will notice that most requests contain paging information.

File Downloads may have paging information as well, listed in the first row.

In order to request the next page of data, append a page_number parameter to your request:


The Intrinio API employs several reasonable limits to ensure that stable, reliable service is provided to all users. These limits can vary based on the type of API request you are making. If you hit an API limit, the response will contain a 429 code and an explanation of the limit.

Daily Request Limits

Most data feed subscriptions have limited daily usage. This means that you can make up to a certain number of API requests in a 24-hour period (resetting at midnight Eastern). To view the limits for a data feed subscription, go to your Account page, click on Subscriptions, click on the subscription in question, and click on Limits.

Per-Minute Request Limits

Some data feed subscriptions have limited usage per x minutes. This means that you can make up to a certain number of API requests in x minutes. Common timeframes are 10 minutes and 1 minute.

Per-Second Request Limits

Certain high-workload API request are limited by the second. This means that you can make up to a certain number of API requests per second.

Paging Limits

API endpoints that return a list of data often employ paging to allow users to retrieve the rest of the data. Below are the default and maximum page sizes for various endpoints:

Endpoint Default Page Size Maximum Page Size
historical_data 1,000 10,000
All others 100 10,000

Certain requests are considered "high-paging" and are subject to additional limits:

  • Requests with a page size that is higher than the Default Page Size
  • Requests with a page offset greater than or equal to the Maximum Page Size

These request are limited by:

User Type High-Paging Request Limit
Free 1 per minute
Paid 1 per second
Custom Contact Sales

Bulk Request Limits

Certain API endpoints allow you to make "bulk" requests that return all of the available data. These requests are limited by:

User Type Bulk Request Limit
Free 1 per minute
Paid 1 per second
Custom Contact Sales

Throttle Limits

Users enjoying free data feed subscriptions only are limited to 100 requests per second.

Timeout Limits

Each request must be fulfilled within 25 seconds, otherwise it will be dropped with a 503 error. Given the flexibility of our endpoints and the complexity of potential API requests, we leave it to the users to fashion requests which can be satisfied in a reasonable time.

Usage & Limits

The following endpoints will help you to check your API access, limits, and usage:

Note: this is limited to data feeds with daily API requests limits.


Below are all of the API endpoints available for this data feed:

Welcome to the Intrinio Financial Data Platform! Through our Data Marketplace, we offer a wide selection of financial data feeds sourced by our own proprietary processes as well as from many data vendors. All of our data is available for download in the CSV (comma-separated values) format.

If you need additional help, chat with us.

Getting Started

For a quick guide to getting started with our CSV Download functionality, please see the Tutorial.


When using the download links, your browser will prompt you for a username and password. These credentials correspond to your access keys, which can be found in your Account page.


CSV Downloads are limited according to the matrix below. If you exceed the limit, the system will return a 429 error. If you need to download a larger dataset, we recommend browsing our Financial Data Downloads , which allow you to download massive datasets for a flat fee.

User Type CSV Download Limit
Free 1 per minute
Paid 1 per second
Custom Contact Sales


Sometimes there is too much information in our system to put into a single file of reasonable size. Therefore we limit file downloads to 10,000 rows. In order to retrieve the rest of the rows, you will have to request the second "page" of results. The first row of each file will contain paging information: RESULT_COUNT: 6342 , PAGE_SIZE: 10000 , CURRENT_PAGE: 1, TOTAL_PAGES: 1 , API_CALL_CREDITS: 1

  • RESULT_COUNT tells you how many total rows there are in our system
  • PAGE_SIZE tells you how many records you are fetching per page
  • CURRENT_PAGE tells you which page you are currently viewing
  • TOTAL_PAGES tells you how many total pages there are
  • API_CALL_CREDITS tells you how many API calls credits your request consumed

If the TOTAL_PAGES field in your file is greater than 1 and you want to see the other pages, append a page_number parameter to the URL:

To exclude the paging information from your file, include a hide_paging parameter in the URL:

URL Formatting

URLs must be formatted correctly in order for file downloads to be processed successfully. Here are examples of correct URLs:,beta

Here are examples of incorrect URLs:

Here is a key to the different parts of a URL: /data_point.csv ? identifier = AAPL & item = marketcap,beta
1 2 3 4 5 6 7 8 9 10

  1. Intrinio's API web address.
  2. The location of the data you are trying to access.
  3. The separator between the URL address and the URL parameters.
  4. The name of the URL parameter.
  5. The separator between the name of the URL parameter and the value of the URL parameter.
  6. The value of the URL parameter.
  7. The separator between URL parameters.
  8. The name of the URL parameter.
  9. The separator between the name of the URL parameter and the value of the URL parameter.
  10. The value of the URL parameter. Note some parameters allow multiple values - separate them with a comma.


Below are all of the CSV file downloads available for this data feed:

ETF Current Holdings

Return the current holdings of an exchange traded fund.


expand collapse
Name Description Example
* required
The identifier of an exchange traded fund (ticker, CUSIP, ISIN, RIC). IGM

Output Fields

expand collapse
Name Description Type Example
as_of_date As Of Date date 2018-04-05
etf_name ETF Name string iShares North American Tech ETF
etf_ticker ETF Ticker string IGM
name Constituent Name string MARATHON PETROLEUM CORP
type Constituent Type string EQUI
ticker Constituent Ticker string MPC
figi_ticker the OpenFIGI ticker string MPC:US
composite_figi the OpenFIGI composite identifier string BBG001DCCGR8
cusip CUSIP is an acronym that refers to Committee on Uniform Security Identification Procedures and the nine-digit, alphanumeric CUSIP numbers that are used to identify securities, including municipal bonds. A CUSIP number, similar to a serial number, is assigned to each maturity of a municipal security issue. string 56585A102
isin International Securities Identification Number string US56585A1025
ric Reuters instrument code string -
sedol Stock Exchange Daily Official List, a list of security identifiers used in the United Kingdom and Ireland for clearing purposes. The numbers are assigned by the London Stock Exchange, on request by the security issuer. SEDOLs serve as the National Securities Identifying Number for all securities issued in the United Kingdom and are therefore part of the security’s ISIN as well string B3K3L40
identifier Identifier string B3K3L40
identifier_type Identifier Type string SEDOL
iso_market_identifier_code Iso Market Identifier Code string -
currency Currency string AUD
index_provider_code Index Provider Code string -
industry_group Industry Group string -
location Location string US
face Face number 0
coupon Coupon number 0
market_value_held Market Value Held number 0
notional_value Notional Value number 0
maturity Maturity date -
quantity_held Quantity Held number 0
weighting Weighting number 0.0779
quantity_units Quantity Units string -
quantity_per_share Quantity Per Share number 0
contract_expiry_date Contract Expiry Date date 2018-07-15

Sample Data

expand collapse

ETF Current Holdings

Not available for this access method