End-of-day (EOD) Open, High, Low, Close and Volume (OHLCV) price data for active and delisted US publicly listed funds. Provided with 3 different adjustment methods: (1) unadjusted; (2) stock-split adjusted; and, (3) stock-split adjusted, cash dividend adjusted, and spinoff adjusted. (1) and (3) require full imputation for full OHLCV as described in FAQs. Covers Exchange-Traded Funds (ETFs), Closed-End Funds (CEFs), Exchange-Traded Notes (ETNs), Exchange-Traded Debt (ETDs). Current count of 10,000 tickers. Deep history to 1998.
Table details
View table
Explore table metadata
The table is queried via the following endpoint:
The queries are authenticated and filtered using query parameters. A query parameter specifies a particular option or filter for the data to be returned. Examples of query parameter include the data format to be returned (format), the table columns to return (fields) or a filter to be applied (tablename). These are appended to the endpoint above, following a ?. The most important of these is your API key (api_key) which is used to authenticate you. Without a valid API key, results will not be returned.
The funds table supports the following query parameters:
| Parameter | Description | Default | Examples |
|---|---|---|---|
| format | The format of the results to be returned. | csv | format=json |
| years | Triggers a bulk download of the full table as a compressed CSV. Values: 5, 10, or full. The API redirects to a time-limited download URL. | years=5 | |
| from | Specifies the filing date from which to return data. | 1 year ago | from=2023-08-01 |
| to | Specifies the filing date to return data until. | prior day | to=2023-08-31 |
| fields | The fields (table columns) to return. | all | fields=ticker,date,close |
| lastupdated | Specifies the last date on which a record was updated. This can be used to retrieve recently updated records. | lastupdated.gte=2023-09-31 | |
| ticker | Returns results for the specified ticker. Multiple tickers should be separated with a comma(,). | all | ticker=TSLA |
| limit | The number of records to return. | 10000 | limit=10000 |
| skip | The number of results to skip before returning data. Alias: offset. | 0 | skip=10000 |
| sort | The field used to sort the data and the sort method (asc/desc). | date.desc | sort=close.asc |
Retrieve the PostgreSQL schema:
Retrieve the SQLite schema:
Retrieve the MySQL schema:
Return all price data for a ticker:
Return all price data for multiple tickers:
Return price data that has been updated since a specified date:
Return all price data for a date range:
Return specific columns from price data for a ticker in a date range sorted by volume:
In Google Sheets, retrieve fund prices for a single ticker (SPY) with IMPORTDATA. You can change the query parameters (ticker, dates, fields, filters, and so on) in the same way as the Examples in the preceding section. Paste this formula into a cell (A1):
=IMPORTDATA("https://api.sharadar.com/v1.0/data/funds?api_key=test-api-key&format=csv&ticker=SPY")Download the [funds] table as a compressed CSV by setting years to 5, 10, or full. The API responds with a redirect to a time-limited download URL:
Example using curl (follow redirects and write the file):
curl -L -o funds.csv.zip "https://api.sharadar.com/v1.0/data/funds?api_key=test-api-key&years=full"Check the bulk file status (name, size, last modified) without downloading:
Example response:
{
"table": "funds",
"name": "funds.csv.zip",
"size": 299119804,
"sizeLabel": "285.3 MB",
"modified": "2026-07-16T03:59:18.861000+00:00"
}