This endpoint allows searching across ~39,000 global market indices, including equity, volatility, currency, and U.S. Treasury yield indices, and returns core identification, closing price, and performance data.
It is possible to control which fields are included in the response through the select_identifiers parameter. This reduces response size and is useful when only a subset of data is needed.
Coverage
| Indices | ~39,000 |
| Markets | ~50 (download the full list) |
| Exchanges and index data sources | ~70 (download the full list) |
Coverage figures are approximate and may change over time.
Data Freshness
Index data is updated once every 24 hours. Note that each index is updated at its own time; the update_time field shows when a specific data record was last updated.
Data Availability & Limitations
- This endpoint returns the latest price data for each index, such as the close price, daily change, and 52-week range. Historical index prices are available through the Historical Price Data API.
- Intraday, pre-market, and post-market prices are not available for indices.
- Some fields may be null if a specific value is not available for a given index. It does not indicate an error.
- Values are provided based on upstream source data. Index methodologies are defined by index providers and may vary across indices.
When to Use This Endpoint
- Build global market overview dashboards and index trackers.
- Track broad market performance and volatility indicators such as VIX.
- Compare individual asset performance against benchmark indices.
- Retrieve daily index snapshots, including close price, price changes, normalized USD values, and 52-week ranges.
Request Parameters
v1/market/index
Free-text query (e.g., “^GSPC”, “S&P 500”, partial symbol, partial name).
A list of field names to include in the response.
- When provided, each item in the response contains only the specified fields.
- When not provided or set to null, the full field set is returned.
symbol and logo are always returned regardless of the value passed.
For the list of available field names, see the Response section below.
A list of index symbols to retrieve (e.g., ^GSPC, ^DJI).
When provided, the response returns only the specified indices.
Important notes:
- If a symbol does not exist, it is excluded from the results.
- Returns an empty result set if none of the specified symbols are found.
Include indices without a name.
true- include indices without a namefalse- exclude indices without a name
Exclude indices with a name
true- exclude indices with a namefalse- include indices with a name
Optional filter expressions.
Each filter condition is defined as: [field, operator, value]. Conditions can be combined using logical operators and/or.
Supported operators:
Numeric fields:
>- greater than>=- greater than or equal<- less than<=- less than or equal=- equals<>- not equal
String fields:
like– pattern match (requires%as a wildcard)not_like- pattern does not match (requires%as a wildcard)contains- value exists in stringnot_contains- value does not exist in stringstartswith- string starts with valueendswith- string ends with value
% usage examples:
%abc%- matches any string containing "abc"abc%- matches any string starting with "abc"%abc- matches any string ending with "abc"
Optional sorting configuration for result items. Each sorting setup is defined as an object {selector, desc}:
selector- Field used for sorting (e.g., regular_market_price_change_percent).desc- Sorting direction (true for descending, false for ascending).
Multiple sorting setups can be combined in the array.
Maximum number of matched items returned (user-defined).
- Default: 100
- Maximum: 1000
Pagination offset (0-based).
Token for pagination. Use the value returned in the previous response to fetch the next page.
User-defined identifier for the task (max 255 characters).
It is returned in the response data object, allowing you to match results with the corresponding request. It does not affect API processing or filtering logic.
curl --location "https://api.finimpulse.com/v1/market/index" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <API_TOKEN>" \
-d '{
"search_text": "Dow Jones",
"select_identifiers": [
"short_name",
"currency",
"regular_market_price",
"regular_market_price_change",
"regular_market_price_change_percent",
"regular_market_time"
],
"symbols": [
"^GSPC",
"^IXIC",
"^DJI",
"^DJT",
"^DJU"
],
"offset": 0,
"limit": 10,
"filters": [
"regular_market_price",
">",
0
],
"sort_by": [
{
"selector": "regular_market_price_change_percent",
"desc": true
}
],
"show_tickers_without_company_name": false,
"hide_tickers_with_company_name": false,
"tag": "just tag"
}'
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
var client = new HttpClient();
var url = "https://api.finimpulse.com/v1/market/index";
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "<API_TOKEN>");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var json = @"{
""search_text"": ""Dow Jones"",
""select_identifiers"": [
""short_name"",
""currency"",
""regular_market_price"",
""regular_market_price_change"",
""regular_market_price_change_percent"",
""regular_market_time""
],
""symbols"": [
""^GSPC"",
""^IXIC"",
""^DJI"",
""^DJT"",
""^DJU""
],
""offset"": 0,
""limit"": 10,
""filters"": [
""regular_market_price"",
"">"",
0
],
""sort_by"": [
{
""selector"": ""regular_market_price_change_percent"",
""desc"": true
}
],
""show_tickers_without_company_name"": false,
""hide_tickers_with_company_name"": false,
""tag"": ""just tag""
}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.finimpulse.com/v1/market/index",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: Bearer <API_TOKEN>"
],
CURLOPT_POSTFIELDS => json_encode(
[
"search_text" => "Dow Jones",
"select_identifiers" => [
"short_name",
"currency",
"regular_market_price",
"regular_market_price_change",
"regular_market_price_change_percent",
"regular_market_time"
],
"symbols" => [
"^GSPC",
"^IXIC",
"^DJI",
"^DJT",
"^DJU"
],
"offset" => 0,
"limit" => 10,
"filters" => [
"regular_market_price",
">",
0
],
"sort_by" => [
[
"selector" => "regular_market_price_change_percent",
"desc" => true
]
],
"show_tickers_without_company_name" => false,
"hide_tickers_with_company_name" => false,
"tag" => "just tag"
]
)
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import urllib.request
import json
url = "https://api.finimpulse.com/v1/market/index"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_TOKEN>"
}
data = {
"search_text": "Dow Jones",
"select_identifiers": [
"short_name",
"currency",
"regular_market_price",
"regular_market_price_change",
"regular_market_price_change_percent",
"regular_market_time"
],
"symbols": [
"^GSPC",
"^IXIC",
"^DJI",
"^DJT",
"^DJU"
],
"offset": 0,
"limit": 10,
"filters": [
"regular_market_price",
">",
0
],
"sort_by": [
{
"selector": "regular_market_price_change_percent",
"desc": True
}
],
"show_tickers_without_company_name": False,
"hide_tickers_with_company_name": False,
"tag": "just tag"
}
req = urllib.request.Request(url,
data=json.dumps(data).encode("utf-8"),
headers=headers,
method="POST")
with urllib.request.urlopen(req) as response:
result = json.loads(response.read().decode("utf-8"))
print(result)
const https = require('https');
const data = JSON.stringify({
"search_text": "Dow Jones",
"select_identifiers": [
"short_name",
"currency",
"regular_market_price",
"regular_market_price_change",
"regular_market_price_change_percent",
"regular_market_time"
],
"symbols": [
"^GSPC",
"^IXIC",
"^DJI",
"^DJT",
"^DJU"
],
"offset": 0,
"limit": 10,
"filters": [
"regular_market_price",
">",
0
],
"sort_by": [
{
"selector": "regular_market_price_change_percent",
"desc": true
}
],
"show_tickers_without_company_name": false,
"hide_tickers_with_company_name": false,
"tag": "just tag"
});
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <API_TOKEN>',
'Content-Length': Buffer.byteLength(data)
}
};
const req = https.request('https://api.finimpulse.com/v1/market/index', options, (res) => {
let body = '';
res.on('data', chunk => body += chunk);
res.on('end', () => console.log(JSON.stringify(JSON.parse(body), null, 2)));
});
req.on('error', (e) => console.error(e));
req.write(data);
req.end();
Response
The response contains pagination metadata and a list of matched indices.
Note that the returned fields depend on whether select_identifiers is provided and which fields are specified. The full field set is listed below.
Pagination Fields
Total number of matching indices.
Token for pagination. Pass it as the search_after_token request parameter to fetch the next page. Returns null if there are no more pages.
Number of indices returned.
Array of indices.
The same index may appear under different symbols (e.g., ^GSPC and ^SPX).
Identification Fields
Index identifier (symbol), e.g., ^GSPC, ^DJI.
URL of the index logo image.
Index display name.
Short descriptive name.
Full formal name.
Asset class identifier (index).
Market Info
Exchange code.
Currency in which the index is calculated.
Price Data
Closing price of the most recent regular trading session.
Closing price of the most recent regular trading session, normalized to USD.
Absolute price change for the regular market session.
Absolute price change for the regular market session, normalized to USD.
Percentage price change for the regular market session.
Timestamp of the last regular market price (ISO 8601).
Lowest price in the last 52 weeks.
Highest price in the last 52 weeks.
Other Market Data
Trading volume for the regular market session.
Total return over the past year.
Metadata
Timestamp of the most recent data update (ISO 8601).
{
"result": {
"total_count": 37410,
"items_count": 4,
"items": [
{
"symbol": "^DJI",
"short_name": "Dow Jones Industrial Average",
"long_name": "Dow Jones Industrial Average",
"quote_type": "index",
"logo": "https://cdn.finimpulse.com/c43bfd30-718e-1180-54bc-fe0376c27a8e",
"currency": "USD",
"regular_market_volume": 401279317,
"one_year_return": 14.449,
"fifty_two_week_low": 45057.28,
"fifty_two_week_high": 54744.33,
"current_price": 52380.7,
"regular_market_price": 52064.1,
"regular_market_price_change": -405.40234,
"regular_market_price_change_usd": -405.40234,
"regular_market_price_change_percent": -0.7680096,
"current_price_usd": 52380.7,
"regular_market_price_usd": 52064.1
},
{
"symbol": "^GSPC",
"short_name": "S&P 500",
"long_name": "S&P 500",
"quote_type": "index",
"logo": "https://cdn.finimpulse.com/635f8b8a-7754-215d-f082-2491d06ed28c",
"currency": "USD",
"regular_market_volume": 2763396000,
"one_year_return": 16.222,
"fifty_two_week_low": 6316.91,
"fifty_two_week_high": 7816.7,
"current_price": 7591.7,
"regular_market_price": 7591.7,
"regular_market_price_change": -44.659668,
"regular_market_price_change_usd": -44.659668,
"regular_market_price_change_percent": -0.5848293,
"current_price_usd": 7591.7,
"regular_market_price_usd": 7591.7
},
{
"symbol": "^IXIC",
"short_name": "NASDAQ Composite",
"long_name": "NASDAQ Composite",
"quote_type": "index",
"logo": "https://cdn.finimpulse.com/6f495c3a-e3b2-c351-6e38-f8c2b657eb69",
"currency": "USD",
"regular_market_volume": 6333974000,
"one_year_return": 19.17,
"fifty_two_week_low": 20690.25,
"fifty_two_week_high": 27190.21,
"current_price": 26081.725,
"regular_market_price": 26081.725,
"regular_market_price_change": -171.61523,
"regular_market_price_change_usd": -171.61523,
"regular_market_price_change_percent": -0.65368915,
"current_price_usd": 26081.725,
"regular_market_price_usd": 26081.725
},
{
"symbol": "^NDX",
"short_name": "NASDAQ-100",
"long_name": "NASDAQ-100",
"quote_type": "index",
"logo": "https://cdn.finimpulse.com/7f3a5028-15a6-db8b-6c89-039a7ffc332d",
"currency": "USD",
"regular_market_volume": 1173806000,
"one_year_return": 22.031,
"fifty_two_week_low": 22841.42,
"fifty_two_week_high": 30762.2,
"current_price": 29103.514,
"regular_market_price": 29103.514,
"regular_market_price_change": -318.03906,
"regular_market_price_change_usd": -318.03906,
"regular_market_price_change_percent": -1.080973,
"current_price_usd": 29103.514,
"regular_market_price_usd": 29103.514
}
]
}
}Units & Formats
- regular_market_price, regular_market_price_change, fifty_two_week_high, and fifty_two_week_low are expressed in index points. For U.S. Treasury yield indices (^IRX, ^FVX, ^TNX, ^TYX), these values are expressed in percent.
- Fields with the _usd suffix are normalized to USD using the same methodology as other FinImpulse market data.
- regular_market_price_change_percent and one_year_return are expressed as percentages (e.g., 4.35 represents 4.35%).
Pagination & Limits
You can control how many records a response returns and page through large result sets using the limit and offset parameters or the search_after_token value.
- Use limit to set the number of records per request, from 1 to 1000. If limit is not specified, up to 100 records are returned.
- Use offset to skip records (0-based). For example, limit: 100 and offset: 100 return records 101–200.
- To retrieve all matching records, increase offset by the limit value until offset + items_count reaches total_count.
- Alternatively, pass the search_after_token value from the previous response in the next request to fetch the following page. Other request parameters do not need to be repeated. When there are no more pages, search_after_token is null.
- To keep the order consistent across pages, pass sort_by, for example, by symbol.
Each returned record is billed as a Row, so the cost of a request depends on the number of records returned.
API Pricing
- Call: $0.00030
- Row: $0.00005
