Upgrade from Eikon -> Workspace. Learn about programming differences.

For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
50 0 1 4

reaching the limit

I am trying to run

#There are 131 companies
screen = SCREEN.express.universe(Equity(active=True, public=True, primary=True)) \
    .conditions(FORMULA('TR.AvgDailyValTraded3M', '>5000000'), IN('TR.CoRTradingCountryCode', 'BR'),
                NOT_IN('TR.TRBCEconomicSector', 'Financials'),
                NOT_IN('TR.TRBCEconomicSector', 'Real Estate')) \
    .currency('BRL').query
#Quarterly
df1, err1 = ek.get_data(
    instruments=screen,
    fields=['TR.F.RevGoodsSrvc/TR.F.TotAssets',
            'TR.F.EBITDA/TR.F.RevGoodsSrvc',
            'TR.F.IncAvailToComShr/TR.F.ComEqTot',
            'TR.F.IncAvailToComShr/TR.F.TotAssets',
            'TR.F.NetDebt/TR.F.TotAssets',
            'TR.F.CURRRATIO',
            'TR.F.NetCFOpPerShrTTM',
            'TR.F.EBIT.periodenddate',
            'TR.F.EBIT.calcdate'],
    parameters=
    {
        'SDate': '2008-01-01',
        'EDate': '0D',
        'Period': 'LTM',
        'Frq': 'FQ',
        'Curn': 'BRL'
    }
)
#Monthly
df_multiples, err_multiples = ek.get_data(
    instruments=screen,
    fields=['TR.EVToSales',
            'TR.EVToSales.date',
            ],
    parameters=
    {
        'SDate': '2008-01-01',
        'EDate': '0D',
        'Period': 'LTM',
        'Frq': 'CM',
        'Curn': 'BRL'
    }
)
#Monthly
df_price, err_price = ek.get_data(
    instruments=screen,
    fields=['TR.CLOSEPRICE',
            'TR.CLOSEPRICE.date'
            ],
    parameters=
    {
        'SDate': '2008-01-01',
        'EDate': '0D',
        'Frq': 'CM',
        'Curn': 'BRL'
    }
)
#Daily
df_vol, err_vol = ek.get_data(
    instruments=screen,
    fields=['TR.CLOSEPRICE',
            'TR.CLOSEPRICE.date'
            ],
    parameters=
    {
        'SDate': '2008-01-01',
        'EDate': '0D',
        'Frq': 'D',
        'Curn': 'BRL'
    }
)


I am getting the error below:

eikon.eikonError.EikonError: Error code 2504 | UDF Core request failed. Gateway Time-out


I know there is a daily limit for Eikon API, however, I would like to know how to circumvent this issue.

Using the screen code, I only can run the code at once. Could I run splitting this code?

Request per each interval?

How many companies per interval?

Thanks in advance




eikon-data-apipythonapi-limits
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@rafael01

Hi,

Thank you for your participation in the forum.

Is the reply below satisfactory in answering your question?

If yes please click the 'Accept' text next to the reply. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,
AHS

1 Answer

· Write an Answer
Upvotes
Accepted
78.8k 250 52 74

@rafael01

Sorry for the issue you are facing, let me see if I can help you in resolving this.

It is not effective to use a screener in every request. The first request should be used to get a list of RICs from that screener.

rics, err1 = ek.get_data(
    instruments=screen,
    fields=['TR.CommonName'])
rics

Then, use rics["Instrument"].to_list() in the subsequent requests.

df2, err1 = ek.get_data(
    instruments=df1["Instrument"].to_list(),
    fields=['TR.F.RevGoodsSrvc/TR.F.TotAssets',
            'TR.F.EBITDA/TR.F.RevGoodsSrvc',
            'TR.F.IncAvailToComShr/TR.F.ComEqTot',
            'TR.F.IncAvailToComShr/TR.F.TotAssets',
            'TR.F.NetDebt/TR.F.TotAssets',
            'TR.F.CURRRATIO',
            'TR.F.NetCFOpPerShrTTM',
            'TR.F.EBIT.periodenddate',
            'TR.F.EBIT.calcdate'],
    parameters=
    {
        'SDate': '2008-01-01',
        'EDate': '0D',
        'Period': 'LTM',
        'Frq': 'FQ',
        'Curn': 'BRL'
    }
)
df2

For the limitations, please refer to the Eikon Data API Usage and Limits Guideline.

According to the error message, it could be a timeout on the server.

1666670470662.png

For the last request (Daily), please try to split requests for a few years instead.

df_vol, err_vol = ek.get_data(
    instruments=rics["Instrument"].to_list(),
    fields=['TR.CLOSEPRICE',
            'TR.CLOSEPRICE.date'
            ],
    parameters=
    {
        'SDate': '2020-01-01',
        'EDate': '0D',
        'Frq': 'D',
        'Curn': 'BRL'
    }
)
df_vol

I hope this will help.


1666670470662.png (16.6 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks @Jirapongse . I will keep in touch with you.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.