Events API
Endpoints for retrieving prediction market events.
List All Events
Get a paginated list of prediction market events with comprehensive filtering and sorting options.
Endpoint: GET /public/api/v1/events/
Query Parameters
All parameters are optional.
Pagination
page(integer, default: 1) - Page number using 1-based indexinglimit(integer, default: 20, max: 100) - Results per pageoffset(integer) - Results to skip (0-based). Use instead of page for offset-based pagination
Filtering
status(string) - Filter by status:active,closed, orall(default: all)closed(boolean) - Only closed events if true, only open if falsetag_id(integer or array) - Filter by category tag ID(s)exclude_tag_id(integer or array) - Exclude events with these tag IDstag_slug(string or array) - Filter by tag slug(s)active(boolean) - Filter by active statusrecurrence(string) - Filter by market structure:daily,weekly, ormonthlyrelated_tags(boolean, default: false) - Include events with related tagsstart_date_min(string) - Filter events starting after this date (ISO string)start_date_max(string) - Filter events starting before this date (ISO string)end_date_min(string) - Filter events ending after this date (ISO string)end_date_max(string) - Filter events ending before this date (ISO string)
Sorting
sort(string) - Sort field:created_at,volume, ormarket_count(default: created_at)order(string) - Comma-separated list of fields to order byascending(boolean, default: false) - Sort ascending instead of descending
Example Request
curl "https://market-api.probable.markets/public/api/v1/events/?page=1&limit=20&status=active&tag_id=1"Example Response
{
"events": [
{
"id": 1,
"slug": "btc-usd-2025-11",
"title": "Bitcoin Price Prediction",
"image": "https://...",
"icon": "https://...",
"status": "active",
"markets": [...],
"volume": 1000000,
"market_count": 5
}
],
"pagination": {
"hasMore": true,
"totalResults": 150,
"page": 1,
"limit": 20,
"totalPages": 8,
"hasPrevPage": false
}
}Caching
Results are cached for 5 minutes. Cache key includes all parameters.
Get Event by ID
Retrieve a complete event with all associated markets by its numeric ID.
Endpoint: GET /public/api/v1/events/{id}
Path Parameters
id(required, integer) - Numeric event identifier
Example Request
curl "https://market-api.probable.markets/public/api/v1/events/123"Example Response
{
"id": 123,
"slug": "btc-usd-2025-11",
"title": "Bitcoin Price Prediction",
"description": "Predict the price of Bitcoin...",
"image": "https://...",
"icon": "https://...",
"status": "active",
"markets": [
{
"id": 456,
"question": "Will BTC exceed $100k?",
"market_slug": "btc-100k",
"outcomes": ["Yes", "No"],
"active": true,
"closed": false
}
],
"volume": 1000000,
"market_count": 5
}Caching
Results are cached for 2 minutes.
Error Responses
400- Invalid or malformed event ID404- Event not found500- Internal server error
Get Event by Slug
Retrieve a complete event with all associated markets by its slug identifier.
Endpoint: GET /public/api/v1/events/slug/{slug}
Path Parameters
slug(required, string) - URL-friendly event identifier (e.g., "btc-usd-2025-11")
Example Request
curl "https://market-api.probable.markets/public/api/v1/events/slug/btc-usd-2025-11"Example Response
Same structure as Get Event by ID.
Caching
Results are cached for 2 minutes.
Error Responses
404- Event not found with provided slug500- Internal server error
Get Tags for Event
Retrieve all tags associated with an event by its ID.
Endpoint: GET /public/api/v1/events/{id}/tags
Path Parameters
id(required, integer) - Numeric event identifier
Example Request
curl "https://market-api.probable.markets/public/api/v1/events/123/tags"Example Response
[
{
"id": 1,
"label": "Crypto",
"slug": "crypto"
},
{
"id": 2,
"label": "Price Prediction",
"slug": "price-prediction"
}
]Notes
- Returns an empty array if the event has no tags or if the event does not exist