"Extractions/ExtractWithNotes" - 429 Error

Hello Team,
We are running "Extractions/ExtractWithNotes" with ON Demand Approach for End of Day Pricing data. As per the Document BEST PRACTICES & FAIR USAGE POLICY(DOCUMENT VERSION 7.0) we can run 2 concurrent runs for this API and 30 hits to the API in a minute.

But then too its giving 429 Status code, after few chunks run.
Could you please help and guide on this issue.


Thank you!!

Best Answer

  • Gurpreet
    Answer ✓

    Hi @trisha.gehlot,

    I won't be able to confirm which of the data or request limits are getting breached, since we don't have access to the DSS server logs. Your app is exceeding some limit for sure - and hence getting the HTTP 429 status response.

    So, there are two options in this case -

    1. Throttle the requests in your application - add a delay timer to pace out the requests one after another.

    2. Raise a service ticket at my.refinitiv - where the product team can inspect the server logs and advise what caused the server to reject the request.

Answers

  • Hello @trisha.gehlot,

    HTTP 429 is too many requests. The REST API threshold limits are defined in the Fair Usage Policy document (current version is 8.1), and the on-demand extractions seem to be limited to 30 concurrent requests. There are other limits that apply besides concurrent requests (like concurrent processing limits), which might also be coming into play here.

    The guide also suggests using Scheduled extractions instead, if possible.

  • @Gurpreet Thank you so much for your response!!

    I checked the Document, and it states that -
    EOD Pricing| 75,000 Before Expansion; 250,000 After Expansion| 50 | 2

    And we are not exceeding the limits given above.

    The details of our run -

    For Example -

    Instruments = 852
    After Expansion = 454504

    So we have applied batch processing, 500 instruments per batch with 2 batches in parallel.

    So there is 455 tasks to run,
    with 1 task - 2 batches in parallel, with 500 instruments each.

    After running 4-5 tasks it raises 429 error.


    Could you please have a look and guide!

    Many Thanks!!




  • Also with large amount of instrument schedule extraction was not possible, and so need to apply On demand Approach.


  • Also below is the request body, if that helps in guiding -


    '{"ExtractionRequest": {"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.PriceHistoryExtractionRequest", "ContentFieldNames": ["RIC", "Exchange Code", "Exchange Description", "Trade Date", "Expiration Date", "Underlying RIC", "Underlying Security Description", "Asset ID", "Asset Status", "Asset Status Description", "Asset Type", "Asset Type Description", "Asset SubType", "Asset SubType Description", "Issuer Name", "High Price", "Low Price", "Trade Price1", "Official Close Price", "Accumulated Volume Unscaled", "Volume", "Last Trade Price", "Open Price", "File Code", "Currency Code", "ISIN", "Strike Price", "Put Call Flag"], "IdentifierList": {"@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList", "InstrumentIdentifiers": [{"Identifier": "InstExample", "IdentifierType": "Ric"},......So on identifier lists]}}

  • Ohh ok, sure, might be will try both options you provided.
    Thank you!! @Gurpreet