Skip to main content
TL;DR — An order is your instruction; a bet is the wager that lands at a bookmaker. Identifiers (fixtureId, outcomeId, playerId, participantId) are shared with OddsPapi v5. Every order carries a unique requestUuid for idempotency. Three independent lifecycles track an order, each of its bets, and each bet’s settlement.

Identifiers

ABP shares its identifier space with OddsPapi v5 — the same fixtureId and outcomeId you discover via OddsPapi are the ones you send to ABP. No translation layer is needed.
IdentifierTypeDescription
fixtureIdstringA single event/match (e.g. id1000004461512432). Used for standard fixture markets.
futureIdstringAn outright/futures market (e.g. tournament winner). Mutually exclusive with fixtureId. (coming soon)
outcomeIdintegerThe specific selection within a market (e.g. home win, over 2.5).
playerIdintegerPlayer for player-prop markets. Use 0 when the market is not player-specific.
participantIdintegerThe selection within a futures market (team/player to win). Futures only. (coming soon)

Market keys

Internally, every priced selection is addressed by a composite market key:
Fixture:  fixtureId:bookmaker:outcomeId:playerId
Future:   futureId:bookmaker:outcomeId:playerId:participantId
You rarely build these by hand — GET /betslip returns them keyed and ready — but understanding the shape helps when reading WebSocket betslip payloads.

Orders vs bets

This distinction is the single most important thing to internalize.
OrderBet
What it isYour instruction to place a stakeAn actual wager accepted by a bookmaker
Created byYou, via POST /place-ordersABP, while fulfilling an order
Cardinality1 order0..N bets
CurrencyorderCurrency (default USD)the account’s native currency
Identified byorderId (+ your requestUuid)betId
One order can produce multiple bets when partial fills or multi-bookmaker routing apply. For example, a single order for 5,000 USD might fill as three bets across two bookmakers. See Order Placement for how fills are distributed.

Idempotency & request deduplication

Network retries are unavoidable, and a retried placement must never double-stake. ABP guarantees this through request deduplication.
1

Assign a unique requestUuid per order

Each order in a POST /place-orders batch carries its own requestUuid (standard 8-4-4-4-12 UUID). Generate it client-side, once, and reuse the same value on every retry of that order.
2

ABP fingerprints it server-side

The server records each requestUuid it has seen with a 30-minute TTL. Within that window, a repeat of the same requestUuid is recognised as a duplicate.
3

Duplicates are silently skipped

A duplicate order is not placed again and is not returned as a decline. It is simply skipped, so the rest of the batch processes normally.
4

All-duplicate batches return 409

If every order in a request is a duplicate, there is nothing to do, so the request returns 409 Conflict with the offending UUIDs.
{
  "detail": {
    "error": "All orders are duplicates",
    "duplicateUuids": ["eb45b192-317b-42d5-9f65-af497b9fa8c1"],
    "inProgressUuids": []
  }
}
Reusing a requestUuid for a different order within 30 minutes will cause that order to be skipped. Always generate a fresh UUID for each distinct placement, and only reuse it verbatim when retrying that exact placement.

Order lifecycle

PENDING → PROCESSING → FILLED / PARTIALLY_FILLED / REJECTED / EXPIRED / CANCELLED / FAILED
StatusMeaning
PENDINGOrder received and queued
PROCESSINGRouting to bookmakers
FILLEDAll stake placed successfully
PARTIALLY_FILLEDSome stake placed; remainder expired or no capacity
REJECTEDFailed validation (bad odds, invalid fixture, etc.)
EXPIREDexpiresAt reached before filling (default 5s, max 24h)
CANCELLEDExplicitly cancelled by the client
FAILEDInternal error during placement

Bet lifecycle

PENDING → PLACED → CONFIRMED / REJECTED / CANCELLED / FAILED / VOID
StatusMeaning
PENDINGBet created, awaiting bookmaker response
PLACEDSent to bookmaker, awaiting confirmation
CONFIRMEDBookmaker accepted the bet
REJECTEDBookmaker rejected the bet
CANCELLEDBet cancelled before confirmation
FAILEDInternal error during placement
VOIDBet voided by the bookmaker

Settlement lifecycle

Once a bet is CONFIRMED, settlement tracks the financial result:
UNSETTLED → WON / LOST / VOID / HALF_WON / HALF_LOST / PUSH / CASHOUT
StatusMeaning
UNSETTLEDBet is live, awaiting result
WONFull win
LOSTFull loss
VOIDVoided (stake returned)
HALF_WONAsian-handicap partial win
HALF_LOSTAsian-handicap partial loss
PUSHStake returned (tie on the line)
CASHOUTEarly withdrawal at a negotiated price
Settlement changes are pushed over the settlements WebSocket channel. See Order Placement and WebSocket.

Account priority & the limit cascade

Each bookmaker account has a priority (higher = preferred). When routing, ABP selects the highest-priority active account first for each bookmaker. Stake limits resolve in priority order — account limits > bookmaker limits > odds limits — with the first non-null value winning:
account.maxStake → bookmaker.maxStake → odds.limit
account.minStake → bookmaker.minStake → odds.limitMin
Full detail and worked examples live in Currency & Limits.

Glossary

TermDefinition
OrderA client instruction to place a stake, identified by orderId and your requestUuid.
BetA wager accepted by a bookmaker, identified by betId, belonging to one order.
FillThe act of placing stake. A partial fill places only part of the requested stake.
BetslipThe aggregated view of live odds and limits across your configured accounts for a selection.
requestUuidClient-generated idempotency key (UUID) for an order; deduplicated for 30 minutes.
orderCurrencyThe currency an order’s stakes are denominated in (default USD).
Native currencyAn account’s own trading currency; bets and balances are denominated in it.
PriorityPer-account ranking; higher priority accounts are selected first.
Limit cascadeResolution order for stake limits: account → bookmaker → odds.
SweepMulti-bookmaker partial-fill mode that exhausts the best price before moving on.
SlugA bookmaker’s string identifier (e.g. pinnacle, betfair-ex).
SettlementThe financial result of a confirmed bet (WON/LOST/VOID/…).

Next steps

Order Placement

How fills, pricing, and the limit cascade work.

Currency & Limits

Denomination, conversion, and limits in depth.

Quickstart

Place your first bet in 5 steps.

Bookmakers

Capability matrix across all 32 bookmakers.