Jump to content
  • 0

Can't access /history/transactions v2 via API


Rick

Question

I'm trying to access /history/transactions v2 via API, in order to retrieve accurate entry and exit times (not supported in v1).

I'm writing in C#, based on the API samples, but they only seem to support v1, and not the v2 documented in the Reference guide.

Anyone know how to amend the v1 code to make it support v2 ... the call in sample code is

        public async Task<IgResponse<TransactionHistoryResponse>> lastTransactionPeriod(string transactionType, string lastPeriod) 
        {
            return await _igRestService.RestfulService<TransactionHistoryResponse>("/gateway/deal/history/transactions/" + transactionType + "/" + lastPeriod, HttpMethod.Get, "1", _conversationContext);
        }

.. and yes, I did try just changing the "1" to a "2" ... I get an Error 500.

Any help most gratefully received!  This has been driving me crazy!

Link to comment

3 answers to this question

Recommended Posts

  • 0

I use the transactions endpoint in my Excel Add-in and it works well. However, as you say it need to be set to API V2 as V1 is no longer supported.

The API version needs to be set on the request header, for example:

Quote

            HttpClient client = new HttpClient();
            client.DefaultRequestHeaders.Add("Version", "2");

I would check the code where the actual request is made and make sure this is being set correctly.

I hope this helps.
 

  • Like 1
Link to comment
  • 0

Thanks for responding Andy.

Stepping through the code, the relevant section of the IG sample API code can be precised as

var client = new HttpClient();

            ...

            if (conversationContext != null)
            {
                if (conversationContext.apiKey != null)
                {
                    client.DefaultRequestHeaders.Add("X-IG-API-KEY", conversationContext.apiKey);
                }
                if (conversationContext.cst != null)
                {
                    client.DefaultRequestHeaders.Add("CST", conversationContext.cst);
                }
                if (conversationContext.xSecurityToken != null)
                {
                    client.DefaultRequestHeaders.Add("X-SECURITY-TOKEN", conversationContext.xSecurityToken);
                }
                client.DefaultRequestHeaders.Add("VERSION", version);


            }          
            //This only works for version 1 !!!           
            //client.DefaultRequestHeaders.TryAddWithoutValidation("version", version ?? "1");

            ...

            var response = new HttpResponseMessage();
            string content = null;

            switch (method.Method)
            {
                case "POST": ...

                case "GET":
                    var myGetTask = client.GetAsync(_baseUrl + uri);
                    response = myGetTask.Result;                                 
                    break;

This returns transaction data quite happily using Version 1 of the interface (but without the additional V2 data), but errors if I try to run it with Version=2 ...

image.thumb.png.47a7f5cd0a93873ac2e7c49c603463d4.png

Any ideas?  Note the comment in the IG code!!! Or could you send me a code sample in VB from your spreadsheet, to see if I can translate into C# (shouldn't be too difficult) ...

Rick

 

Link to comment
  • 0

Well, as always with these things, if you beat your head against the wall for long enough you can probably fix it 🤣.  I realised that the sample code uses the URI /history/transactions/{transactionType}/{lastPeriod} to access the V1 interface.  V2 uses a slightly different URI ... just /history/transactions, with variable parameters  passed using the '?' construct.  I picked this up from the API Companion app, which helpfully shows the generated GET URIs.  Then I had to invent a new V2Transaction type ( since the demo code only supports V1) to persuade JSON to deserialise to result for me.  Problem (eventually) solved.

I'm still grateful to Andy for responding, and giving me confidence that there are those out there who care.  If anyone wants more details on this particular problem, let me know, and I'll try to post some revised code (once I've cleaned it up, of course!).

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • General Statistics

    • Total Topics
      21,295
    • Total Posts
      90,940
    • Total Members
      41,422
    • Most Online
      7,522
      10/06/21 10:53

    Newest Member
    Chester
    Joined 08/02/23 06:56
  • Posts

    • For more up to date news on how markets will open, the latest earnings and economic news, watch IGTV live in the platform at 07:30am UK. Today’s coverage: Indices: European mkts expected up. FTSE100 24hr mkts another new record high FX: Little move despite Powell saying more US rate rises needed to combat inflation Equities: Earnings this morning - BDEV PZ SVT TTE.  VOW last night a disappointment. This evening - UBER DIS. ZOOM announces 15% cut in global workforce Commods: Gold up for third day.  Oil up after API drop in inventories. NY orange juice another new record high        
    • Elliott Wave Analysis TradingLounge Daily Chart, 8 February 23,   Uniswap / U.S.dollar(UNIUSD) UNIUSD Elliott Wave Technical Analysis Function: Follow trend     Mode: Motive Structure: Impulse Position: Wave III Direction Next higher Degrees: wave III of Motive Details: Wave 3 rise is likely towards the level of 15.37 Wave Cancel invalid Level: 4.946 Uniswap / U.S.dollar(UNIUSD)Trading Strategy: Uniswap is likely to recover well as price breaks through the MA50 and MA200 are bullish signals. and leads to the movement of wave III that is usually equal to 1.618 x the length of wave I at the level of 15.371. Uniswap / U.S.dollar(UNIUSD) Technical Indicators: The price is above the MA200 indicating an uptrend. The wave oscillators above Zero-Line momentum are bullish. TradingLounge Analyst: Kittiampon Somboonsod     Elliott Wave Analysis TradingLounge 4H Chart, 8 February 23,   Uniswap / U.S.dollar(UNIUSD) UNIUSD Elliott Wave Technical Analysis Function: Counter trend     Mode: Corrective Structure: Flat Position: Wave (B) Direction Next higher Degrees: wave ((2)) of Motive Wave Cancel invalid Level: 4.95 Details: Pullback of wave (B) when end, the price decline to wave (C)again. Uniswap / U.S.dollar(UNIUSD)Trading Strategy: Uniswap There is a strong recovery trend when the price breaks MA50 and MA200 is a good sign. But nevertheless, the price is in a phase of retracement in wave (2), when it finishes, the price resumes upward trend. Wait for wave ((2)) to complete. Uniswap / U.S.dollar(UNIUSD)Technical Indicators: The price is above the MA200, indicating an uptrend. The wave oscillators below Zero-Line Bearish momentum.
    • may I ask if anyone knows where is a good place where there is a forum on Excel Based Trading?
×
×
  • Create New...