cURL
#!/bin/sh
# getPriceSnapshot: Get current prices for a set of markets. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
curl -sS "${TRENDLINE_API_BASE:-https://systems.trendlinelabs.ai}/public/v1/prices/snapshot?ids=mk-btc-100k-2026" \
-H "Authorization: Bearer $TRENDLINE_API_KEY""""getPriceSnapshot: Get current prices for a set of markets. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base."""
import os
import requests
BASE = os.environ.get("TRENDLINE_API_BASE", "https://systems.trendlinelabs.ai")
KEY = os.environ["TRENDLINE_API_KEY"]
r = requests.get(f"{BASE}/public/v1/prices/snapshot", params={"ids": "mk-btc-100k-2026"},
headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
r.raise_for_status()
print(r.json())
// getPriceSnapshot: Get current prices for a set of markets. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
const BASE = process.env.TRENDLINE_API_BASE ?? "https://systems.trendlinelabs.ai";
const KEY = process.env.TRENDLINE_API_KEY;
const r = await fetch(`${BASE}/public/v1/prices/snapshot?ids=mk-btc-100k-2026`, { headers: { Authorization: `Bearer ${KEY}` } });
console.log(r.status, await r.json());
{
"as_of_ms": 1791266400000,
"closed": null,
"closed_gate": "ok",
"snapshot": {
"mk-btc-100k-2026": {
"kalshi": {
"no_ask": 60,
"no_size": 205,
"price_source": "redis",
"price_ts_ms": 1791266398800,
"venue_id": "KXBTC-26DEC31-B100000",
"yes_ask": 41,
"yes_size": 310
},
"polymarket": {
"no_ask": 0.55,
"no_size": 120,
"price_source": "redis",
"price_ts_ms": 1791266399200,
"venue_id": "bitcoin-above-100k-on-december-31",
"yes_ask": 0.46,
"yes_size": 1500
}
}
},
"truncated": false
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}Prices
Get current prices for a set of markets
Current per-venue prices for up to 50 markets, each leg with its source and age, and whether the closed-leg gate ran.
GET
/
public
/
v1
/
prices
/
snapshot
cURL
#!/bin/sh
# getPriceSnapshot: Get current prices for a set of markets. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
curl -sS "${TRENDLINE_API_BASE:-https://systems.trendlinelabs.ai}/public/v1/prices/snapshot?ids=mk-btc-100k-2026" \
-H "Authorization: Bearer $TRENDLINE_API_KEY""""getPriceSnapshot: Get current prices for a set of markets. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base."""
import os
import requests
BASE = os.environ.get("TRENDLINE_API_BASE", "https://systems.trendlinelabs.ai")
KEY = os.environ["TRENDLINE_API_KEY"]
r = requests.get(f"{BASE}/public/v1/prices/snapshot", params={"ids": "mk-btc-100k-2026"},
headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
r.raise_for_status()
print(r.json())
// getPriceSnapshot: Get current prices for a set of markets. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
const BASE = process.env.TRENDLINE_API_BASE ?? "https://systems.trendlinelabs.ai";
const KEY = process.env.TRENDLINE_API_KEY;
const r = await fetch(`${BASE}/public/v1/prices/snapshot?ids=mk-btc-100k-2026`, { headers: { Authorization: `Bearer ${KEY}` } });
console.log(r.status, await r.json());
{
"as_of_ms": 1791266400000,
"closed": null,
"closed_gate": "ok",
"snapshot": {
"mk-btc-100k-2026": {
"kalshi": {
"no_ask": 60,
"no_size": 205,
"price_source": "redis",
"price_ts_ms": 1791266398800,
"venue_id": "KXBTC-26DEC31-B100000",
"yes_ask": 41,
"yes_size": 310
},
"polymarket": {
"no_ask": 0.55,
"no_size": 120,
"price_source": "redis",
"price_ts_ms": 1791266399200,
"venue_id": "bitcoin-above-100k-on-december-31",
"yes_ask": 0.46,
"yes_size": 1500
}
}
},
"truncated": false
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}Authorizations
Authorization: Bearer tl_live_…
Query Parameters
comma-separated market universal ids, at most 50
Response
Successful Response
when the snapshot was read, unix milliseconds
ok when the closed-leg check ran, unavailable when it could not, so an absent closed is not read as none closed
Available options:
ok, unavailable per market universal id, its legs by venue; null when no venue has a price for it
Show child attributes
Show child attributes
markets with a closed leg, by market universal id; absent when none is closed or the check could not run
Show child attributes
Show child attributes
true when more ids were sent than the route serves and the rest were dropped