#!/bin/sh
# listEvents: List active events. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
curl -sS "${TRENDLINE_API_BASE:-https://systems.trendlinelabs.ai}/public/v1/events?limit=1" \
-H "Authorization: Bearer $TRENDLINE_API_KEY""""listEvents: List active events. 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/events", params={"limit": "1"},
headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
r.raise_for_status()
print(r.json())
// listEvents: List active events. 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/events?limit=1`, { headers: { Authorization: `Bearer ${KEY}` } });
console.log(r.status, await r.json());
{
"events": [
{
"categories": [
"crypto",
"bitcoin"
],
"category_group": "crypto",
"first_seen_at": "2026-09-01T12:00:00.000Z",
"image_url": null,
"kalshi_event_ticker": "KXBTC-26DEC31",
"last_seen_at": "2026-10-06T05:59:30.000Z",
"limitless_event_id": null,
"platform_count": 2,
"poly_event_slug": "bitcoin-above-100k-on-december-31",
"predictfun_event_id": null,
"resolution_date": "2026-12-31T23:59:59.000Z",
"title": "Bitcoin price at year end",
"universal_id": "ev-btc-100k-2026",
"venues": [
"kalshi",
"polymarket"
]
}
],
"next_cursor": "eyJ2IjoxLCJhZnRlciI6ImV2LWJ0Yy0xMDBrLTIwMjYiLCJmcCI6IjAwMDAwMDAwMDAwMDAwMDAifQ==",
"universe_age_s": 30,
"universe_last_seen_at": "2026-10-06T05:59:30.000Z"
}{
"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>"
}
}List active events
Active cross-venue events in a stable id order, paged with next_cursor (keyset; a cursor binds the filters it was minted under). Liveness: every 200 carries universe_last_seen_at and universe_age_s. An event that becomes active or resolves mid-walk may or may not appear; an event whose id is longer than 256 characters is not listed. Refusals: 422 invalid_request (bad bounds, unknown parameter, or a cursor that is malformed or replayed under other filters); 503 upstream_unavailable (event data unreadable, no active event, or the newest last_seen_at older than the bound) — never an empty 200 from a dead source.
#!/bin/sh
# listEvents: List active events. Needs TRENDLINE_API_KEY; TRENDLINE_API_BASE overrides the base.
curl -sS "${TRENDLINE_API_BASE:-https://systems.trendlinelabs.ai}/public/v1/events?limit=1" \
-H "Authorization: Bearer $TRENDLINE_API_KEY""""listEvents: List active events. 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/events", params={"limit": "1"},
headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
r.raise_for_status()
print(r.json())
// listEvents: List active events. 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/events?limit=1`, { headers: { Authorization: `Bearer ${KEY}` } });
console.log(r.status, await r.json());
{
"events": [
{
"categories": [
"crypto",
"bitcoin"
],
"category_group": "crypto",
"first_seen_at": "2026-09-01T12:00:00.000Z",
"image_url": null,
"kalshi_event_ticker": "KXBTC-26DEC31",
"last_seen_at": "2026-10-06T05:59:30.000Z",
"limitless_event_id": null,
"platform_count": 2,
"poly_event_slug": "bitcoin-above-100k-on-december-31",
"predictfun_event_id": null,
"resolution_date": "2026-12-31T23:59:59.000Z",
"title": "Bitcoin price at year end",
"universal_id": "ev-btc-100k-2026",
"venues": [
"kalshi",
"polymarket"
]
}
],
"next_cursor": "eyJ2IjoxLCJhZnRlciI6ImV2LWJ0Yy0xMDBrLTIwMjYiLCJmcCI6IjAwMDAwMDAwMDAwMDAwMDAifQ==",
"universe_age_s": 30,
"universe_last_seen_at": "2026-10-06T05:59:30.000Z"
}{
"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
only events in this category
64only events listed on this venue
kalshi, polymarket, limitless, opinion, predictfun only events listed on at least this many venues
1 <= x <= 5events per page
1 <= x <= 100next_cursor from the previous page; it binds the filters it was minted under
4152Response
Successful Response
this page's events, in a stable id order
Show child attributes
Show child attributes
seconds since universe_last_seen_at; the route answers 503 instead once this passes its bound
the newest last_seen_at among active events, ISO 8601: the list's liveness signal
pass as cursor for the next page; null on the last page