Skip to main content
POST

Authorizations

X-Api-Key
string
header
required

API key created from the magic-markets website

Body

application/json
betslip_id
string
required
price
number
required

Limit decimal price. A bet is taken only at this price or better, and an off-tick limit moves to the first tick that honours it; see "Price ticks".

stake
tuple
required

[currency, amount] - e.g. ["USDT", 115.38]

duration
number

Order duration in seconds (default 15)

exchange_mode
enum<string>
default:make_and_take

How the order interacts with the exchange. make_and_take: fill against the best available liquidity first; any remaining stake is advertised on the exchange at your price, while the order keeps taking newly available liquidity. take_only: only consume available liquidity; remaining stake is never advertised and other orders cannot match against it. dark: like make_and_take, but the advertised remaining stake is hidden from other customers - they can still match it when their price crosses yours, but they cannot see your price until then. There is no post-only mode: no order type rests in the book without also taking crossing liquidity.

Available options:
make_and_take,
take_only,
dark
keep_open_ir
boolean
default:false

Keep order open when event goes in-play

user_data
string | null
Maximum string length: 512
request_uuid
string

Idempotency key

accept_partial_fill
boolean
default:true
accept_better_price
boolean
default:true
force_want_price
boolean
default:false
min_taker_want_stake
object | null

dark orders only (rejected on other modes): the minimum total stake another order must request to be allowed to match yours at your price point. Cannot exceed the order's own stake. Set it non-zero to stop small probe orders from discovering your price.

current_score
object

Placement-time score assertion, [home, away]. When present, the order is rejected with validation_error / non_field_errors: ["event_scores_dont_match"] unless the value matches the live score the exchange holds for the event - use it to avoid placing on a price that has not reacted to a goal yet. Only meaningful for football: for sports without a goal-style running score, and while no score is known yet, the server assumes [0, 0] and rejects any other value. Omit the field to skip the check.

exclude_danger
boolean
default:false

When true, only liquidity sources that do not hold bets in danger status are used. When false or omitted, all available liquidity sources are used.

bookie_min_stakes
object

Optional per-source minimum stakes, keyed by source. A source is only used if it can take at least its minimum. Values are [currency, amount] tuples.

placer_type
string | null

Optional caller-supplied tag recorded against the order.

Response

Order created

status
enum<string>
Available options:
ok
data
object