Skip to main content
POST
/
orders
Create Order
curl --request POST \
  --url https://api.limitless.exchange/orders \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "order": {
    "salt": 1234567890,
    "maker": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "signer": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "tokenId": "19633204485790857949828516737993423758628930235371629943999544859324645414627",
    "makerAmount": 5000000,
    "takerAmount": 10000000,
    "feeRateBps": 0,
    "side": 0,
    "taker": "0x0000000000000000000000000000000000000000",
    "expiration": "2025-04-30T23:59:59Z",
    "nonce": 42,
    "price": 0.75,
    "signature": "0x123abc456def789ghi0123abc456def789ghi0123abc456def789ghi0123456789012345678901",
    "signatureType": 2
  },
  "ownerId": 12345,
  "orderType": "GTC",
  "marketSlug": "biden-vs-trump-2024",
  "clientOrderId": "client-order-001",
  "onBehalfOf": 12345
}
'
{
  "order": {
    "salt": 1234567890,
    "maker": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "signer": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "tokenId": "19633204485790857949828516737993423758628930235371629943999544859324645414627",
    "makerAmount": 5000000,
    "takerAmount": 10000000,
    "feeRateBps": 0,
    "side": 0,
    "taker": "0x0000000000000000000000000000000000000000",
    "expiration": "2025-04-30T23:59:59Z",
    "nonce": 42,
    "price": 0.75,
    "signature": "0x123abc456def789ghi0123abc456def789ghi0123abc456def789ghi0123456789012345678901",
    "signatureType": 2
  },
  "execution": {
    "matched": true,
    "settlementStatus": "MINED",
    "feeRateBps": 25,
    "effectiveFeeBps": 26,
    "totalsRaw": {
      "contractsGross": "1000000",
      "contractsFee": "1000",
      "contractsNet": "999000",
      "usdGross": "500000",
      "usdFee": "500",
      "usdNet": "499500"
    },
    "tradeEventId": "4aa706dd-6c57-4f3c-945a-99818dfd95f1",
    "txHash": "0xabc123",
    "clientOrderId": "client-order-001"
  },
  "makerMatches": [
    {}
  ]
}
Before creating orders:
  1. Fetch market data via Get Market Details to get venue and token IDs
  2. Sign the order using EIP-712 with venue.exchange as verifyingContract
  3. Ensure you have token approvals set up

Optional Fields

FieldTypeDescription
clientOrderIdstringIdempotency key (max 128 chars). If a duplicate is submitted, the server returns 409 Conflict.
onBehalfOfnumberProfile ID to place order on behalf of. Requires a scoped API token with trading scope and a partner relationship with the target profile.

Delegated Signing

Partners with the delegated_signing scope can omit signature and signatureType from the order object. The server signs the order using a Privy server wallet linked to the target account. See Authentication for details.

Execution Response

The response includes an execution object with settlement details:
FieldTypeDescription
matchedbooleanWhether the order was matched immediately
settlementStatusstringUNMATCHED, MATCHED, MINED, CONFIRMED, RETRYING, or FAILED
tradeEventIdstringTrade event ID (present when matched)
txHashstringOn-chain transaction hash (present when mined)
feeRateBpsnumberFee rate in basis points
effectiveFeeBpsnumberEffective fee rate after rebates
totalsRawobjectRaw execution totals (contractsGross, contractsFee, contractsNet, usdGross, usdFee, usdNet)

Authorizations

X-API-Key
string
header
required

API key for programmatic access. Generate at limitless.exchange -> profile menu -> Api keys.

Body

application/json

Order creation data including signature and order parameters

order
object
required

Order details including signature and amounts

ownerId
number
required

Profile ID of the order owner

Example:

12345

orderType
enum<string>
required

Order type (GTC=Good Till Cancelled, FOK=Fill Or Kill)

Available options:
FOK,
GTC
Example:

"GTC"

marketSlug
string
required

Market identifier slug

Example:

"biden-vs-trump-2024"

clientOrderId
string

Client-provided idempotency key for order placement. If a duplicate is submitted, the server returns 409 Conflict.

Maximum string length: 128
Example:

"client-order-001"

onBehalfOf
number

Profile ID to place order on behalf of (partner flow). Requires an API token with trading scope and a partner relationship with the target profile.

Example:

12345

Response

Order successfully created and matched

order
object
required

Order details including slim market and owner

execution
object
required

Execution and settlement summary

makerMatches
object[]

Maker matches if order was matched immediately