curl --request GET \
--url https://external-api.kalshi.com/trade-api/v2/fcm/orders \
--header 'KALSHI-ACCESS-KEY: <api-key>' \
--header 'KALSHI-ACCESS-SIGNATURE: <api-key>' \
--header 'KALSHI-ACCESS-TIMESTAMP: <api-key>'import requests
url = "https://external-api.kalshi.com/trade-api/v2/fcm/orders"
headers = {
"KALSHI-ACCESS-KEY": "<api-key>",
"KALSHI-ACCESS-SIGNATURE": "<api-key>",
"KALSHI-ACCESS-TIMESTAMP": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'KALSHI-ACCESS-KEY': '<api-key>',
'KALSHI-ACCESS-SIGNATURE': '<api-key>',
'KALSHI-ACCESS-TIMESTAMP': '<api-key>'
}
};
fetch('https://external-api.kalshi.com/trade-api/v2/fcm/orders', 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://external-api.kalshi.com/trade-api/v2/fcm/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"KALSHI-ACCESS-KEY: <api-key>",
"KALSHI-ACCESS-SIGNATURE: <api-key>",
"KALSHI-ACCESS-TIMESTAMP: <api-key>"
],
]);
$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://external-api.kalshi.com/trade-api/v2/fcm/orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("KALSHI-ACCESS-KEY", "<api-key>")
req.Header.Add("KALSHI-ACCESS-SIGNATURE", "<api-key>")
req.Header.Add("KALSHI-ACCESS-TIMESTAMP", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://external-api.kalshi.com/trade-api/v2/fcm/orders")
.header("KALSHI-ACCESS-KEY", "<api-key>")
.header("KALSHI-ACCESS-SIGNATURE", "<api-key>")
.header("KALSHI-ACCESS-TIMESTAMP", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://external-api.kalshi.com/trade-api/v2/fcm/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["KALSHI-ACCESS-KEY"] = '<api-key>'
request["KALSHI-ACCESS-SIGNATURE"] = '<api-key>'
request["KALSHI-ACCESS-TIMESTAMP"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"orders": [
{
"order_id": "<string>",
"user_id": "<string>",
"client_order_id": "<string>",
"ticker": "<string>",
"outcome_side": "yes",
"book_side": "bid",
"type": "limit",
"status": "resting",
"yes_price_dollars": "0.5600",
"no_price_dollars": "0.5600",
"fill_count_fp": "10.00",
"remaining_count_fp": "10.00",
"initial_count_fp": "10.00",
"taker_fill_cost_dollars": "0.5600",
"maker_fill_cost_dollars": "0.5600",
"taker_fees_dollars": "0.5600",
"maker_fees_dollars": "0.5600",
"side": "yes",
"action": "buy",
"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": "<string>",
"cancel_order_on_pause": true,
"subaccount_number": 123,
"exchange_index": 0
}
],
"cursor": "<string>"
}Get FCM Orders
Endpoint for FCM members to get orders for their subtraders.
This endpoint requires FCM member access level. At least one of subtrader_id or
client_order_ids is required; supplying both returns only the orders matching both filters.
API keys bound to a single FCM subtrader may also call this endpoint: subtrader_id may be
omitted and defaults to the key’s bound subtrader, and if supplied it must equal the bound
subtrader or the request is rejected.
curl --request GET \
--url https://external-api.kalshi.com/trade-api/v2/fcm/orders \
--header 'KALSHI-ACCESS-KEY: <api-key>' \
--header 'KALSHI-ACCESS-SIGNATURE: <api-key>' \
--header 'KALSHI-ACCESS-TIMESTAMP: <api-key>'import requests
url = "https://external-api.kalshi.com/trade-api/v2/fcm/orders"
headers = {
"KALSHI-ACCESS-KEY": "<api-key>",
"KALSHI-ACCESS-SIGNATURE": "<api-key>",
"KALSHI-ACCESS-TIMESTAMP": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'KALSHI-ACCESS-KEY': '<api-key>',
'KALSHI-ACCESS-SIGNATURE': '<api-key>',
'KALSHI-ACCESS-TIMESTAMP': '<api-key>'
}
};
fetch('https://external-api.kalshi.com/trade-api/v2/fcm/orders', 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://external-api.kalshi.com/trade-api/v2/fcm/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"KALSHI-ACCESS-KEY: <api-key>",
"KALSHI-ACCESS-SIGNATURE: <api-key>",
"KALSHI-ACCESS-TIMESTAMP: <api-key>"
],
]);
$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://external-api.kalshi.com/trade-api/v2/fcm/orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("KALSHI-ACCESS-KEY", "<api-key>")
req.Header.Add("KALSHI-ACCESS-SIGNATURE", "<api-key>")
req.Header.Add("KALSHI-ACCESS-TIMESTAMP", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://external-api.kalshi.com/trade-api/v2/fcm/orders")
.header("KALSHI-ACCESS-KEY", "<api-key>")
.header("KALSHI-ACCESS-SIGNATURE", "<api-key>")
.header("KALSHI-ACCESS-TIMESTAMP", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://external-api.kalshi.com/trade-api/v2/fcm/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["KALSHI-ACCESS-KEY"] = '<api-key>'
request["KALSHI-ACCESS-SIGNATURE"] = '<api-key>'
request["KALSHI-ACCESS-TIMESTAMP"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"orders": [
{
"order_id": "<string>",
"user_id": "<string>",
"client_order_id": "<string>",
"ticker": "<string>",
"outcome_side": "yes",
"book_side": "bid",
"type": "limit",
"status": "resting",
"yes_price_dollars": "0.5600",
"no_price_dollars": "0.5600",
"fill_count_fp": "10.00",
"remaining_count_fp": "10.00",
"initial_count_fp": "10.00",
"taker_fill_cost_dollars": "0.5600",
"maker_fill_cost_dollars": "0.5600",
"taker_fees_dollars": "0.5600",
"maker_fees_dollars": "0.5600",
"side": "yes",
"action": "buy",
"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": "<string>",
"cancel_order_on_pause": true,
"subaccount_number": 123,
"exchange_index": 0
}
],
"cursor": "<string>"
}Authorizations
Your API key ID
Base64 signature of the pre-sign text (timestamp + method + path) made with the API key's algorithm - RSA-PSS with SHA-256 for RSA keys, Ed25519 for Ed25519 keys
Request timestamp in milliseconds
Query Parameters
Restricts the response to orders for a specific subtrader (FCM members only). Required unless client_order_ids is supplied. For an API key bound to a subtrader, defaults to the bound subtrader when omitted and must equal it when supplied.
Client order IDs to filter by, as a comma-separated list (maximum 100). Only orders created within the last 24 hours are searched, and a min_ts earlier than that is raised to 24 hours ago. Client order IDs are only unique within a subtrader among live and recent orders, so a single ID can match orders across subtraders or across time. Required unless subtrader_id is supplied.
Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.
Event ticker to filter by. Only a single event ticker is supported.
Filter by market ticker
Restricts the response to orders after a timestamp, formatted as a Unix Timestamp
Restricts the response to orders before a timestamp, formatted as a Unix Timestamp
Restricts the response to orders that have a certain status
resting, canceled, executed Parameter to specify the number of results per page. Defaults to 100
1 <= x <= 1000