Skip to main content

Breaking changes

Place Order — POST /v1/pm/events/{eventId}/markets/{marketId}/orders

This is a breaking change. All existing integrations must be updated.

Request body changes

ChangeBeforeAfter
Outcome fieldoutcome (YES / NO)outcomeId (UUID of the outcome)
Order typeImplicit (market order if no price)type field required (LIMIT or MARKET)

New optional fields (CLOB markets)

FieldTypeDescription
timeInForcestringGTC, GTD, FAK, or FOK. Defaults to GTC for limit orders, FAK for market orders.
postOnlybooleanIf true, the order is rejected instead of crossing the spread. Limit orders only.
maxSlippagenumberMaximum acceptable slippage for market orders (0.00–1.00).
expiresAtstringISO 8601 expiration timestamp. Required for GTD orders.

Migration guide

Before:
{
  "side": "BUY",
  "outcome": "YES",
  "amount": 100,
  "currency": "USD",
  "price": 0.70
}
After:
{
  "side": "BUY",
  "outcomeId": "c3d4e5f6-a7b8-9012-cdef-345678901234",
  "amount": 100,
  "type": "LIMIT",
  "currency": "USD",
  "price": 0.70,
  "timeInForce": "GTC"
}
To get the outcomeId, use the Get Event endpoint — each outcome in a market has an id field.

Get Quote — POST /v1/pm/events/{eventId}/markets/{marketId}/quote

Request body changes

ChangeBeforeAfter
Outcome fieldoutcome (YES / NO)outcomeId (UUID of the outcome)

Migration guide

Before:
{
  "side": "BUY",
  "outcome": "YES",
  "amount": 100,
  "currency": "USD"
}
After:
{
  "side": "BUY",
  "outcomeId": "c3d4e5f6-a7b8-9012-cdef-345678901234",
  "amount": 100,
  "currency": "USD"
}

Response format changes

The Place Order response now uses a unified order key instead of separate ammOrder / clobOrder keys: Before:
{
  "engine": "CLOB",
  "clobOrder": { ... }
}
After:
{
  "engine": "CLOB",
  "order": { ... }
}
The engine field (AMM or CLOB) remains unchanged.