Can't use ISIN to retreive datapoints

I'm currently building a program in Pycharm and want to use the Eikon API to retreive 2 fields: CF_Last and TR.priceclose (SDate=-1M). However, when i give up ISIN codes as instrument names, i get an error, while RICs do seem to work. Is there any way to do this based on ISIN?

import tkinter as tk
from tkinter import filedialog
import pandas as pd
import eikon as ek

# API Key
ek.set_app_key('')

# Define the list of instrument codes and fields to retrieve
instrument_codes = ['BE0974293251', 'NL0010273215']
fields = ['CF_LAST', 'TR.PriceClose(SDate=-1M)']

# Retrieve the data using the Eikon API
data, err = ek.get_data(instrument_codes, fields)

# Check for errors
if err:
raise ValueError(err)

# Print the resulting DataFrame
print(data)

Best Answer

  • christophe01
    christophe01 Newcomer
    Answer ✓

    Meanwhile, i've solved the issue and it turns out you can use ISIN to retreive datapoints. Snippet below works just fine.



    # API Key
    ek.set_app_key('api key')

    # Define base dataframe
    client_df = pd.DataFrame()

    # get the current working directory
    current_directory = os.getcwd()

    # set the path to the database file
    database_file_path = r'C:\Users\List.xlsx'


    # Define function to retrieve stock data from Eikon API
    def get_stock_data(isin_list):
    # Define the fields to request from the Eikon API
    fields = ['TR.Isin', 'TR.PriceClose(SDate=0;Curn=EUR)', 'TR.PriceClose(SDate=-30D;Curn=EUR)']

    # Request the data from the Eikon API
    data, err = ek.get_data(isin_list, fields)

    # If there was an error, raise an exception
    if err:
    raise Exception(f"Error getting data: {err}")

    # If the data is empty, raise an exception
    if data.empty:
    raise Exception("No data available")

    # Rename the columns to be more descriptive
    data.columns = ['Stock', 'Isin', 'Price', 'Price -1 mth']

    # Round the Price column down to 2 decimal places
    data['Price'] = data['Price'].astype(float).round(2)
    data['Price -1 mth'] = data['Price -1 mth'].astype(float).round(2)

    # Return only the Price and 1 month price change columns
    return data[['Price', 'Price -1 mth']]

Answers