
NEM Dispatch Bidding
The NEM Dispatch Bidding API allows authorised participants to submit and retrieve their NEM Dispatch Bids/Offers. AEMO uses effective NEM Dispatch Bid/Offer submissions in the Central Dispatch process.
Note: This API version is backward compatible with the previous version. Participants not using BDUs can continue using the API.
Audience
The primary audience is implementers and maintainers of APIs in participant organisations.
The secondary audience is BAs and other interested parties.
API status
Final, participants can use the OpenAPI specification to build their APIs.
Changes in this version
Inclusion of direction attribute to submitBids API.
Updates to the description of BDU attributes.
Updates to the submitBids payload parameters.
Related resources
Related rules and procedures
See Related rules, procedures, and guidelines in Markets Portal Help.
Prerequisites
Before using the API, see API Requirements in Markets Portal Help. You must also know:
your Dispatchable Unit Identifier (DUID), Interconnector, or Link ID.
the Participant File Server address to retrieve the:
bid_file_name.TXT submission acknowledgement (ack or cpt) to your ParticipantID\Import\MasterBids folder.
NEM_BIDS file to your ParticipantID\Import\CSV\Reports. This report conforms to the Electricity Data Model. For details about the tables in this report, see Electricity Data Model > Bids package.
Payload format
This API supports a JSON format payload. <This is an example. Some APIs support csv and JSON>
Parameters
submitBids - Path Variables
getBid - Query Parameters
getBids - Query Parameters
getSubmission - Query Parameters
getSubmissions - Query Parameters
API gateway
Participants can connect to the AEMO API Gateway through the internet or MarketNet. See URL format in the API Reference.
All communications between AEMO’s API gateway and participants’ gateways use HTTPS. AEMO APIs do not support HTTP.
User rights access
Participant administrators provide access to the NEM Dispatch Bidding API using the entity: EMMS – Offers and Submissions – Energy FCAS MNSP Bids.
For more information, see Guide to User Rights Management.
Authorisation
API requests are authorised by Basic HTTP authentication (Basic Auth) using a Base64-encoded username and password. The credentials are assigned by your company’s participant administrator.
In an API request, include the Base64-encoded string in a HTTPS Authorization header. For more information, see Authorisation in the API Reference.
Compression
You can submit your API compressed or uncompressed. Compression protocols are gzip or deflate.
Throttling
To control traffic, AEMO implements throttling limits shown in the table below.
If requests exceed the throttling limit, the API responds with a HTTP 429 or 422 status.
Participants systems must manage throttling limits. AEMO can also reject multiple API requests for the same participantId at the same time.
Endpoint
Limit
submitBids
1 request per second per participantId.
The participantId is identified from the X-initiatingParticipantID request header parameter.
This restriction is due to an existing legacy limit in the bidding tables in the data model. The bidding tables rely on the field OfferDate in the primary key, which is a date time field supporting precision only to the second.
getBid
getBids
getSubmission
getSubmissions
100 requests per minute, per participantId
Response codes
See Response codes in the API Reference. The API also has additional information for following response codes:
Code
Description
Scenario
422
Unprocessable Entity
The API content failed business validation rules. See Bidding Validation Messages (available over MarketNet only) or Guide to FTP Energy, FCAS, and MNSP Bids and Offers
422
Primary Key Violation (a Bid/Offer already exists for the same time)
This message is equivalent to 429 Too Many Requests. Due to a backend process error where the request slips through the throttling validation and triggers a primary key violation. Wait and retry the submission
429
Too Many Requests
Possible reasons:
The requests exceed the throttling limit of 1 request per second. Wait and retry the submission
A primary key violation due to a backend process error where the request slips through the throttling validation and triggers a primary key violation. Wait and retry the submission
Submission interfaces
See How to use the Dispatch Bid/Offer Submission in Markets Portal Help.
Submission size
A submission request or response has a payload limit of 10 MB (compressed or uncompressed).
Submission processing
Submissions are processed in the order AEMO receives them. You must ensure the correct submission order so your latest Dispatch Bid/Offer Submission is the Effective Dispatch Bid/Offer Submission acknowledged by AEMO’s systems.
Submission response
If the entire submission is valid you receive a response 200 with transaction ID and other metadata related to the Submission.
If your submission has multiple Units and multiple Trading Days in a single request, and one has an error, AEMO rejects the whole submission.
If your submission has an error AEMO rejects it with a response code, displaying the source of the problem so you can identify its location. Rectify the issue by updating the values appropriately and resubmitting.
Submission details
Immediately after submission, on the Participant File Server > ParticipantID\Import\CSV\Reports folder, you receive a private NEM_BIDS file with your submission information. For details, see Electricity Data Model, below.
Submission cut-off time
The Bid/Offer Cut-off Time is 12:30 pm the day before the Trading Day.
Daily bid/offer
A Daily Bid/Offer is one submitted before the submission cut-off time.
Rebid
A Rebid is a Bid/Offer submitted after the submission cut-off time.
Base URLs
The table below lists the base URLs for this API.
Environment
Base URL
Data Type
Pre-Production Internet Entry
https://apis.preprod.aemo.com.au:9319/NEMWholesale/bidding/v1
Test Data
Pre-Production MarketNet Entry
https://apis.preprod.marketnet.net.au:9319/NEMWholesale/bidding/v1
Test Data
Production Internet Entry
https://apis.prod.aemo.com.au:9319/NEMWholesale/bidding/v1
Live Data
Production MarketNet Entry
https://apis.prod.marketnet.net.au:9319/NEMWholesale/bidding/v1
Live Data
Direction field enumeration and use
Submit Bids 'energybid' and 'fcasBids' supports a conditional 'direction' indicator. Provision of allowable enumerated value is mandatory for BDU Energy and Regulation FCAS service type and optional for others.
Validations are performed in allowable combinations. See Direction Field Enumeration and Use Table.
getSubmission scenarios
Use query parameters in an API request to return information as described in the table below.
Parameter
Response
Explanation
None
No results
If no submissions match the reference ID, then it returns a null result
referenceId
The Submission matching the given referenceId
If no submissions match the reference ID, then it returns a null result
transactionId
The Submission matching the given transactionId
If no submissions match the transaction ID, then it returns a null result
referenceId
transactionId
The Submission that matches the given referenceId and the given transactionId
If the Submission for the given data has no data, then it returns a null result
getSubmissions scenarios
Use query parameters in an API request to return information as described in the table below.
Parameter
Response
Explanation
None
All Submissions made by the requesting participantId from today minus 90 days.
The default toOfferTimeStamp is the current time
The default fromOfferTimeStamp is the current day minus 90 days
fromOfferTimeStamp
toOfferTimeStamp
All Submissions from the given fromOfferTimeStamp until the given toOfferTimeStamp, made by the requesting participantId
You must provide the fromOfferTimeStamp and the toOfferTimeStamp. The range must not exceed 90 days
transactionId
fromOfferTimeStamp
toOfferTimeStamp
All Submissions from the given fromOfferTimeStamp until the given toOfferTimeStamp exactly matching the given transactionId, made by the requesting participantId
This example also applies for referenceId, transactionId, and comments because all are partial match variables
fromTradingDate
All submissions from the default fromOfferTimeStamp to the default toOfferTimeStamp with Bids/Offers for Trading Dates equal to or greater than the given fromTradingDate, made by the requesting participantId
This is not a definitive list of all Bids/Offers for the given Trading Date range because there is a restriction with the OfferTimeStamp range
getBids scenarios
Use query parameters in an API request to return information as described in the table below.
Parameter
Response
Explanation
None
The current Bid/Offer for each Service Type for each owned duid / InterconnectorId between the current tradingDate and the current tradingDate + 7 days
You can use the return values to find the full bid detail or getSubmission to find the full Submission detail
includeSuperseded
All Bids/Offers for each Service for each Partipant ID owned duid / InterconnectorId submitted for the Trading Dates between the current Trading Date and the current Trading Date + 7 days
Returns all Bid/Offers, not only effective Bids/Offers