Global Market Index Search API

Returns a search result for global market indices, such as the S&P 500, Dow Jones, and Nasdaq Composite, with closing prices and key performance metrics.

Available via: REST API · MCP

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

POST
v1/market/index
search_text stringoptional

Free-text query (e.g., “^GSPC”, “S&P 500”, partial symbol, partial name).

select_identifiers arrayoptional

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.

symbols arrayoptional

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.
show_tickers_without_company_name booleanoptional

Include indices without a name.

  • true - include indices without a name
  • false - exclude indices without a name
hide_tickers_with_company_name booleanoptional

Exclude indices with a name

  • true - exclude indices with a name
  • false - include indices with a name
filters arrayoptional

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 string
  • not_contains - value does not exist in string
  • startswith - string starts with value
  • endswith - 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"
sort_by arrayoptional

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.

limit integeroptional

Maximum number of matched items returned (user-defined).

  • Default: 100
  • Maximum: 1000
offset integeroptional

Pagination offset (0-based).

search_after_token stringoptional

Token for pagination. Use the value returned in the previous response to fetch the next page.

tag stringoptional

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.

Example Request
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_count integer

Total number of matching indices.

search_after_token string

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.

items_count integer

Number of indices returned.

items array

Array of indices.

The same index may appear under different symbols (e.g., ^GSPC and ^SPX).

Identification Fields

symbol string

Index identifier (symbol), e.g., ^GSPC, ^DJI.

logo string

URL of the index logo image.

display_name string

Index display name.

short_name string

Short descriptive name.

long_name string

Full formal name.

quote_type string

Asset class identifier (index).

Market Info

exchange string

Exchange code.

currency string

Currency in which the index is calculated.

Price Data

regular_market_price number

Closing price of the most recent regular trading session.

regular_market_price_usd number

Closing price of the most recent regular trading session, normalized to USD.

regular_market_price_change number

Absolute price change for the regular market session.

regular_market_price_change_usd number

Absolute price change for the regular market session, normalized to USD.

regular_market_price_change_percent number

Percentage price change for the regular market session.

regular_market_time string

Timestamp of the last regular market price (ISO 8601).

fifty_two_week_low number

Lowest price in the last 52 weeks.

fifty_two_week_high number

Highest price in the last 52 weeks.

Other Market Data

regular_market_volume integer

Trading volume for the regular market session.

one_year_return number

Total return over the past year.

Metadata

update_time string

Timestamp of the most recent data update (ISO 8601).

Example Response
{
    "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