curl --request GET \
--url https://external-api.kalshi.com/trade-api/v2/communications/quotes \
--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/communications/quotes"
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/communications/quotes', 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/communications/quotes",
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/communications/quotes"
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/communications/quotes")
.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/communications/quotes")
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{
"quotes": [
{
"id": "<string>",
"rfq_id": "<string>",
"creator_id": "<string>",
"rfq_creator_id": "<string>",
"market_ticker": "<string>",
"contracts_fp": "10.00",
"yes_bid_dollars": "0.5600",
"no_bid_dollars": "0.5600",
"created_ts": "2023-11-07T05:31:56Z",
"updated_ts": "2023-11-07T05:31:56Z",
"status": "open",
"accepted_side": "yes",
"accepted_ts": "2023-11-07T05:31:56Z",
"confirmed_ts": "2023-11-07T05:31:56Z",
"executed_ts": "2023-11-07T05:31:56Z",
"cancelled_ts": "2023-11-07T05:31:56Z",
"rest_remainder": true,
"post_only": true,
"cancellation_reason": "<string>",
"creator_user_id": "<string>",
"rfq_creator_user_id": "<string>",
"rfq_target_cost_dollars": "0.5600",
"target_cost_excludes_fees": true,
"rfq_creator_order_id": "<string>",
"creator_order_id": "<string>",
"creator_subaccount": 123,
"rfq_creator_subaccount": 123,
"yes_contracts_fp": "10.00",
"no_contracts_fp": "10.00"
}
],
"cursor": "<string>"
}{
"code": "<string>",
"message": "<string>",
"details": "<string>"
}{
"code": "<string>",
"message": "<string>",
"details": "<string>"
}{
"code": "<string>",
"message": "<string>",
"details": "<string>"
}Get Quotes
List quotes. The rfq_id filter requires an RFQ UUID. Pass pagination cursors back unchanged; malformed RFQ IDs or cursors return HTTP 400.
curl --request GET \
--url https://external-api.kalshi.com/trade-api/v2/communications/quotes \
--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/communications/quotes"
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/communications/quotes', 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/communications/quotes",
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/communications/quotes"
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/communications/quotes")
.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/communications/quotes")
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{
"quotes": [
{
"id": "<string>",
"rfq_id": "<string>",
"creator_id": "<string>",
"rfq_creator_id": "<string>",
"market_ticker": "<string>",
"contracts_fp": "10.00",
"yes_bid_dollars": "0.5600",
"no_bid_dollars": "0.5600",
"created_ts": "2023-11-07T05:31:56Z",
"updated_ts": "2023-11-07T05:31:56Z",
"status": "open",
"accepted_side": "yes",
"accepted_ts": "2023-11-07T05:31:56Z",
"confirmed_ts": "2023-11-07T05:31:56Z",
"executed_ts": "2023-11-07T05:31:56Z",
"cancelled_ts": "2023-11-07T05:31:56Z",
"rest_remainder": true,
"post_only": true,
"cancellation_reason": "<string>",
"creator_user_id": "<string>",
"rfq_creator_user_id": "<string>",
"rfq_target_cost_dollars": "0.5600",
"target_cost_excludes_fees": true,
"rfq_creator_order_id": "<string>",
"creator_order_id": "<string>",
"creator_subaccount": 123,
"rfq_creator_subaccount": 123,
"yes_contracts_fp": "10.00",
"no_contracts_fp": "10.00"
}
],
"cursor": "<string>"
}{
"code": "<string>",
"message": "<string>",
"details": "<string>"
}{
"code": "<string>",
"message": "<string>",
"details": "<string>"
}{
"code": "<string>",
"message": "<string>",
"details": "<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
Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.
Restricts the response to quotes last updated after a timestamp, formatted as a Unix Timestamp
Restricts the response to quotes last updated before a timestamp, formatted as a Unix Timestamp
Parameter to specify the number of results per page. Defaults to 500.
1 <= x <= 500Filter quotes by status
Filter quotes by quote creator user ID
Filter for quotes created by the authenticated user.
Omit or leave empty to return all results. Use self to filter by the authenticated user.
self Filter for quotes responding to RFQs created by the authenticated user.
Omit or leave empty to return all results. Use self to filter by the authenticated user.
self Filter quotes by RFQ creator user ID
Filter quotes by RFQ creator subtrader ID (FCM members only)
Filter quotes by RFQ UUID. Pass the RFQ ID unchanged; malformed IDs return HTTP 400.