Options Data for US Stocks: End-of-Day and Historical Learn more

Search API for Stocks, ETFs, Mutual Funds, and Indices

The Search API lets you quickly locate assets such as stocks, ETFs, mutual funds, and indices with a flexible query engine. You can search by ticker code, company name, or ISIN. It is ideal for user-friendly asset lookups and autocomplete suggestions.

The engine adjusts its behavior based on the input string and ranks results by popularity using metrics like market capitalization and trading volume. Filtering by asset type or exchange is supported.

To retrieve common identifiers (CUSIP, ISIN, OpenFIGI, LEI, and CIK) for a symbol, see the separate ID Mapping endpoint.

Search Endpoint

Pass your query as the path segment. It can be a ticker symbol, a company name, or an ISIN.

GET https://eodhd.com/api/search/{query_string}

Replace {query_string} with your search input — a ticker symbol, company name, or ISIN. If it contains spaces, URL-encode them (for example, Apple Inc becomes Apple%20Inc).

The demo API token does not work for the Search API — register for a free token to use it. The search runs over active tickers only.

Parameters

api_token string required
Your EODHD API token
limit integer optional
Number of results to return (Default: 15, Range: 1-500)
type enum optional
Filter by asset type. Allowed values: all, stock, etf, fund, index, crypto
exchange string optional
Filter by exchange code, for example US, LSE, or FOREX

Request Example

https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json"
(Sign up for free to get an API token)
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
(Sign up for free to get an API token)
import requests

url = f'https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
(Sign up for free to get an API token)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}
(Sign up for free to get an API token)
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Response Fields

The response is a JSON array of matching instruments. Each item contains:

FieldDescription
CodeTicker symbol of the asset
ExchangeExchange code where the asset is listed
NameFull name of the instrument
TypeType of asset, for example Common Stock, ETF, or Fund
CountryCountry of the exchange
CurrencyCurrency in which the asset is traded
ISINISIN code, if available
isPrimarytrue if this is the primary listing for the asset, otherwise false
previousClosePrevious closing price
previousCloseDateDate of the previous close price

Response Example

[
  {
    "Code": "AAPL",
    "Exchange": "US",
    "Name": "Apple Inc.",
    "Type": "Common Stock",
    "Country": "USA",
    "Currency": "USD",
    "ISIN": "US0378331005",
    "isPrimary": true,
    "previousClose": 326.57,
    "previousCloseDate": "2026-09-10"
  },
  {
    "Code": "AAPL",
    "Exchange": "BA",
    "Name": "Apple Inc DRC",
    "Type": "Common Stock",
    "Country": "Argentina",
    "Currency": "ARS",
    "ISIN": "US0378331005",
    "isPrimary": false,
    "previousClose": 26060,
    "previousCloseDate": "2026-09-10"
  }
]

Sign up & Get Data

Examples

Search by ticker code:

https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json"
(Sign up for free to get an API token)
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
(Sign up for free to get an API token)
import requests

url = f'https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
(Sign up for free to get an API token)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}
(Sign up for free to get an API token)
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Search by company name:

https://eodhd.com/api/search/Apple%20Inc?api_token={YOUR_API_TOKEN}&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/search/Apple%20Inc?api_token={YOUR_API_TOKEN}&fmt=json"
(Sign up for free to get an API token)
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/search/Apple%20Inc?api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
(Sign up for free to get an API token)
import requests

url = f'https://eodhd.com/api/search/Apple%20Inc?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
(Sign up for free to get an API token)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/search/Apple%20Inc?api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}
(Sign up for free to get an API token)
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Search by ISIN:

https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json"
(Sign up for free to get an API token)
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
(Sign up for free to get an API token)
import requests

url = f'https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
(Sign up for free to get an API token)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}
(Sign up for free to get an API token)
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Search with a limit of one result:

https://eodhd.com/api/search/Apple%20Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/search/Apple%20Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json"
(Sign up for free to get an API token)
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/search/Apple%20Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
(Sign up for free to get an API token)
import requests

url = f'https://eodhd.com/api/search/Apple%20Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
(Sign up for free to get an API token)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/search/Apple%20Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}
(Sign up for free to get an API token)
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Compare plans and find your fit
Free and paid plans for individual and commercial use
Go to Pricing
Chat