ExchangeRebel Prediction Markets API

The Prediction Markets API from ExchangeRebel — 6 operation(s) for prediction markets.

GitHub OpenAPI

Operations 6

GET /toll/pred/arb Scan Polymarket vs Kalshi price spreads #
GET /toll/pred/calendar Fetch the prediction-market event calendar #
GET /toll/pred/kalshi-markets Fetch the Kalshi contract catalog #
GET /toll/pred/polymarket-markets Fetch the Polymarket market list #
GET /toll/pred/resolution-speed Fetch resolution-speed stats per platform #
GET /toll/pred/whales Fetch Polymarket large (whale) trades #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/exchangerebel-com:exchangerebel-com-prediction-markets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

exchangerebel-com-prediction-markets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ExchangeRebel — pay-per-call APIs for AI agents (x402 on…
  version: 1.0.0
  contact:
    name: 'ExchangeRebel (operator: Rebel Data)'
    url: https://exchangerebel.com
    email: sound.money.investing@gmail.com
  x-guidance: 'All paid operations use x402 on Solana: call without payment to get a 402 challenge (SOL recipient + USDC token account + fresh memo), pay with the memo attached via the Solana Memo program, then retry with header X-Payment-Tx: <signature> and ?toll_memo=<memo>. Challenges are dual-version: the PAYMENT-REQUIRED header carries the x402 v2 PaymentRequired object and the response body carries the same challenge in x402 v1 form for compatibility. Free operations (security: []) include each service''s /health catalog with full response shapes. Prices in x-payment-info are USD per call unless the summary says otherwise (RPC is per 1,000-request block; Telegram provisioning is per bot-month; transcription is per minute of audio).'
  description: '67 data and utility APIs behind x402 tolls, settled in SOL or USDC on Solana. Call a paid endpoint without payment to receive a 402 x402 challenge (recipient + fresh memo), pay with the memo attached via the Solana Memo program, then retry with the X-Payment-Tx header and toll_memo query parameter. Free catalog/health endpoints are marked without x-payment-info. Full catalogs: GET /toll/discovery and each service''s /health.'
servers:
- url: https://exchangerebel.com
tags:
- name: Prediction Markets
paths:
  /toll/pred/arb:
    get:
      tags:
      - Prediction Markets
      summary: Scan Polymarket vs Kalshi price spreads
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                topic: fed
                min_spread_pts: 5
                pairs:
                - topic_match_words: 4
                  polymarket:
                    question: Will the Fed cut rates in October?
                    yes_price_pts: 65
                    url: https://polymarket.com/event/fed-cut-october
                  kalshi:
                    title: Fed rates cut in October
                    ticker: FED-26OCT
                    yes_price_pts: 58
                    url: https://kalshi.com/markets/FED-26OCT
                  spread_pts: 7
                  edge_direction: buy kalshi YES / sell polymarket YES
                count: 1
                caveats:
                - Prices are snapshots; both venues move fast.
                - Fees, liquidity depth, and settlement-rule differences can erase paper spreads.
                - Kalshi is USD/CFTC-regulated; Polymarket settles in crypto — capital transfer is not instant.
                data_health:
                  as_of: '2026-10-21T21:23:04.571Z'
                  sources:
                  - polymarket
                  - kalshi
                  license: Platform public APIs; factual prices only
                  checks_passed:
                  - schema
                  error_budget: critical fields <0.1%, other fields <1%
                paid: true
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: topic
        in: query
        required: false
        schema:
          type: string
        description: Topic keyword (default fed)
      - name: min_spread
        in: query
        required: false
        schema:
          type: string
        description: Minimum spread in points (default 5)
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollPredArb
      x-operation-id-source: derived
  /toll/pred/calendar:
    get:
      tags:
      - Prediction Markets
      summary: Fetch the prediction-market event calendar
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                as_of: '2026-10-21T21:23:04.595Z'
                fomc_meetings:
                  dates:
                    '2026':
                    - October 27-28
                    - December 8-9
                    '2027':
                    - January 26-27
                  source: federalreserve.gov (live)
                  live: true
                bls_releases:
                  releases:
                  - release: Employment Situation (Oct 2026)
                    date: '2026-11-06'
                    time_et: 08:30
                  - release: Consumer Price Index (Oct 2026)
                    date: '2026-11-10'
                    time_et: 08:30
                  - release: Producer Price Index (Oct 2026)
                    date: '2026-11-13'
                    time_et: 08:30
                  - release: Employment Situation (Nov 2026)
                    date: '2026-12-04'
                    time_et: 08:30
                  - release: Consumer Price Index (Nov 2026)
                    date: '2026-12-10'
                    time_et: 08:30
                  - release: Producer Price Index (Nov 2026)
                    date: '2026-12-15'
                    time_et: 08:30
                  source: BLS published 2026 schedule (static reference)
                  live: false
                  url: https://www.bls.gov/schedule/2026/
                data_health:
                  as_of: '2026-10-21T21:23:04.595Z'
                  source: federalreserve
                  license: US federal public domain (Federal Reserve)
                  attribution: 'Source: Board of Governors of the Federal Reserve System — FOMC meeting calendar, U.S. public domain.'
                  commercial_ok: true
                  checks_passed:
                  - license
                  - schema
                  error_budget: critical fields <0.1%, other fields <1%
                paid: true
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollPredCalendar
      x-operation-id-source: derived
  /toll/pred/kalshi-markets:
    get:
      tags:
      - Prediction Markets
      summary: Fetch the Kalshi contract catalog
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                markets:
                - ticker: BBALL-26OCT09-DALMEM-TIE
                  title: Mavericks vs Grizzlies game ends in a tie
                  subtitle: null
                  status: null
                  close_time: null
                  expiration_time: null
                  last_price: null
                  volume: null
                  open_interest: null
                  result: 'no'
                  settlement_value: null
                  yes_bid: 0.57
                  yes_ask: 0.58
                - ticker: FED-26OCT
                  title: Fed rates cut in October
                  subtitle: null
                  status: open
                  close_time: '2026-10-28T14:00:00Z'
                  expiration_time: '2026-10-28T14:00:00Z'
                  last_price: 0.58
                  volume: 5000
                  open_interest: 1200
                  result: null
                  settlement_value: null
                  yes_bid: 0.57
                  yes_ask: 0.58
                - ticker: FED-26SEP-SETTLED
                  title: Fed rates cut in September
                  subtitle: null
                  status: settled
                  close_time: null
                  expiration_time: '2026-09-16T14:00:00Z'
                  last_price: null
                  volume: null
                  open_interest: null
                  result: 'yes'
                  settlement_value: 1
                  yes_bid: null
                  yes_ask: null
                count: 3
                data_health:
                  as_of: '2026-10-21T21:23:04.576Z'
                  source: kalshi
                  license: Platform public API (resolution records are public)
                  attribution: Resolution records via Kalshi public Trade API. Market content © KalshiEX LLC; we report factual resolution outcomes.
                  commercial_ok: true
                  checks_passed:
                  - license
                  - schema
                  - freshness
                  error_budget: critical fields <0.1%, other fields <1%
                quality:
                  note: Bid/ask from live orderbook top; yes_ask derived as 1 - best NO bid.
                paid: true
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: 1-50 (default 20)
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: Market status (default open)
      - name: event_ticker
        in: query
        required: false
        schema:
          type: string
        description: Optional event ticker filter
      - name: book
        in: query
        required: false
        schema:
          type: string
        description: Top-of-book depth, 0-10 (default 5)
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollPredKalshiMarkets
      x-operation-id-source: derived
  /toll/pred/polymarket-markets:
    get:
      tags:
      - Prediction Markets
      summary: Fetch the Polymarket market list
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                events:
                - title: Will the Mavericks beat the Grizzlies by more than 5.5 points?
                  slug: mavericks-grizzlies
                  closed: true
                  url: https://polymarket.com/event/mavericks-grizzlies
                  markets:
                  - question: Will the Mavericks beat the Grizzlies by more than 5.5 points?
                    yes_price: 0.62
                    no_price: 0.38
                    best_bid: null
                    best_ask: null
                    volume: null
                    liquidity: null
                    end_date: '2026-10-08T00:00:00Z'
                    closed_time: '2026-10-08T06:00:00+00'
                    resolution_source: null
                    outcomes: null
                count: 1
                data_health:
                  as_of: '2026-10-21T21:23:04.580Z'
                  source: polymarket
                  license: Platform public API (resolution records are public)
                  attribution: Resolution records via Polymarket public Gamma API. Market content © Polymarket; we report factual resolution outcomes.
                  commercial_ok: true
                  checks_passed:
                  - license
                  - schema
                  - freshness
                  error_budget: critical fields <0.1%, other fields <1%
                paid: true
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: query
        in: query
        required: false
        schema:
          type: string
        description: Optional search query
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: 1-50 (default 20)
      - name: closed
        in: query
        required: false
        schema:
          type: string
        description: true | false (default false)
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollPredPolymarketMarkets
      x-operation-id-source: derived
  /toll/pred/resolution-speed:
    get:
      tags:
      - Prediction Markets
      summary: Fetch resolution-speed stats per platform
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                resolution_speed:
                  polymarket:
                    n: 1
                    median_lag_h: 6
                    p90_lag_h: 6
                    by_category:
                      other:
                        n: 1
                        median_lag_h: 6
                    window: endDate -> closedTime
                  manifold:
                    n: 1
                    median_lag_h: 6
                    p90_lag_h: 6
                    by_category:
                      econ:
                        n: 1
                        median_lag_h: 6
                    window: closeTime -> resolutionTime
                    note: small sample — recent list skews to open markets
                  kalshi:
                    n: 1
                    median_lag_h: 723.3
                    p90_lag_h: 723.3
                    by_category:
                      econ:
                        n: 1
                        median_lag_h: 723.3
                    window: expiration_time -> settlement_ts
                data_health:
                  as_of: '2026-10-21T21:23:04.591Z'
                  sources:
                  - polymarket
                  - manifold
                  - kalshi
                  license: Platform public APIs; factual timestamps only
                  checks_passed:
                  - schema
                  error_budget: critical fields <0.1%, other fields <1%
                paid: true
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: 5-50 (default 30)
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollPredResolutionSpeed
      x-operation-id-source: derived
  /toll/pred/whales:
    get:
      tags:
      - Prediction Markets
      summary: Fetch Polymarket large (whale) trades
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                whales:
                - market: Fed rate cut in October?
                  event_slug: fed-cut-october
                  url: https://polymarket.com/event/fed-cut-october
                  side: BUY
                  outcome: 'Yes'
                  size_shares: 50000
                  price: 0.65
                  usd_value: 32500
                  wallet: 0xwhale1
                  pseudonym: Whale1
                  timestamp: '2026-10-09T16:23:20.000Z'
                  tx: 0xtx1
                count: 1
                min_usd: 10000
                note: usd_value = size (shares) × price. Wallets are pseudonymous proxy wallets.
                data_health:
                  as_of: '2026-10-21T21:23:04.589Z'
                  source: polymarket
                  license: Platform public API (resolution records are public)
                  attribution: Resolution records via Polymarket public Gamma API. Market content © Polymarket; we report factual resolution outcomes.
                  commercial_ok: true
                  checks_passed:
                  - license
                  - schema
                  - freshness
                  error_budget: critical fields <0.1%, other fields <1%
                paid: true
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: min_usd
        in: query
        required: false
        schema:
          type: string
        description: Minimum trade size in USD (min 100, default 10000)
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: 1-100 (default 25)
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollPredWhales
      x-operation-id-source: derived
components:
  securitySchemes:
    x402Payment:
      type: apiKey
      in: header
      name: X-Payment-Tx
      description: 'x402 toll payment proof: the Solana transaction signature of a payment carrying the memo from the 402 challenge; send together with ?toll_memo=<memo>. Payment itself is made on-chain in SOL or USDC to the recipient named in the challenge.'