Skip to main content
POST
/
api
/
accounts
/
{accountId}
/
orders
curl --request POST \
  --url https://trade.predexon.com/api/accounts/{accountId}/orders \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "venue": "polymarket",
  "predexonId": "polymarket:71321045679252212:Yes",
  "side": "buy",
  "type": "market",
  "amount": "2"
}
'
{
  "orderId": "0xe69245af3a00e487",
  "venue": "polymarket",
  "predexonId": "polymarket:71321045679252212:Yes",
  "side": "buy",
  "outcome": "Yes",
  "status": "filled",
  "createdAt": "2026-04-15T10:30:00.000Z",
  "size": "3.7547",
  "price": "0.53",
  "filled": "3.7547",
  "market": {
    "tokenId": "71321045679252212",
    "outcome": "Yes"
  },
  "fee": {
    "policyApplied": true,
    "feeBps": 50,
    "platformFeeBps": 0,
    "partnerFeeBps": 50,
    "grossAmount": "2",
    "netOrderAmount": "1.99",
    "maxFeeReserved": "0.01"
  }
}
Identify the market with predexonId (recommended) or a market bag. If both are provided, predexonId wins.

Required market fields by venue

Different venues identify markets differently. Populate the market bag with the fields the target venue requires:
VenueRequired fieldsNotes
PolymarkettokenIdEach outcome (Yes/No) has its own token ID.
PredicttokenId + marketIdBoth required — marketId is the numeric Predict market ID.
OpinionmarketId + outcomePass outcome (e.g., "Yes") to target a specific side; tokenId may also be accepted when trading a specific outcome.
LimitlesstokenId + marketSlugmarketSlug identifies the Limitless market (e.g., "will-eth-flip-btc-by-end-of-2026"). Both required.
Alternatively, pass a predexonId (format: {venue}:{primaryId}[:{outcome}]) — the server resolves it into the correct venue-specific fields.

Order type requirements

Order typeRequiredRejected
Market BUYamountsize
Market SELLsizeamount
Limit BUY / SELLsize, priceamount

Venue-specific constraints

VenuePrice tickSize precision
Polymarket2 decimals (0.01)unconstrained
Predict2 decimals (0.01)unconstrained
Opinionvenue-specificvenue-specific
Limitless3 decimals (0.001)max 3 decimal places
price must be strictly between 0 and 1 (exclusive) on every venue.

Authorizations

x-api-key
string
header
required

Path Parameters

accountId
string
required

Body

application/json

At least one of predexonId or market must be provided. predexonId takes precedence when both are supplied.

venue
enum<string>
required
Available options:
polymarket,
predict,
opinion,
limitless
side
enum<string>
required
Available options:
buy,
sell
type
enum<string>
required
Available options:
limit,
market
predexonId
string

Cross-venue stable market identifier, resolved server-side. Format: {venue}:{primaryId}[:{outcome}].

market
object

Venue-specific market identification. Populate the fields the target venue requires: Polymarket needs tokenId; Predict needs tokenId and marketId; Opinion needs marketId (and tokenId when trading a specific outcome). On responses, the bag contains only the fields the venue surfaces (tokenId, marketId, ticker, outcome) — request-only fields like marketSlug are not echoed back.

amount
string

Stablecoin to spend — USDC.e (Polymarket), USDT (Predict / Opinion), USDC (Limitless). Market BUY only.

size
string

Number of shares. Required for market SELL and all limit orders.

price
string

Price per share, between 0 and 1 (exclusive). Required for limit orders.

Response

Order placed

orderId
string
venue
string
predexonId
string

Cross-venue market identifier. Round-trips from request on placement; resolved from venue fields on reads.

side
string
outcome
string
status
enum<string>

Normalized order status across venues

Available options:
open,
filled,
cancelled,
expired,
pending,
failed
createdAt
string
size
string

Number of shares (when size was provided in request)

price
string | null
filled
string | null

Number of shares filled. Emits null (not absent) when no fills.

market
object

Venue-specific market identification. Populate the fields the target venue requires: Polymarket needs tokenId; Predict needs tokenId and marketId; Opinion needs marketId (and tokenId when trading a specific outcome). On responses, the bag contains only the fields the venue surfaces (tokenId, marketId, ticker, outcome) — request-only fields like marketSlug are not echoed back.

fee
object

Fee metadata (when fees are active)

message
string