Skip to main content
POST
/
api
/
users
/
{userId}
/
orders
Place Order
curl --request POST \
  --url https://trade.predexon.com/api/users/{userId}/orders \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "venue": "polymarket",
  "side": "buy",
  "amount": "<string>",
  "tokenId": "<string>",
  "ticker": "<string>",
  "outcome": "Yes",
  "price": "<string>",
  "type": "limit"
}
'
{
  "orderId": "kalshi-order-12345",
  "venue": "kalshi",
  "ticker": "KXBTC-25JAN10-B100000",
  "side": "buy",
  "outcome": "Yes",
  "amount": "25.00",
  "price": "0.55",
  "status": "filled",
  "createdAt": "2024-01-15T10:30:00.000Z"
}

Endpoint

POST /api/users/{userId}/orders
Place orders on Kalshi by setting venue: "kalshi" in the request body.
Kalshi trading requires USDC on Solana and SOL in your wallet. SOL is needed for Solana transaction fees.

Request Body

FieldTypeRequiredDescription
venuestringYesMust be "kalshi"
tickerstringYesMarket ticker from Kalshi List Markets
outcomestringYes"Yes" or "No" (case-sensitive)
sidestringYes"buy" or "sell"
amountstringYesUSDC to spend (buy) or shares to sell (sell)

Constraints

ConstraintValue
Min order> 1 USDC
Outcome valuesYes or No (case-sensitive)
Amount precision2 decimal places

Amount Semantics

SideAmount Represents
buyUSDC to spend
sellShares to sell
Kalshi orders execute atomically via DFlow - they either fill completely or fail. There’s no partial fill or orderbook. The price in the response is the execution price.
{
  "orderId": "kalshi-order-12345",
  "venue": "kalshi",
  "ticker": "KXBTC-25JAN10-B100000",
  "side": "buy",
  "outcome": "Yes",
  "amount": "25.00",
  "price": "0.55",
  "status": "filled",
  "createdAt": "2024-01-15T10:30:00.000Z"
}

Authorizations

x-api-key
string
header
required

Path Parameters

userId
string
required

Unique identifier for the user

Body

application/json
venue
enum<string>
required

Trading venue: polymarket or kalshi

Available options:
polymarket,
kalshi
side
enum<string>
required

Buy or sell

Available options:
buy,
sell
amount
string
required

USDC to spend (buy) or shares to sell (sell)

tokenId
string

Polymarket token ID (required for Polymarket orders)

ticker
string

Kalshi market ticker (required for Kalshi orders)

outcome
enum<string>

Yes or No (required for Kalshi, case-sensitive)

Available options:
Yes,
No
price
string

Price per share (0-1). Required for Polymarket limit orders. Must match tick size.

type
enum<string>

Order type (Polymarket only, defaults to limit)

Available options:
limit,
market

Response

201 - application/json

Order placed successfully

orderId
string

Unique order identifier

venue
string

Trading venue: polymarket or kalshi

tokenId
string

Polymarket token ID (Polymarket orders only)

ticker
string

Kalshi market ticker (Kalshi orders only)

side
string

Order side: buy or sell

outcome
string

The outcome being traded (e.g., Yes, No)

amount
string

Order amount in USDC

price
string

Order price (0-1)

status
string

Order status: live, matched, or filled

createdAt
string

ISO 8601 timestamp