Skip to content

Markets API

Endpoints for retrieving prediction market information.

List All Markets

Get a paginated list of prediction markets with comprehensive filtering options.

Endpoint: GET /public/api/v1/markets/

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 market status (e.g., "new", "processing", "completed")
  • active (boolean) - Only active markets if true
  • closed (boolean) - Only closed markets if true
  • event_id (integer) - Filter by event ID

Example Request

curl "https://market-api.probable.markets/public/api/v1/markets/?page=1&limit=20&active=true"

Example Response

{
  "markets": [
    {
      "id": 456,
      "condition_id": "0x123...",
      "question": "Will BTC exceed $100k?",
      "market_slug": "btc-100k",
      "outcomes": ["Yes", "No"],
      "clobTokenIds": ["0xabc...", "0xdef..."],
      "active": true,
      "closed": false
    }
  ],
  "pagination": {
    "hasMore": true,
    "totalResults": 500,
    "page": 1,
    "limit": 20,
    "totalPages": 25,
    "hasPrevPage": false
  }
}

Market Fields

  • id - Market identifier
  • condition_id - CTF Conditional Token ID
  • question - Market question/title
  • market_slug - URL-friendly market identifier
  • outcomes - Array of outcome names
  • clobTokenIds - CTF token IDs for trading
  • active - Boolean market status
  • closed - Boolean closed status

Caching

Results are cached for 3 minutes.


Get Market by ID

Retrieve detailed information for a single market by its numeric ID, including outcomes and associated event.

Endpoint: GET /public/api/v1/markets/{id}

Path Parameters

  • id (required, integer) - Numeric market identifier

Example Request

curl "https://market-api.probable.markets/public/api/v1/markets/456"

Example Response

{
  "id": 456,
  "condition_id": "0x123...",
  "question": "Will BTC exceed $100k?",
  "description": "Predict if Bitcoin will reach $100,000...",
  "market_slug": "btc-100k",
  "outcomes": ["Yes", "No"],
  "clobTokenIds": ["0xabc...", "0xdef..."],
  "active": true,
  "closed": false,
  "archived": false,
  "event": {
    "id": 123,
    "slug": "btc-usd-2025-11",
    "title": "Bitcoin Price Prediction"
  },
  "volume": 500000,
  "liquidity": 100000
}

Caching

Results are cached for 2 minutes.

Error Responses

  • 404 - Market not found with provided ID
  • 500 - Internal server error

Get Market by Polymarket ID

Retrieve market details using the Polymarket API identifier. Useful for cross-referencing with external Polymarket data.

Endpoint: GET /public/api/v1/markets/polymarket/{polymarketId}

Path Parameters

  • polymarketId (required, string) - Polymarket market identifier

Example Request

curl "https://market-api.probable.markets/public/api/v1/markets/polymarket/pm-market-123"

Example Response

Same structure as Get Market by ID.

Caching

Results are cached for 2 minutes.

Error Responses

  • 404 - Market not found with provided Polymarket ID
  • 500 - Internal server error

Get Market by BSC Question ID

Retrieve market details using the BSC (Binance Smart Chain) question ID. Useful for on-chain cross-referencing.

Endpoint: GET /public/api/v1/markets/bsc/{bscQuestionId}

Path Parameters

  • bscQuestionId (required, string) - BSC question identifier

Example Request

curl "https://market-api.probable.markets/public/api/v1/markets/bsc/0xabc123..."

Example Response

Same structure as Get Market by ID.

Caching

Results are cached for 2 minutes.

Error Responses

  • 404 - Market not found with provided BSC question ID
  • 500 - Internal server error