Skip to content

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 indexing
  • limit (integer, default: 20, max: 100) - Results per page
  • offset (integer) - Results to skip (0-based). Use instead of page for offset-based pagination

Filtering

  • status (string) - Filter by status: active, closed, or all (default: all)
  • closed (boolean) - Only closed events if true, only open if false
  • tag_id (integer or array) - Filter by category tag ID(s)
  • exclude_tag_id (integer or array) - Exclude events with these tag IDs
  • tag_slug (string or array) - Filter by tag slug(s)
  • active (boolean) - Filter by active status
  • recurrence (string) - Filter by market structure: daily, weekly, or monthly
  • related_tags (boolean, default: false) - Include events with related tags
  • start_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, or market_count (default: created_at)
  • order (string) - Comma-separated list of fields to order by
  • ascending (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 ID
  • 404 - Event not found
  • 500 - 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 slug
  • 500 - 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