The Search API allows you to quickly locate assets such as stocks, ETFs, mutual funds, bonds, and indices by using a flexible query engine. You can search by ticker code, company name, or ISIN. This API is particularly useful for applications requiring user-friendly asset lookups or autocomplete suggestions.

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

API Endpoint

To search for financial instruments, use the following endpoint:

URL
cURL
PHP
Python
R
Chat GPT
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")
}
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)

Parameters

ParameterRequiredDescription
query_stringYesThe search input. Can be a ticker symbol, company name, or ISIN. Example values: AAPL, Apple Inc, US0378331005.
limitNoLimits the number of results. Default is 15. Maximum value is 500.
bonds_onlyNoSet to 1 to include only bonds in the results. Default is 0 (bonds excluded).
exchangeNoFilter results by exchange code (e.g., US, PA, FOREX, NYSE, NASDAQ). List of Exchanges API.
typeNoFilter results by asset type. Possible values: all, stock, etf, fund, bond, index, crypto. Note: when using “all”, bonds are excluded by default. Use “type=bond” to include bonds.
api_tokenYesYour personal API key, provided after registration.

    Note: The demo API key does not work for the Search API. Please register to get your free API token.

    Response Fields

    The response is returned in JSON format as a list of matching instruments.

    FieldDescription
    CodeTicker symbol of the asset
    ExchangeExchange code where the asset is listed
    NameFull name of the instrument
    TypeType of asset (e.g., Common Stock, ETF, Fund, Bond)
    CountryCountry of the exchange
    CurrencyCurrency in which the asset is traded
    ISINISIN code, if available
    previousClosePrevious closing price
    previousCloseDateDate of the previous close price
    isPrimaryTrue if this is the primary exchange for the asset, otherwise false

    Examples

    Search by ticker code:

    URL
    cURL
    PHP
    Python
    R
    Chat GPT
    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")
    }
    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:

    URL
    cURL
    PHP
    Python
    R
    Chat GPT
    https://eodhd.com/api/search/Apple Inc?api_token={YOUR_API_TOKEN}&fmt=json
    curl --location "https://eodhd.com/api/search/Apple Inc?api_token={YOUR_API_TOKEN}&fmt=json"
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://eodhd.com/api/search/Apple Inc?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 Inc?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 Inc?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")
    }
    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 1 result:

    URL
    cURL
    PHP
    Python
    R
    Chat GPT
    https://eodhd.com/api/search/Apple Inc?limit=1&api_token={YOUR_API_TOKEN}&fmt=json
    curl --location "https://eodhd.com/api/search/Apple Inc?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 Inc?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 Inc?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 Inc?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")
    }
    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)

    Sample Response

    {
    "Code": "AAPL",
    "Exchange": "US",
    "Name": "Apple Inc",
    "Type": "Common Stock",
    "Country": "USA",
    "Currency": "USD",
    "ISIN": "US0378331005",
    "previousClose": 229.65,
    "previousCloseDate": "2025-08-12",
    "isPrimary": true
    },
    {
    "Code": "AAPL",
    "Exchange": "TO",
    "Name": "Apple CDR (CAD Hedged)",
    "Type": "Common Stock",
    "Country": "Canada",
    "Currency": "CAD",
    "ISIN": null,
    "previousClose": 33.14,
    "previousCloseDate": "2025-08-12",
    "isPrimary": false
    }

    Sign up & Get Data