New API release – Wholesale real-time and forecast prices

  • 1.8K Views
  • Last post 20 January 2022
Phil Bishop posted this 10 November 2020

We have published a new API product called wholesale market prices. Subscribing to this product will enable users to receive a key to use one of four new APIs:

  • Forecast NRSS prices
  • Forecast PRSS prices
  • Real-time prices
  • Real-time dispatch

Each of these APIs provides a GET action that can be tested or accessed from our APIs page. A list of the returned fields and a brief description of each API is also provided on the APIs page, as are examples of the various ways the GET calls can be filtered.   

Please note that the Real-time prices and Real-time dispatch APIs are new APIs and should not be considered revised versions of the existing EMI | Real-time prices and EMI | Real-time dispatch APIs, respectively. The EMI | Real-time prices and EMI | Real-time dispatch APIs will be decommissioned on 21 December 2020.

We understand that WITS will create APIs to disseminate price and other data at some future date. We have published these APIs now because the WITS APIs are still some time away and these four new wholesale price APIs will make the data available much sooner after it has been generated than is the case with the existing APIs. In addition to the reduced data latency, we also expect much improved reliability from the new APIs.

The database underlying these new APIs holds data for the most recent 30 days. If historical data is required, users can download it from our Forecast prices and Real-time prices EMI datasets.

Access to forecast prices and real-time or indicative prices via APIs will assist in enabling better informed decisions to be made. Users of real-time prices should be aware that these prices are not the final prices on which the market is settled. See the discussion here and the links therein for more information about wholesale prices.

  • Liked by
  • geoff_ey
  • msouness
Order by: Standard | Newest | Votes
Phil Bishop posted this 20 January 2022

I'll take a look and check that the APIs are getting all the data they should be and that nothing else has fallen over. However, you should be aware that the NRSS and PRSS schedules only go 8 periods into the future. The NRSL and PRSL go up to 72 periods but we don't surface those schedules via an API.

Cheers

Phil

 

  • Liked by
  • NickR
Phil Bishop posted this 20 January 2022

The API will serve up data other than the latest data if you ask it to.

We have no plans to include the PRSL and NRSL cases because I understand we're not too far away from WITS releasing public facing, free-to-air APIs for all wholesale price data. Maybe later this quarter or perhaps in Q2. I'm not too close to that initiative and I'm not privy to all the details - but it's coming. And when it does get here, we will decommission our price APIs.

Cheers

Phil

  • Liked by
  • NickR
adam.m.fuller posted this 08 March 2021

Hi Phil, I recently signed up to the new real-time prices API.  The results I get from real-time dispatch for 

  • SPDLoadMegawatt
  • SPDGenerationMegawatt

are all zero for several spot checks I did.  Should I be seeing numbers close to actual MW?

Phil Bishop posted this 08 March 2021

It all looks fine to me when I checked just now. I see some nodes with just a price and no load or generation. Some nodes have generation but no load and others have load and no generation.

Specifically what nodes and at what time are you observing something that doesn't look right?

Cheers

Phil

 

adam.m.fuller posted this 08 March 2021

Request:

https://emi.azure-api.net/real-time-dispatch/?$filter=FiveMinuteIntervalDatetime eq datetime'2021-03-08T00:00' and PointOfConnectionCode eq 'BEN2201'

 

Response:

Pragma: no-cache
Arr-Disable-Session-Affinity: True
X-Content-Type-Options: nosniff
X-Frame-Options: deny
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-XSS-Protection: 1; mode=block
Content-Security-Policy: script-src 'self'
Cache-Control: no-store
Date: Mon, 08 Mar 2021 22:21:45 GMT
Content-Length: 87028
Content-Type: application/json
Expires: -1

