Skip to main content
Place a new limit order or market order on a specific market outcome. Set price to a value between 0 and 1 for a limit order, or leave it null to execute at the current market price.

Endpoint

POST https://api.futuur.com/orders/

Authentication

This endpoint requires HMAC authentication. Include the Key, Timestamp, and HMAC headers on every request. See the authentication guide for signing instructions.

Request

market
integer
required
The market (outcome) ID to place the order on.
side
string
required
Order side. Use bid to purchase shares or ask to sell shares.
currency
string
required
Currency for the order. One of USDC, USDT, USD, or OOM.
price
number
Limit price expressed as a probability between 0 and 1. Set to null to place a market order that executes immediately at the best available price.
shares
number
Number of shares to buy or sell.
amount
number
Total cost of the order in currency units. Used for validation against shares and price. Optional if shares is provided.
position
string
Position direction. Use l (long) to bet that the outcome occurs, or s (short) to bet against it.
expired_at
string
ISO 8601 datetime at which an unfilled or partially filled limit order is automatically canceled. Set to null for no expiration.
cancel_conflicting_orders
boolean
default:"false"
When true, any existing open orders that conflict with this order are canceled before the new order is placed.

Response

Returns 201 Created with the newly created order object.
id
integer
required
Unique ID of the created order.
market
integer
required
Market (outcome) ID the order is placed on.
side
string
required
Order side: bid or ask.
currency
string
required
Currency used: USDC, USDT, USD, or OOM.
price
number
Limit price between 0 and 1, or null for a market order.
shares
number
Number of shares in the order.
amount
number
Cost of the order in currency units.
position
string
Position direction: l (long) or s (short).
status
string
required
Initial order status. Typically open or processing immediately after creation.
expired_at
string
Expiration datetime, or null if no expiration is set.
created_at
string
required
ISO 8601 datetime when the order was created.

Error codes

The following application-level error codes may be returned in the response body when the order cannot be created.
Error codeDescription
RealMoneyForbiddenCountryReal-money trading is not available in your country.
RealMoneyBetNotAllowedYour account is not permitted to place real-money orders.
EmailNotConfirmedYou must confirm your email address before placing orders.
UserBlockedBetsYour account has been blocked from placing orders.
InvalidHMACKeyThe HMAC signature or key is invalid.
UserNotEnoughBalanceYour account balance is insufficient for this order.
InvalidSharesThe number of shares specified is not valid.
OutcomeDisabledThe selected market outcome is currently disabled.
MarketClosedThe market is closed and no longer accepting orders.
OrderBookMarketClosedThe order book for this market is closed.
OrderBookConflictingOrdersConflicting open orders exist. Set cancel_conflicting_orders to true to resolve.
OrderBookInvalidAmountThe order amount does not meet the minimum or maximum requirements.

Example

curl --request POST \
  --url "https://api.futuur.com/orders/" \
  --header "Key: pk_live_abc123def456" \
  --header "Timestamp: 1712534400" \
  --header "HMAC: 3a9f2c1b...sha512signature" \
  --header "Content-Type: application/json" \
  --data '{
    "market": 3801,
    "side": "bid",
    "currency": "USDC",
    "price": 0.65,
    "shares": 100,
    "position": "l",
    "cancel_conflicting_orders": false
  }'
Sample response (201 Created)
{
  "id": 10483,
  "market": 3801,
  "side": "bid",
  "currency": "USDC",
  "price": 0.65,
  "shares": 100.0,
  "amount": 65.0,
  "position": "l",
  "status": "open",
  "expired_at": null,
  "created_at": "2026-04-07T11:30:00Z"
}