QuickStart
View Prices
View Price data for Markets to see the current open interest and details of the last trade.
Back to Getting Started with the API
Prices
When a Market is open and matching, Price data can be requested to show the current state of trading. The data anonymises working LIMIT Orders and summarises them at discrete price levels. It also includes the transactional quantity and price of the most recent trade.
Price data is a snapshot of the Market at the time of the request. The POST /v01/prices/multiple endpoint is intended to be polled at intervals of a few seconds to provide a continuously updated view of the Market.
Historic Price data suitable for charting is available from GET /v01/prices/historic. The GET /v01/prices/aggregated_trades endpoint provides trading history aggregated into time periods, suitable for longer-term views of Market activity. These historic endpoints are not covered in this QuickStart, but are available in the full API.
Link to Prices documentationView Prices for Markets
The call to view Price data for Markets requires a list of Market primary keys.
The POST /v01/prices/multiple endpoint allows a Developer to request Price data for many markets in the same call. The returned data will contain at most one Price data object per Market requested. The posted data list should contain at least one Market primary key.
- [mkt_pk, ...] (mandatory): List of Primary keys for the Market(s).
curl -X POST "https://prod.haggledigital.com/v01/prices/multiple" ^
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" ^
-H "Content-Type: application/json" ^
-d "[\"00000000-0000-0000-0000-000000000001\"]"
curl -X POST "https://prod.haggledigital.com/v01/prices/multiple" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '["00000000-0000-0000-0000-000000000001"]'
Response
The response will be an HTTP 200 OK message on success, or an error indicating a problem with the Market key parameters. On success, a list of Price data objects is returned.
If a large number of Price data objects exist, the data can be requested in paginated form. Query parameters can be added to the request to set the values for rowsPerPage and pageNo. The caller should call iteratively with an incrementing pageNo value until an HTTP 204 No Content message is returned, indicating a successful call with no more data to return.
[
{
"mkt_pk": "00000000-0000-0000-0000-000000000001",
"T": "2026-10-19T10:29:22.099022",
"LPx": "2.00",
"LVol": "5",
"B": [
{
"Px": "2.00",
"V": "295"
},
{
"Px": "1.95",
"V": "100"
},
{
"Px": "1.90",
"V": "5"
}
],
"S": [
{
"Px": "2.10",
"V": "117"
}
]
}
]
The mkt_pk field returned is the Primary Key for the Market. The T field is the UTC time of the matching pass that generated the Price data object.
The LPx and LVol fields hold information about the most recent trade. The LPx is the last traded price. The LVol is the quantity of Transactional Tradeable Item that was exchanged in the last trade. This "Last Traded" data is provided with each Price data packet whether the matching pass created a trade or not in that pass.
The B and S fields hold lists that represent the Buy Side (B) and the Sell Side (S) of the Market. Each list element is a price level, with the best price level shown first in the list order. These two elements effectively show the Market state as it was at the time shown in the T field.
Each Price level object has a Px and a V field. The Px field holds the price for that Price level. The V field holds the open Transactional Tradeable Item quantity summed across all Orders with that Price.
The intention is that the Developer will periodically poll the Market, providing a Trader with a near-real-time view of the Market as it changes over time. As described above, this endpoint can be used to poll multiple Markets with a single call.
Create Fills
When a Market is open and has Orders working, trading is possible. If an Order on one side overlaps with an Order on the other side, the Market will match the Orders to execute a trade. Each execution will create a Fill for the Buy Order and a Fill for the Sell Order, to record the trade.