Skip to main content
POST
Submit Order

Headers

PX-Key-Id
string
required

The key id issued for your signing keypair.

PX-Timestamp
string
required

Unix seconds at signing, valid within 30 seconds of the server clock.

PX-Signature
string
required

Ed25519 signature of the request

PX-Content-Sha256
string
required

Hex SHA-256 of the request body, or the SHA-256 of the empty string when there is no body.

Idempotency-Key
string
required

Idempotency key for this request. Re-sending the same key with the same body returns the original result and creates no duplicate; re-sending it with a different body is rejected with 422.

Minimum string length: 1
Example:

"2f1a8c4e-0b3d-4a9c-8e7f-1a2b3c4d5e6f"

Body

application/json
ticker
string
required

Kalshi market ticker identifying the market to trade.

Minimum string length: 1
Example:

"KXPRES-2028"

side
enum<string>
required

Order direction on the market's YES book.

Selling YES is the same order as buying NO, so ASK covers both.

Available options:
BID,
ASK
Example:

"BID"

count
string
required

Order size in contracts, as a decimal string. Contracts trade in steps of 0.01.

Example:

"10"

price
string
required

Limit price per contract in dollars, as a decimal string on the market's YES book. A price off that market's tick grid is rejected.

Example:

"0.38"

postOnly
boolean

Reject the order if it would cross the book instead of resting as a maker.

selfTradePrevention
enum<string>

Which order is cancelled when this order would trade against your own resting order.

Defaults to TAKER_AT_CROSS.

Available options:
TAKER_AT_CROSS,
MAKER
Example:

"TAKER_AT_CROSS"

cancelOrderOnPause
boolean

Cancel the order if the exchange pauses trading, instead of leaving it resting.

timeInForce
GoodTillCancelled · object

Execution policy; defaults to GTC.

clientOrderId
string

Your own identifier for this order, returned unchanged on every read of it. Each value may be used only once.

Required string length: 1 - 64
Example:

"order-1"

Response

Order accepted; status is the order's recorded state, and acceptance alone does not mean it is resting or filled

orderId
string<uuid>
required

Issued order id.

Example:

"3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d"

status
enum<string>
required

Order lifecycle status.

Available options:
PENDING,
SUBMITTED,
OPEN,
FILLED,
CANCELLED,
REJECTED
Example:

"OPEN"

filledCount
string | null
required

Contracts filled immediately when the venue acknowledged the order, or null if unreported.

Example:

"4"

remainingCount
string | null
required

Contracts still resting when the venue acknowledged the order, or null if unreported.

Example:

"6"

averagePrice
string | null
required

Average price per contract in dollars on the market's YES book, of the contracts filled at acknowledgement, or null if none filled.

Example:

"0.384"