Search series
curl --request GET \
--url https://api.probsights.com/v1/search/series \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.probsights.com/v1/search/series"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.probsights.com/v1/search/series', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"series_id": "<string>",
"exchange": "<string>",
"title": "<string>",
"slug": "<string>",
"url": "<string>",
"category": "<string>",
"status": "<string>",
"n_events_total": 123,
"n_events_active": 123,
"earliest_event_at": "<string>",
"latest_event_at": "<string>"
}Search
Search series
List Kalshi and Polymarket series by text query.
GET
/
v1
/
search
/
series
Search series
curl --request GET \
--url https://api.probsights.com/v1/search/series \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.probsights.com/v1/search/series"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.probsights.com/v1/search/series', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"series_id": "<string>",
"exchange": "<string>",
"title": "<string>",
"slug": "<string>",
"url": "<string>",
"category": "<string>",
"status": "<string>",
"n_events_total": 123,
"n_events_active": 123,
"earliest_event_at": "<string>",
"latest_event_at": "<string>"
}Returns series sorted by the selected
sort_by mode. Use this endpoint to find a
series_id, then pass it to Search markets or
Search events.
Request
https://api.probsights.com/v1/search/series
Query parameters
string
Case-insensitive substring match on
series_id and title. Example: q=15m or q=KXBTC.string
Filter by exchange:
kalshi or polymarket.string
Exact category match (e.g.
Crypto, Sports).string
default:"active"
active or closed.string
default:"title"
title or newest (by discovered_at).integer
default:"30"
Number of results to return (1–100).
integer
default:"0"
Pagination offset.
Response
Returns a JSON array of series objects.string
Pass this to
?series_id= on Search markets and Search events.string
kalshi or polymarket.string
Human-readable series title.
string
Kalshi web URL slug (null for Polymarket).
string
Exchange web page URL when available.
string
Category label, may be null.
string
active or closed.integer
Total events in this series.
integer
Events currently open for trading.
string
Earliest event window start (ISO 8601), may be null.
string
Latest event window end (ISO 8601), may be null.
Examples
Find all 15-minute crypto series
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.probsights.com/v1/search/series?q=15m"
import requests
response = requests.get(
"https://api.probsights.com/v1/search/series",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"q": "15m"},
)
series = response.json()
const res = await fetch(
"https://api.probsights.com/v1/search/series?q=15m",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const series = await res.json();
Response
[
{
"series_id": "KXBTC15M",
"exchange": "kalshi",
"title": "Bitcoin price up down",
"slug": "bitcoin-price-up-down",
"url": "https://kalshi.com/markets/kxbtc15m/bitcoin-price-up-down",
"category": "Crypto",
"status": "active",
"n_events_total": 42,
"n_events_active": 3,
"earliest_event_at": "2026-07-01T12:00:00Z",
"latest_event_at": "2026-07-11T18:00:00Z"
}
]