[{
    "PointOfConnectionCode": "BEN2201",
    "FiveMinuteIntervalDatetime": "2021-03-08T00:00:00",
    "FiveMinuteIntervalNumber": 1,
    "RunDateTime": "2021-03-07T10:59:02",
    "SPDLoadMegawatt": 0.000,
    "SPDGenerationMegawatt": 0.000,
    "DollarsPerMegawattHour": 122.77
  },
  {
    "PointOfConnectionCode": "BEN2201",
    "FiveMinuteIntervalDatetime": "2021-03-08T00:05:00",
    "FiveMinuteIntervalNumber": 2,
    "RunDateTime": "2021-03-07T11:04:02",
    "SPDLoadMegawatt": 0.000,
    "SPDGenerationMegawatt": 0.000,
    "DollarsPerMegawattHour": 142.59
  },
  {
    "PointOfConnectionCode": "BEN2201",
    "FiveMinuteIntervalDatetime": "2021-03-08T00:10:00",
    "FiveMinuteIntervalNumber": 3,
    "RunDateTime": "2021-03-07T11:09:02",
    "SPDLoadMegawatt": 0.000,
    "SPDGenerationMegawatt": 0.000,
    "DollarsPerMegawattHour": 142.09
  },
  {
    "PointOfConnectionCode": "BEN2201",
    "FiveMinuteIntervalDatetime": "2021-03-08T00:15:00",
    "FiveMinuteIntervalNumber": 4,
    "RunDateTime": "2021-03-07T11:14:03",
    "SPDLoadMegawatt": 0.000,
    "SPDGenerationMegawatt": 0.000,
    "DollarsPerMegawattHour": 142.00
  },
  {
    "PointOfConnectionCode": "BEN2201",
    "FiveMinuteIntervalDatetime": "2021-03-08T00:20:00",
    "FiveMinuteIntervalNumber": 5,
    "RunDateTime": "2021-03-07T11:19:03",
    "SPDLoadMegawatt": 0.000,
    "SPDGenerationMegawatt": 0.000,
    "DollarsPerMegawattHour": 141.77
  },
  {
    "PointOfConnectionCode": "BEN2201",
    "FiveMinuteIntervalDatetime": "2021-03-08T00:25:00",
    "FiveMinuteIntervalNumber": 6,
    "RunDateTime": "2021-03-07T11:24:01",
    "SPDLoadMegawatt": 0.000,
    "SPDGenerationMegawatt": 0.000,

 

 

Phil Bishop posted this 15 March 2021

Thanks Adam. The problem you highlighted with the RTD API has now been fixed. Can't even blame the devs - they did exactly what I asked them to! At some point in the future when we get a little time, we'll enable more filtering options with all of the wholesale price APIs but hopefully they're adequate for now.

Cheers

Phil 

NickR posted this 20 January 2022

Hi, 

I have a query regarding the prss forecast API. When I query the API, I can read all the data for the current trading period, but I'm unable to access the forecast / future trading periods. Using WITS, I can see the data goes forwards about 72 trading periods for the access point I'm interested in but I'm unable to see this data via the PRSS API. 

I've tried all variations of the filter, including all tradingperiod numbers ge 1... and I get a similar result of only the current trading period. 

I've also tried using POSTMAN for testing to see if it was related to the web query tool, but alas the same issue. 

Is this me doing something wrong or is the forecast data not available on API? 

 

Request URL

https://emi.azure-api.net/forecast-prss/?$filter=PointOfConnectionCode eq 'GLN0331'

HTTP request

GET https://emi.azure-api.net/forecast-prss/?$filter=PointOfConnectionCode eq 'GLN0331' HTTP/1.1
Host: emi.azure-api.net
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••


Response status

200 OK

Response latency

416 ms

Response content

Pragma: no-cache
Arr-Disable-Session-Affinity: True
X-Content-Type-Options: nosniff
X-Frame-Options: deny
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-XSS-Protection: 1; mode=block
Content-Security-Policy: script-src 'self'
Cache-Control: no-store
Date: Thu, 20 Jan 2022 01:01:26 GMT
Content-Length: 211
Content-Type: application/json
Expires: -1

[{
  "PointOfConnectionCode": "GLN0331",
  "TradingDate": "2022-01-20T00:00:00",
  "TradingPeriodNumber": 35,
  "RunDateTime": "2022-01-20T13:33:01",
  "DollarsPerMegawattHour": 157.01
}]

Phil Bishop posted this 20 January 2022

Okay, I just ran a test on the PRSS API and can report the following:

  • I issued a call at 2:15pm on 20 Jan, which is in the middle of trading period 29
  • The call returns the most recent data available to the API which, as can be seen below, pertains to period 36 (5:30-6:00pm this evening)
  • The returned data was generated at 14:03 today (see RunDateTime), i.e about 12 minutes before I issued my call. 

So all of that tells me the PRSS API is working as it should.

Cheers

Phil 

[{ "PointOfConnectionCode": "ABY0111", "TradingDate": "2022-01-20T00:00:00", "TradingPeriodNumber": 36, "RunDateTime": "2022-01-20T14:03:03", "DollarsPerMegawattHour": 133.35 },

 

NickR posted this 20 January 2022

Thanks very much for testing and the explanation! I had missed the fact that it was showing me the latest future trading period (I hadn't looked to see which trading period we were currently in!) and I hadn't realised it will only publish the latest data and not everything between current and latest future.

Are there any plans to make the PRSL / NRSL available over an API in the future?