Gemini Prediction Markets REST API

The Gemini Prediction Markets REST API for event-contract trading: market and event discovery, contract prices, order placement and management, positions, combos and RFQ, volume, terms and maker/taker reward programs. 31 operations across 30 paths, sharing the Gemini private-REST signing transport.

Operations 31

GET /v1/prediction-markets/events List prediction market events #
GET /v1/prediction-markets/events/{eventTicker} Get event by ticker #
GET /v1/prediction-markets/events/{eventTicker}/strike Get strike price for event #
GET /v1/prediction-markets/events/newly-listed List newly listed events #
GET /v1/prediction-markets/events/recently-settled List recently settled events #
GET /v1/prediction-markets/events/upcoming List upcoming events #
GET /v1/prediction-markets/categories List event categories #
GET /v1/prediction-markets/volume/{date} Get daily prediction market trade volume #
GET /v1/prediction-markets/volume/{date}/hourly Get hourly prediction market trade volume #
GET /v1/prediction-markets/terms Get prediction market terms #
GET /v1/prediction-markets/terms/status Get prediction market terms status #
POST /v1/prediction-markets/terms/accept Accept prediction market terms #
POST /v1/prediction-markets/order Place order #
POST /v1/prediction-markets/order/batch Place a batch of orders #
POST /v1/prediction-markets/order/cancel Cancel order #
POST /v1/prediction-markets/order/batch/cancel Cancel a batch of orders #
POST /v1/prediction-markets/orders/active Get active orders #
POST /v1/prediction-markets/orders/history Get order history #
POST /v1/prediction-markets/positions Get positions #
POST /v1/prediction-markets/positions/settled Get settled positions #
POST /v1/prediction-markets/metrics/volume Get volume metrics #
GET /v1/prediction-markets/combos List combo contracts #
POST /v1/prediction-markets/combos Create or retrieve a canonical combo #
GET /v1/prediction-markets/combos/{instrumentSymbol} Get combo by instrument symbol #
GET /v1/prediction-markets/maker-rebate/rates Get maker-rebate rate schedule #
POST /v1/prediction-markets/maker-rebate/payouts List maker-rebate payouts #
GET /v1/prediction-markets/maker-rebate/summary/total Get maker-rebate lifetime summary #
GET /v1/prediction-markets/liquidity-rewards/config Get liquidity-rewards program config #
GET /v1/prediction-markets/liquidity-rewards/events List liquidity-rewards events #
GET /v1/prediction-markets/liquidity-rewards/summary/daily Get liquidity-rewards daily summary #
GET /v1/prediction-markets/liquidity-rewards/summary/total Get liquidity-rewards lifetime summary #

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/gemini-prediction-markets-rest-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

gemini-trust-prediction-markets-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Gemini Prediction Markets API
  description: |
    API for trading prediction market contracts on Gemini.

    **Note:** Only fields documented in this specification are considered stable. Undocumented fields in API responses may change or be removed without notice.
  version: 1.0.0
  contact:
    name: Gemini API Support

servers:
  - url: https://api.gemini.com
    description: Production
  - url: https://api.sandbox.gemini.com
    description: Sandbox

