Skip to main content
POST
/
portfolio
/
orders
Create Order
curl --request POST \
  --url https://api.elections.kalshi.com/trade-api/v2/portfolio/orders \
  --header 'Content-Type: application/json' \
  --header 'KALSHI-ACCESS-KEY: <api-key>' \
  --header 'KALSHI-ACCESS-SIGNATURE: <api-key>' \
  --header 'KALSHI-ACCESS-TIMESTAMP: <api-key>' \
  --data '{
  "ticker": "<string>",
  "client_order_id": "<string>",
  "side": "yes",
  "action": "buy",
  "count": 2,
  "type": "limit",
  "yes_price": 50,
  "no_price": 50,
  "yes_price_dollars": "0.5000",
  "no_price_dollars": "0.5000",
  "expiration_ts": 123,
  "time_in_force": "FOK",
  "buy_max_cost": 123,
  "post_only": true,
  "reduce_only": true,
  "sell_position_floor": 123,
  "zero_profit": true,
  "self_trade_prevention_type": "taker_at_cross",
  "order_group_id": "<string>",
  "cancel_order_on_pause": true
}'
{
  "order": {
    "order_id": "<string>",
    "user_id": "<string>",
    "client_order_id": "<string>",
    "ticker": "<string>",
    "side": "yes",
    "action": "buy",
    "type": "limit",
    "status": "resting",
    "yes_price": 123,
    "no_price": 123,
    "yes_price_dollars": "0.5000",
    "no_price_dollars": "0.5000",
    "fill_count": 123,
    "remaining_count": 123,
    "initial_count": 123,
    "taker_fees": 123,
    "maker_fees": 123,
    "taker_fill_cost": 123,
    "maker_fill_cost": 123,
    "taker_fill_cost_dollars": "<string>",
    "maker_fill_cost_dollars": "<string>",
    "queue_position": 123,
    "taker_fees_dollars": "<string>",
    "maker_fees_dollars": "<string>",
    "expiration_time": "2023-11-07T05:31:56Z",
    "created_time": "2023-11-07T05:31:56Z",
    "last_update_time": "2023-11-07T05:31:56Z",
    "self_trade_prevention_type": "taker_at_cross",
    "order_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "cancel_order_on_pause": true
  }
}

Authorizations

KALSHI-ACCESS-KEY
string
header
required

Your API key ID

KALSHI-ACCESS-SIGNATURE
string
header
required

RSA-PSS signature of the request

KALSHI-ACCESS-TIMESTAMP
string
header
required

Request timestamp in milliseconds

Body

application/json
ticker
string
required
side
enum<string>
required
Available options:
yes,
no
action
enum<string>
required
Available options:
buy,
sell
count
integer
required
Required range: x >= 1
client_order_id
string
type
enum<string>
default:limit
Available options:
limit,
market
yes_price
number
Required range: 1 <= x <= 99
no_price
number
Required range: 1 <= x <= 99
yes_price_dollars
string

Submitting price of the Yes side in fixed-point dollars

Example:

"0.5000"

no_price_dollars
string

Submitting price of the No side in fixed-point dollars

Example:

"0.5000"

expiration_ts
integer
time_in_force
enum<string>
Available options:
FOK,
GTC,
IOC
buy_max_cost
integer

Maximum cost in cents. When specified, the order will automatically have Fill-or-Kill (FoK) behavior.

post_only
boolean
reduce_only
boolean
sell_position_floor
integer

Deprecated: Use reduce_only instead. Only accepts value of 0.

zero_profit
boolean
self_trade_prevention_type
enum<string>

The self-trade prevention type for this order

Available options:
taker_at_cross,
maker
order_group_id
string

The order group this order is part of

cancel_order_on_pause
boolean

If this flag is set to true, the order will be canceled if the order is open and trading on the exchange is paused for any reason.

Response

Order created successfully

order
object
required
I