curl --request GET \
--url https://api.parlayx.com/v1/kalshi/orders/{orderId} \
--header 'PX-Content-Sha256: <px-content-sha256>' \
--header 'PX-Key-Id: <px-key-id>' \
--header 'PX-Signature: <px-signature>' \
--header 'PX-Timestamp: <px-timestamp>'import requests
url = "https://api.parlayx.com/v1/kalshi/orders/{orderId}"
headers = {
"PX-Key-Id": "<px-key-id>",
"PX-Timestamp": "<px-timestamp>",
"PX-Signature": "<px-signature>",
"PX-Content-Sha256": "<px-content-sha256>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'PX-Key-Id': '<px-key-id>',
'PX-Timestamp': '<px-timestamp>',
'PX-Signature': '<px-signature>',
'PX-Content-Sha256': '<px-content-sha256>'
}
};
fetch('https://api.parlayx.com/v1/kalshi/orders/{orderId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.parlayx.com/v1/kalshi/orders/{orderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"PX-Content-Sha256: <px-content-sha256>",
"PX-Key-Id: <px-key-id>",
"PX-Signature: <px-signature>",
"PX-Timestamp: <px-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.parlayx.com/v1/kalshi/orders/{orderId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("PX-Key-Id", "<px-key-id>")
req.Header.Add("PX-Timestamp", "<px-timestamp>")
req.Header.Add("PX-Signature", "<px-signature>")
req.Header.Add("PX-Content-Sha256", "<px-content-sha256>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.parlayx.com/v1/kalshi/orders/{orderId}")
.header("PX-Key-Id", "<px-key-id>")
.header("PX-Timestamp", "<px-timestamp>")
.header("PX-Signature", "<px-signature>")
.header("PX-Content-Sha256", "<px-content-sha256>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parlayx.com/v1/kalshi/orders/{orderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["PX-Key-Id"] = '<px-key-id>'
request["PX-Timestamp"] = '<px-timestamp>'
request["PX-Signature"] = '<px-signature>'
request["PX-Content-Sha256"] = '<px-content-sha256>'
response = http.request(request)
puts response.read_body{
"orderId": "3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d",
"ticker": "KXPRES-2028",
"side": "YES",
"action": "BUY",
"type": "LIMIT",
"count": 10,
"priceCents": 38,
"status": "OPEN",
"venueOrderId": "b4d9e1f2-3a6c-4d8e-9f1a-2b3c4d5e6f70",
"createdAt": "2026-07-26T12:00:00.000Z",
"updatedAt": "2026-07-26T12:05:00.000Z",
"filledCount": 4,
"averagePriceCents": 37,
"feesCents": 6,
"feesUsd": "0.063000",
"closedAt": "2026-07-26T12:10:00.000Z"
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Get Order
Fetches a Kalshi order by its issued order id.
curl --request GET \
--url https://api.parlayx.com/v1/kalshi/orders/{orderId} \
--header 'PX-Content-Sha256: <px-content-sha256>' \
--header 'PX-Key-Id: <px-key-id>' \
--header 'PX-Signature: <px-signature>' \
--header 'PX-Timestamp: <px-timestamp>'import requests
url = "https://api.parlayx.com/v1/kalshi/orders/{orderId}"
headers = {
"PX-Key-Id": "<px-key-id>",
"PX-Timestamp": "<px-timestamp>",
"PX-Signature": "<px-signature>",
"PX-Content-Sha256": "<px-content-sha256>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'PX-Key-Id': '<px-key-id>',
'PX-Timestamp': '<px-timestamp>',
'PX-Signature': '<px-signature>',
'PX-Content-Sha256': '<px-content-sha256>'
}
};
fetch('https://api.parlayx.com/v1/kalshi/orders/{orderId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.parlayx.com/v1/kalshi/orders/{orderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"PX-Content-Sha256: <px-content-sha256>",
"PX-Key-Id: <px-key-id>",
"PX-Signature: <px-signature>",
"PX-Timestamp: <px-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.parlayx.com/v1/kalshi/orders/{orderId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("PX-Key-Id", "<px-key-id>")
req.Header.Add("PX-Timestamp", "<px-timestamp>")
req.Header.Add("PX-Signature", "<px-signature>")
req.Header.Add("PX-Content-Sha256", "<px-content-sha256>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.parlayx.com/v1/kalshi/orders/{orderId}")
.header("PX-Key-Id", "<px-key-id>")
.header("PX-Timestamp", "<px-timestamp>")
.header("PX-Signature", "<px-signature>")
.header("PX-Content-Sha256", "<px-content-sha256>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parlayx.com/v1/kalshi/orders/{orderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["PX-Key-Id"] = '<px-key-id>'
request["PX-Timestamp"] = '<px-timestamp>'
request["PX-Signature"] = '<px-signature>'
request["PX-Content-Sha256"] = '<px-content-sha256>'
response = http.request(request)
puts response.read_body{
"orderId": "3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d",
"ticker": "KXPRES-2028",
"side": "YES",
"action": "BUY",
"type": "LIMIT",
"count": 10,
"priceCents": 38,
"status": "OPEN",
"venueOrderId": "b4d9e1f2-3a6c-4d8e-9f1a-2b3c4d5e6f70",
"createdAt": "2026-07-26T12:00:00.000Z",
"updatedAt": "2026-07-26T12:05:00.000Z",
"filledCount": 4,
"averagePriceCents": 37,
"feesCents": 6,
"feesUsd": "0.063000",
"closedAt": "2026-07-26T12:10:00.000Z"
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Headers
The key id issued for your signing keypair.
Unix seconds at signing, valid within 30 seconds of the server clock.
Ed25519 signature of the request
Hex SHA-256 of the request body, or the SHA-256 of the empty string when there is no body.
Path Parameters
Issued order id.
"3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d"
Response
Order found
Issued order id.
"3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d"
Kalshi market ticker the order trades.
"KXPRES-2028"
Which side of the Kalshi market the contract represents.
YES, NO "YES"
Order direction against the chosen side.
BUY, SELL "BUY"
Order type. Kalshi orders are limit orders.
LIMIT "LIMIT"
Order size in whole contracts.
10
Limit price in whole cents from 1 to 99, in the traded side's own frame.
38
Order lifecycle status.
| Status | Meaning |
|---|---|
PENDING | Accepted, not yet sent to the venue. |
SUBMITTED | Sent, awaiting venue acknowledgement. |
OPEN | Resting on the venue. |
FILLED | Fully filled. |
CANCELLED / REJECTED | Terminal. |
PENDING, SUBMITTED, OPEN, FILLED, CANCELLED, REJECTED "OPEN"
Kalshi order id, or null until the venue acknowledges the order.
"b4d9e1f2-3a6c-4d8e-9f1a-2b3c4d5e6f70"
Time the order was created, in ISO-8601.
"2026-07-26T12:00:00.000Z"
Time the order was last updated, in ISO-8601.
"2026-07-26T12:05:00.000Z"
Contracts filled so far, or null before any fill.
4
Average fill price in whole cents, or null before any fill.
37
Total fees charged, rounded to the nearest whole cent, or null before any fill.
6
Total fees charged in dollars, exact to the granularity the venue charges, or null before any fill. Charged on top of the executed notional, so it is additive to cost on a buy and deducted from proceeds on a sell.
"0.063000"
Time the order reached a terminal state, or null while still open.
"2026-07-26T12:10:00.000Z"