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
limit
integer
optional
type
enum
optional
exchange
string
optional
Request Example
https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/search/{query_string}?api_token={YOUR_API_TOKEN}&fmt=json"
$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();
}
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)
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")
}
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:
| Field | Description |
|---|---|
| Code | Ticker symbol of the asset |
| Exchange | Exchange code where the asset is listed |
| Name | Full name of the instrument |
| Type | Type of asset, for example Common Stock, ETF, or Fund |
| Country | Country of the exchange |
| Currency | Currency in which the asset is traded |
| ISIN | ISIN code, if available |
| isPrimary | true if this is the primary listing for the asset, otherwise false |
| previousClose | Previous closing price |
| previousCloseDate | Date 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"
}
]
Examples
Search by ticker code:
https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json"
$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();
}
import requests
url = f'https://eodhd.com/api/search/AAPL?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()
print(data)
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")
}
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
curl --location "https://eodhd.com/api/search/Apple%20Inc?api_token={YOUR_API_TOKEN}&fmt=json"
$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();
}
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)
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")
}
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
curl --location "https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json"
$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();
}
import requests
url = f'https://eodhd.com/api/search/US0378331005?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()
print(data)
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")
}
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
curl --location "https://eodhd.com/api/search/Apple%20Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json"
$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();
}
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)
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")
}
Try it now (it's free)!
How to use it (YouTube)