cURL
#!/bin/sh
# listOrders: List your orders. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
curl -sS -X GET "${TRENDLINE_API_BASE:-https://systems.trendlinelabs.ai}/public/v1/orders?status=open&limit=50" \
-H "Authorization: Bearer $TRENDLINE_API_KEY""""listOrders: List your orders. 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/orders", params={"status": "open", "limit": "50"},
headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
print(r.status_code, r.json())
// listOrders: List your orders. 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/orders?status=open&limit=50`, { method: "GET", headers: { Authorization: `Bearer ${KEY}` } });
console.log(r.status, await r.json());
{
"next_cursor": null,
"orders": [
{
"avg_price": null,
"client_order_id": "s1-0001",
"created_at": "2026-10-06T05:59:59+00:00",
"filled_size": "0",
"id": "ord_6702291f8e1c2a0012ab34cd",
"notional_reserved": "4.20",
"outcome": "yes",
"price": "0.42",
"remaining_size": "10",
"side": "buy",
"size": 10,
"status": "open",
"time_in_force": "gtc",
"type": "limit",
"universal_id": "mk-btc-100k-2026",
"updated_at": "2026-10-06T05:59:59+00:00",
"venue": "polymarket",
"venue_market_id": "bitcoin-above-100k-on-december-31",
"venue_market_title": "Bitcoin above $100,000 on December 31?",
"venue_order_id": "0x5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e"
}
]
}{
"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>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}Trading
List your orders
Beta: not yet enabled; the launch venues are Polymarket, predict.fun and Limitless (Kalshi comes later). Requests answer 404 with {"detail": "Not Found"}, as an unregistered path does, until trading is switched on. Your orders placed through the API, from our own records, newest first; no venue is called, so each status is as of our last check (read GET /public/v1/orders/{id} for a fresh one). Filter by venue and status; page with limit (1 to 100, default 50) and the next_cursor of the previous page, which only works with the same filters. With client_order_id alone, the answer is that one order, exactly as GET /public/v1/orders/{id} gives it (404 order_not_found when you placed none with it). Refusals: 404 order_not_found; 422 invalid_request (an unknown parameter, client_order_id sent with another, or a cursor from other filters).
GET
/
public
/
v1
/
orders
cURL
#!/bin/sh
# listOrders: List your orders. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
curl -sS -X GET "${TRENDLINE_API_BASE:-https://systems.trendlinelabs.ai}/public/v1/orders?status=open&limit=50" \
-H "Authorization: Bearer $TRENDLINE_API_KEY""""listOrders: List your orders. 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/orders", params={"status": "open", "limit": "50"},
headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
print(r.status_code, r.json())
// listOrders: List your orders. 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/orders?status=open&limit=50`, { method: "GET", headers: { Authorization: `Bearer ${KEY}` } });
console.log(r.status, await r.json());
{
"next_cursor": null,
"orders": [
{
"avg_price": null,
"client_order_id": "s1-0001",
"created_at": "2026-10-06T05:59:59+00:00",
"filled_size": "0",
"id": "ord_6702291f8e1c2a0012ab34cd",
"notional_reserved": "4.20",
"outcome": "yes",
"price": "0.42",
"remaining_size": "10",
"side": "buy",
"size": 10,
"status": "open",
"time_in_force": "gtc",
"type": "limit",
"universal_id": "mk-btc-100k-2026",
"updated_at": "2026-10-06T05:59:59+00:00",
"venue": "polymarket",
"venue_market_id": "bitcoin-above-100k-on-december-31",
"venue_market_title": "Bitcoin above $100,000 on December 31?",
"venue_order_id": "0x5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e"
}
]
}{
"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>"
}
}{
"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
your id for one order: the answer is that order, as GET /public/v1/orders/{id} gives it; no other parameter may be sent with it
Pattern:
^[A-Za-z0-9_-]{1,64}$only orders sent to this venue
Available options:
kalshi, polymarket, limitless, predictfun only orders whose status is this one
Available options:
open, filled, partially_filled, cancelled, unknown, not_placed orders per page
Required range:
1 <= x <= 100next_cursor from the previous page; it binds the venue and status filters and your account
Maximum string length:
1024