tags:
  - name: Markets
    description: |
      Public endpoints for browsing prediction markets.

      **Market Data:** Use these REST endpoints to discover active events and each contract's `instrumentSymbol` (e.g., `GEMI-FEDJAN26-DN25`). For active trading and market making, prefer [Prediction Markets WebSocket streams](/prediction-markets/websocket/streams) with that `instrumentSymbol`.
      - [List Events](/rest-api/prediction-markets/events/list-events) - Discover active events and instrument symbols
      - [Prediction Markets WebSocket Streams](/prediction-markets/websocket/streams) - Stream prices, depth, order events, and positions
  - name: Volume
    description: Public, unauthenticated prediction-market trade volume by category and UTC period.
  - name: Terms
    description: Read, check, and accept the latest Prediction Markets terms for API key and OAuth trading flows.
  - name: Trading
    description: Authenticated REST endpoints for placing and managing orders. Treat REST order placement as payload reference or a one-off server workflow; for active trading and market making, prefer WebSocket order.place.
  - name: Positions
    description: Authenticated endpoints for viewing positions and order history. Use REST positions for recovery or audit snapshots after reconnects, missed WebSocket messages, and settlement windows.
  - name: Combos
    description: Public endpoints for discovering and inspecting combo contracts, plus an authenticated endpoint to create or retrieve a canonical combo. Combos are multi-leg contracts; order entry uses the same place/cancel endpoints as single contracts.
  - name: Rewards
    description: |
      Endpoints for the Maker Rebate and Liquidity Rewards programs.

      - **Maker Rebate** — per-fill rebates earned by resting limit orders that get filled. Rates and rebate multipliers are configured per category. Public rate schedule plus authenticated payout and summary endpoints.
      - **Liquidity Rewards** — daily USD reward pools distributed across qualifying makers based on quote uptime, spread, and size. Public config + event listing, authenticated daily and lifetime summary endpoints.

      When a program is not active, its endpoints return `503 Service Unavailable`.

      **Note on field naming.** Response fields under the Rewards endpoints use `snake_case` (e.g. `event_ticker`, `daily_pool_usd`). This differs from the `camelCase` convention used by the rest of the Prediction Markets REST endpoints.

paths:
  /v1/prediction-markets/events:
    get:
      tags:
        - Markets
      summary: List prediction market events
      description: Returns a paginated list of prediction market events with optional filtering by status, category, sports-market classification, and search text. Repeated values for the same filter use OR semantics; different filters combine with AND semantics. Game events may include an `events` array containing full child event objects, each with its own contracts; child market types are open-ended and may include spreads, totals, player props, or future types.
      operationId: listEvents
      parameters:
        - name: status
          in: query
          description: Filter by event status (can specify multiple)
          schema:
            type: array
            items:
              $ref: '#/components/schemas/MarketStatus'
          style: form
          explode: true
        - name: category
          in: query
          description: Filter by category (can specify multiple). If omitted, returns events from all categories.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - $ref: '#/components/parameters/SportFilter'
        - $ref: '#/components/parameters/SportsMarketTypeFilter'
        - $ref: '#/components/parameters/SportsMarketSubjectFilter'
        - $ref: '#/components/parameters/SportsMarketScopeFilter'
        - $ref: '#/components/parameters/SportsMarketMetricFilter'
        - name: search
          in: query
          description: Search text to filter events by title
          schema:
            type: string
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsResponse'
              examples:
                activeEvents:
                  summary: List of active events
                  value:
                    data:
                      - id: "evt_123"
                        title: "Will Bitcoin reach $100k by end of 2028?"
                        slug: "bitcoin-100k-2028"
                        description: "Bitcoin must reach $100,000 USD on any major exchange by December 31, 2028"
                        imageUrl: "https://example.com/btc.png"
                        type: "binary"
                        category: "crypto"
                        series: null
                        ticker: "BTC100K2028"
                        status: "active"
                        resolvedAt: null
                        createdAt: "2026-01-01T00:00:00.000Z"
                        effectiveDate: "2026-01-01T00:00:00.000Z"
                        expiryDate: "2028-12-31T23:59:59.000Z"
                        liquidity: "500000.00"
                        tags: ["bitcoin", "cryptocurrency", "price-prediction"]
                        contracts:
                          - id: "contract_123"
                            label: "BTC reaches $100,000 by end of 2028"
                            description: null
                            prices:
                              buy:
                                "yes": "0.65"
                                "no": "0.35"
                              sell:
                                "yes": "0.65"
                                "no": "0.35"
                              bestBid: "0.64"
                              bestAsk: "0.66"
                              lastTradePrice: "0.65"
                            color: "#00ff00"
                            status: "active"
                            imageUrl: null
                            priceHistory: null
                            createdAt: "2026-01-01T00:00:00.000Z"
                            expiryDate: "2028-12-31T23:59:59.000Z"
                            resolutionSide: null
                            resolvedAt: null
                            termsAndConditionsUrl: "https://example.com/terms"
                            ticker: "BTC100K2028"
                            instrumentSymbol: "GEMI-BTC100K2028"
                            effectiveDate: "2026-01-01T00:00:00.000Z"
                      - id: "evt_124"
                        title: "Will ETH reach $5k by end of 2028?"
                        slug: "ethereum-5k-2028"
                        description: "Ethereum must reach $5,000 USD on any major exchange by December 31, 2028"
                        imageUrl: "https://example.com/eth.png"
                        type: "binary"
                        category: "crypto"
                        series: null
                        ticker: "ETH5K2028"
                        status: "active"
                        resolvedAt: null
                        createdAt: "2026-01-01T00:00:00.000Z"
                        effectiveDate: "2026-01-01T00:00:00.000Z"
                        expiryDate: "2028-12-31T23:59:59.000Z"
                        liquidity: "300000.00"
                        tags: ["ethereum", "cryptocurrency", "price-prediction"]
                        contracts:
                          - id: "contract_125"
                            label: "ETH reaches $5,000 by end of 2028"
                            description: null
                            prices:
                              buy:
                                "yes": "0.48"
                                "no": "0.52"
                              sell:
                                "yes": "0.48"
                                "no": "0.52"
                              bestBid: "0.47"
                              bestAsk: "0.49"
                              lastTradePrice: "0.48"
                            color: "#00ff00"
                            status: "active"
                            imageUrl: null
                            priceHistory: null
                            createdAt: "2026-01-01T00:00:00.000Z"
                            expiryDate: "2028-12-31T23:59:59.000Z"
                            resolutionSide: null
                            resolvedAt: null
                            termsAndConditionsUrl: "https://example.com/terms"
                            ticker: "ETH5K2028"
                            instrumentSymbol: "GEMI-ETH5K2028"
                            effectiveDate: "2026-01-01T00:00:00.000Z"
                    pagination:
                      limit: 50
                      offset: 0
                      total: 2
                sportsMarkets:
                  summary: Sports markets across leagues and periods
                  value:
                    data:
                      - id: "evt_mlb_first_five_spread"
                        title: "Yankees at Red Sox - First 5 Innings Spread"
                        type: "binary"
                        category: "Sports"
                        sportsMarket:
                          sport: "baseball"
                          type: "spread"
                          subject: "team"
                          scope:
                            type: "inning"
                            start: 1
                            end: 5
                          metric: "runs"
                        contracts: []
                      - id: "evt_nfl_first_half_spread"
                        title: "Bills at Chiefs - First Half Spread"
                        type: "binary"
                        category: "Sports"
                        sportsMarket:
                          sport: "american_football"
                          type: "spread"
                          subject: "team"
                          scope:
                            type: "half"
                            ordinal: 1
                          metric: "points"
                        contracts: []
                      - id: "evt_ncaaf_team_total"
                        title: "Michigan Team Total vs Ohio State"
                        type: "binary"
                        category: "Sports"
                        sportsMarket:
                          sport: "american_football"
                          type: "total"
                          subject: "team"
                          scope:
                            type: "full_contest"
                          metric: "points"
                        contracts: []
                    pagination:
                      limit: 50
                      offset: 0
                      total: 3
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/events/{eventTicker}:
    get:
      tags:
        - Markets
      summary: Get event by ticker
      description: Returns detailed information about a specific prediction market event. Game events may include an `events` array containing full child event objects, each with its own contracts; child market types are open-ended and may include spreads, totals, player props, or future types.
      operationId: getEvent
      parameters:
        - name: eventTicker
          in: path
          required: true
          description: The event ticker symbol (e.g., "BTC100K")
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        '404':
          description: Event not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/events/{eventTicker}/strike:
    get:
      tags:
        - Markets
      summary: Get strike price for event
      description: |
        Returns strike price information for a specific prediction market event.

        Useful for crypto Up/Down contracts where the strike price becomes available at the start of the observation window (typically ~5 minutes before expiry for 5M contracts).

        For Up/Down contracts, the `value` field will be `null` until the strike is captured at `availableAt` time.
      operationId: getEventStrike
      parameters:
        - name: eventTicker
          in: path
          required: true
          description: The event ticker symbol (e.g., "BTC05M2603271950")
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Strike'
              examples:
                strikeAvailable:
                  summary: Strike price captured
                  value:
                    value: "98000.50"
                    type: "reference"
                    availableAt: "2026-03-27T19:45:00.000Z"
                strikePending:
                  summary: Strike pending (pre-T-0)
                  value:
                    value: null
                    type: "reference"
                    availableAt: "2026-03-27T19:45:00.000Z"
        '404':
          description: Strike not found (event doesn't exist or doesn't have strike data)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: "Strike not found"
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/events/newly-listed:
    get:
      tags:
        - Markets
      summary: List newly listed events
      description: Returns a list of prediction market events created in the last 24 hours, sorted by creation date (newest first). Repeated values for the same sports-market filter use OR semantics; different filters combine with AND semantics.
      operationId: listNewlyListedEvents
      parameters:
        - name: category
          in: query
          description: Filter by category (can specify multiple). If omitted, returns events from all categories.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - $ref: '#/components/parameters/SportFilter'
        - $ref: '#/components/parameters/SportsMarketTypeFilter'
        - $ref: '#/components/parameters/SportsMarketSubjectFilter'
        - $ref: '#/components/parameters/SportsMarketScopeFilter'
        - $ref: '#/components/parameters/SportsMarketMetricFilter'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsResponse'
              examples:
                newlyListedEvents:
                  summary: Newly listed events
                  value:
                    data:
                      - id: "4126"
                        title: "SOL price today at 12am EST"
                        slug: "sol-price-today-at-12am-est"
                        description: "Interval SOL price prediction event"
                        imageUrl: "https://images.ctfassets.net/example.png"
                        type: "categorical"
                        category: "Crypto"
                        series: "SOL1H"
                        ticker: "SOL2603050500"
                        status: "active"
                        resolvedAt: null
                        createdAt: "2026-03-05T02:57:31.548Z"
                        effectiveDate: null
                        expiryDate: "2026-03-05T05:00:00.000Z"
                        liquidity: null
                        tags: ["Solana"]
                        contracts:
                          - id: "4126-33859"
                            label: "SOL > $90"
                            abbreviatedName: ">$90"
                            description: null
                            prices:
                              buy:
                                "yes": "0.42"
                                "no": "0.58"
                              sell:
                                "yes": "0.42"
                                "no": "0.58"
                              bestBid: "0.49"
                              bestAsk: "0.54"
                              lastTradePrice: "0.75"
                            color: "#4CAF50"
                            status: "active"
                            imageUrl: null
                            priceHistory: null
                            createdAt: "2026-03-05T02:57:31.548Z"
                            expiryDate: "2026-03-05T05:00:00.000Z"
                            resolutionSide: null
                            resolvedAt: null
                            termsAndConditionsUrl: "https://example.com/terms"
                            ticker: "HI90"
                            instrumentSymbol: "GEMI-SOL2603050500-HI90"
                            effectiveDate: null
                            marketState: "open"
                            sortOrder: 1
                    pagination:
                      limit: 50
                      offset: 0
                      total: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/events/recently-settled:
    get:
      tags:
        - Markets
      summary: List recently settled events
      description: Returns a list of prediction market events settled in the last 24 hours, sorted by resolution date (most recently settled first). Repeated values for the same sports-market filter use OR semantics; different filters combine with AND semantics.
      operationId: listRecentlySettledEvents
      parameters:
        - name: category
          in: query
          description: Filter by category (can specify multiple). If omitted, returns events from all categories.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - $ref: '#/components/parameters/SportFilter'
        - $ref: '#/components/parameters/SportsMarketTypeFilter'
        - $ref: '#/components/parameters/SportsMarketSubjectFilter'
        - $ref: '#/components/parameters/SportsMarketScopeFilter'
        - $ref: '#/components/parameters/SportsMarketMetricFilter'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsResponse'
              examples:
                recentlySettledEvents:
                  summary: Recently settled events
                  value:
                    data:
                      - id: "4100"
                        title: "SOL price today at 4am EST"
                        slug: "sol-price-today-at-4am-est"
                        description: "Interval SOL price prediction event"
                        imageUrl: "https://images.ctfassets.net/example.png"
                        type: "categorical"
                        category: "Crypto"
                        series: "SOL1H"
                        ticker: "SOL2603050400"
                        status: "settled"
                        resolvedAt: "2026-03-05T04:00:21.400Z"
                        createdAt: "2026-03-05T01:57:31.548Z"
                        effectiveDate: null
                        expiryDate: "2026-03-05T04:00:00.000Z"
                        liquidity: null
                        tags: ["Solana"]
                        contracts:
                          - id: "4100-33800"
                            label: "SOL > $90"
                            abbreviatedName: ">$90"
                            description: null
                            prices:
                              buy: {}
                              sell: {}
                              bestBid: null
                              bestAsk: null
                              lastTradePrice: "0.80"
                            color: "#4CAF50"
                            status: "settled"
                            imageUrl: null
                            priceHistory: null
                            createdAt: "2026-03-05T01:57:31.548Z"
                            expiryDate: "2026-03-05T04:00:00.000Z"
                            resolutionSide: "yes"
                            resolvedAt: "2026-03-05T04:00:21.400Z"
                            termsAndConditionsUrl: "https://example.com/terms"
                            ticker: "HI90"
                            instrumentSymbol: "GEMI-SOL2603050400-HI90"
                            effectiveDate: null
                            marketState: "closed"
                            sortOrder: 1
                    pagination:
                      limit: 50
                      offset: 0
                      total: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/events/upcoming:
    get:
      tags:
        - Markets
      summary: List upcoming events
      description: Returns a list of approved prediction market events that are not yet active (pre-launch), sorted by start time (soonest first). Repeated values for the same sports-market filter use OR semantics; different filters combine with AND semantics.
      operationId: listUpcomingEvents
      parameters:
        - name: category
          in: query
          description: Filter by category (can specify multiple). If omitted, returns events from all categories.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - $ref: '#/components/parameters/SportFilter'
        - $ref: '#/components/parameters/SportsMarketTypeFilter'
        - $ref: '#/components/parameters/SportsMarketSubjectFilter'
        - $ref: '#/components/parameters/SportsMarketScopeFilter'
        - $ref: '#/components/parameters/SportsMarketMetricFilter'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsResponse'
              examples:
                upcomingEvents:
                  summary: Upcoming events
                  value:
                    data:
                      - id: "4200"
                        title: "Lakers vs Celtics"
                        slug: "lakers-vs-celtics-march-10"
                        description: "NBA game prediction market"
                        imageUrl: "https://images.ctfassets.net/example.png"
                        type: "binary"
                        category: "Sports"
                        series: null
                        sportsMarket:
                          sport: "basketball"
                          type: "moneyline"
                          subject: "contest"
                          scope:
                            type: "full_contest"
                        ticker: "NBA260310LAL-BOS"
                        status: "approved"
                        resolvedAt: null
                        createdAt: "2026-03-04T12:00:00.000Z"
                        effectiveDate: "2026-03-10T19:30:00.000Z"
                        expiryDate: "2026-03-11T02:00:00.000Z"
                        liquidity: null
                        tags: ["NBA", "Basketball"]
                        subcategory:
                          id: 10
                          slug: "sports_nba"
                          name: "NBA"
                          path: ["Sports", "NBA"]
                        contracts:
                          - id: "4200-1"
                            label: "Lakers Win"
                            abbreviatedName: "LAL"
                            description: null
                            prices:
                              buy: {}
                              sell: {}
                              bestBid: null
                              bestAsk: null
                              lastTradePrice: null
                            color: "#552583"
                            status: "approved"
                            imageUrl: null
                            priceHistory: null
                            createdAt: "2026-03-04T12:00:00.000Z"
                            expiryDate: "2026-03-11T02:00:00.000Z"
                            resolutionSide: null
                            resolvedAt: null
                            termsAndConditionsUrl: "https://example.com/terms"
                            ticker: "LAL"
                            instrumentSymbol: "GEMI-NBA260310LAL-BOS-LAL"
                            effectiveDate: "2026-03-10T19:30:00.000Z"
                            marketState: "closed"
                            sortOrder: 1
                    pagination:
                      limit: 50
                      offset: 0
                      total: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/categories:
    get:
      tags:
        - Markets
      summary: List event categories
      description: Returns available prediction market event categories, optionally filtered by event status.
      operationId: getCategories
      parameters:
        - name: status
          in: query
          description: Filter categories by event status
          schema:
            type: array
            items:
              $ref: '#/components/schemas/MarketStatus'
          style: form
          explode: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  categories:
                    type: array
                    items:
                      type: string
                    example: ["sports", "politics", "crypto", "entertainment"]
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'

  /v1/prediction-markets/volume/{date}:
    get:
      tags:
        - Volume
      summary: Get daily prediction market trade volume
      description: |
        Returns prediction-market trade volume by category for one completed UTC day. This is a public, unauthenticated endpoint.

        `date` must use the `YYYY-MM-DD` UTC calendar-date format. Requests may select one day in the rolling one-year UTC window ending before the current UTC day; the current UTC day is not available. The exact earliest supported date is evaluated for each request.

        Prediction-market volume begins at `2025-12-15`. A pre-launch date, or a post-launch date with any missing source hour, returns `404 NOT_FOUND`. The endpoint never synthesizes zero-volume rows for time before launch.

        All volume values are non-negative decimal strings. Category rows are flat and ordered with each parent before its descendants. Each category row's `volume` includes trades assigned directly to that category and to all descendant categories.
      operationId: getPredictionMarketDailyVolume
      parameters:
        - name: date
          in: path
          required: true
          description: Completed UTC calendar date in `YYYY-MM-DD` format.
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Category volume for the requested UTC day
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PredictionMarketVolumeCategory'
              examples:
                dailyVolume:
                  summary: Daily category volume
                  value:
                    - categoryPath: ["Sports"]
                      volume: "200097"
                    - categoryPath: ["Sports", "Soccer"]
                      volume: "3952"
        '400':
          description: Invalid or unsupported date. The message includes the current one-year UTC date bounds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalidDate:
                  summary: Date must use the required UTC calendar-date format
                  value:
                    error: "BAD_REQUEST"
                    message: "date must use YYYY-MM-DD. Supported one-year UTC date range: <earliest UTC date> <= date < <current UTC date>"
        '404':
          description: No complete volume data is available for the requested date. This includes dates before prediction markets launched and post-launch dates with a missing source hour.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: "NOT_FOUND"
                message: "Prediction market volume data is not available for the requested date"
        '503':
          description: The canonical source is invalid or temporarily unavailable. The endpoint does not return a partial result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: "SERVICE_UNAVAILABLE"
                message: "Prediction market volume data is temporarily unavailable"

  /v1/prediction-markets/volume/{date}/hourly:
    get:
      tags:
        - Volume
      summary: Get hourly prediction market trade volume
      description: |
        Returns prediction-market trade volume by category and UTC hour for one completed UTC day. This is a public, unauthenticated endpoint.

        `date` must use the `YYYY-MM-DD` UTC calendar-date format. Requests may select one day in the rolling one-year UTC window ending before the current UTC day; the current UTC day is not available. The exact earliest supported date is evaluated for each request.

        Prediction-market volume begins at `2025-12-15`. A pre-launch date, or a post-launch date with any missing source hour, returns `404 NOT_FOUND`. The endpoint never synthesizes zero-volume rows for time before launch or completed zero-volume hours.

        All volume values are non-negative decimal strings. Rows are ordered by UTC hour, then with each category par

# --- truncated at 32 KB (196 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gemini-trust/refs/heads/main/openapi/gemini-trust-prediction-markets-openapi.yml