GeminiGemini
SandboxGet API key
  • Crypto Trading
  • Prediction Markets
Changelog
Gemini Crypto Exchange LogoGemini Crypto Exchange Logo

© 2026 Gemini Space Station, Inc.

Getting StartedAPI Specifications
Maker and Taker Incentives
    Market Maker ProgramMaker Rebate ProgramLiquidity Rewards ProgramTaker Rewards Program
WebSocket
    IntroductionAuthenticationMessage Format
    Streams
      Book TickerL2 Partial DepthL2 Differential DepthTrade StreamOrder EventsBalance UpdatesPosition UpdatesContract Status
    Playground
      OverviewconninfopingtimeSUBSCRIBEUNSUBSCRIBELIST_SUBSCRIPTIONSdepthorder.placeorder.cancelorder.cancel_allorder.cancel_session
REST APIs
    Combos
    Events
      List EventsGet EventGet Strike Price for EventList Event CategoriesList Newly Listed EventsList Recently Settled EventsList Upcoming Events
    Volume
    Terms
    Order Management
    Positions
    Rewards
Combo Contracts
    Overview
Combos Request-for-Quote (RFQ)
    OverviewWebSocket StreamsQuote MethodsMaker IntegrationExamples
Tickers & Taxonomy
    OverviewCryptoSportsSports Market TaxonomyCommoditiesWeather
Schemas

List Upcoming Events

REST APIsPrediction MarketsEventsList Upcoming Events

List Upcoming Events

GEThttps://api.gemini.com/v1/prediction-markets/events/upcoming

Returns a list of approved prediction market events that are not yet active (pre-launch), sorted by start time (soonest first).

GETv1/prediction-markets/events/upcoming
curl --request GET \
  --url https://api.gemini.com/v1/prediction-markets/events/upcoming

Query Parameters

categoryarray
Filter by category (can specify multiple). If omitted, returns events from all categories.
sportarray
Filter by sportsMarket.sport. Repeat the parameter to match any supplied value (OR). Sports-market filters compose independently using AND. Unsupported enum values return 400 Bad Request; valid combinations with no matching events return an empty result.
sports_market_typearray
Filter by sportsMarket.type. Repeat the parameter to match any supplied value (OR). Sports-market filters compose independently using AND. Unsupported enum values return 400 Bad Request.
sports_market_subjectarray
Filter by sportsMarket.subject. Repeat the parameter to match any supplied value (OR). Sports-market filters compose independently using AND. Unsupported enum values return 400 Bad Request.
sports_market_scopearray
Filter by sportsMarket.scope.type. Repeat the parameter to match any supplied value (OR). Ordinal and range qualifiers are not inferred by this filter. Sports-market filters compose independently using AND. Unsupported enum values return 400 Bad Request.
sports_market_metricarray
Filter by sportsMarket.metric. Repeat the parameter to match any supplied value (OR). A metric can be queried without sport; use sport when its sport-specific meaning matters. Sports-market filters compose independently using AND. Unsupported enum values return 400 Bad Request.
limitinteger
Maximum number of results to return (max 500)Default: 50
offsetinteger
Number of results to skip for paginationDefault: 0

Responses

Successful response

dataarray
data[].idstring
data[].titlestring
Example: Will Bitcoin reach $100k by end of 2028?
data[].slugstring
Example: bitcoin-100k-2028
data[].descriptionstring
data[].imageUrlstring
data[].typestring·enum
Type of prediction marketEnum values: binarycategorical
data[].categorystring
Example: crypto
data[].seriesstring
data[].sportsMarketobject
Atomic sports-market classification shared by every contract grouped under the event. Present only for sports events. All fields except `metric` are required together.
data[].sportsMarket.sportstring·enum·required
Sport whose rules give the market's scope and metric their sport-specific meaning.Enum values: american_footballathleticsaustralian_rules_footballbaseballbasketballboxingchesscricketcyclingdartsesportsgolfhockeylacrossemixed_martial_artsmotorsportsrugbysailingsoccertennis
data[].sportsMarket.typestring·enum·required
Conventional sports-market family. `subject`, `scope`, and `metric` provide detail within the family. This classification is independent of the event's structural `type` (`binary` or `categorical`).Enum values: moneylinespreadtotalpropcorrect_scoreto_advancefuturesother
data[].sportsMarket.subjectstring·enum·required
What the market is about. `participant` covers non-player entrants such as drivers and horses.Enum values: contestteamplayerparticipantother
data[].sportsMarket.scopeobject·required
Settlement scope. `ordinal` identifies one unit; `start` and `end` identify an inclusive range of units.
data[].sportsMarket.scope.typestring·enum·required
Unit covered by the market. `full_contest` follows the market's official final-result rules; `regulation` covers scheduled regulation play only. Ordinal and range qualifiers are represented separately on `SportsMarketScope`.Enum values: full_contestregulationhalfquarterperiodinningteam_inningsoverpowerplaysetgameroundholematch_daysessionsuper_overracesprintqualifyingpracticestagelapseriesseasontournamentcompetitionother
data[].sportsMarket.scope.ordinalinteger (int32)
Optional ordinal within the scope type, such as half `1` or quarter `4`.
data[].sportsMarket.scope.startinteger (int32)
Optional inclusive start of a scope range, such as inning `1`.
data[].sportsMarket.scope.endinteger (int32)
Optional inclusive end of a scope range, such as inning `5`.
data[].sportsMarket.metricstring·enum
Statistic measured by the market. Interpret shared metric names using `sportsMarket.sport`.Enum values: acesassistsballs_facedbirdiesblocked_shotsblocksbogeysboundariesbreak_points_woncardscatchesclean_sheetscompleted_passescontrol_timecornersdefensive_reboundsdouble_doubledouble_faultsdoubleseaglesearned_runserrorsfaceoff_winsfairways_hitfantasy_pointsfastest_lapfield_goals_madefinishing_positionfoulsfoursfree_throws_madefumblesgamesgoalsgoals_allowedgreens_in_regulationgrid_positionhitshits_allowedhits_runs_rbisholes_in_onehome_runsinnings_pitchedinterceptions_thrownkicking_pointsknockdownslaps_completedlaps_ledlap_timelongest_pass_completionlongest_receptionlongest_rushmaiden_oversoffensive_reboundsoffsidesparspassespass_attemptspass_completionspassing_touchdownspassing_yardspenalty_minutespitching_outs_recordedpit_stopspointspoints_assistspoints_reboundspoints_rebounds_assistspositions_gainedpower_play_pointsputtsqualifying_positionreboundsrebounds_assistsreceiving_touchdownsreceiving_yardsreceptionsred_cardsretirementsroundsrunsruns_batted_inruns_concededrush_attemptsrushing_touchdownsrushing_yardssackssafety_carssavessetsshotsshots_on_goalshots_on_targetshutoutssignificant_strikessinglessixesstealsstolen_basesstrokesstrikeoutssubmission_attemptstacklestakedownsthree_pointers_madetiebreaks_wontotal_basestotal_points_wontotal_strikestouchdownstriplestriple_doubleturnoverswalkswicketswinsyellow_cardsother
data[].tickerstring
The event ticker (e.g., "BTC100K2028")Example: BTC100K2028
data[].statusstring·enum
Status of a prediction marketEnum values: approvedactiveclosedunder_reviewsettledinvalid
data[].resolvedAtstring (date-time)
data[].createdAtstring (date-time)
data[].contractsarray
Tradeable contracts within this event
data[].contracts[].idstring
data[].contracts[].labelstring
Human-readable label (e.g., "Yes", "No")
data[].contracts[].abbreviatedNamestring
Short form label (e.g., ">$90")
data[].contracts[].descriptionobject
Rich text description
data[].contracts[].pricesobject
Current bid/ask pricing for the contract
data[].contracts[].totalSharesstring
data[].contracts[].colorstring
data[].contracts[].statusstring·enum
Status of a prediction marketEnum values: approvedactiveclosedunder_reviewsettledinvalid
data[].contracts[].imageUrlstring
data[].contracts[].priceHistoryarray
data[].contracts[].createdAtstring (date-time)
data[].contracts[].expiryDatestring (date-time)
data[].contracts[].resolutionSidestring·enum
The outcome being traded (Yes or No)Enum values: yesno
data[].contracts[].resolvedAtstring (date-time)
data[].contracts[].termsAndConditionsUrlstring
data[].contracts[].tickerstring
data[].contracts[].instrumentSymbolstring
data[].contracts[].quantityIncrementstring
Contract quantity grid from instrument refdata (for example, "0.01").
data[].contracts[].quantityMinimumstring
Minimum contract quantity from instrument refdata (for example, "1.00").
data[].contracts[].priceIncrementstring
Contract price grid from instrument refdata (for example, "0.0001").
data[].contracts[].quoteAssetPrecisioninteger
Decimal places supported by the instrument's quote asset.
data[].contracts[].priceMinimumstring
Minimum contract price and anchor for the instrument price grid (for example, "0.0001").
data[].contracts[].effectiveDatestring (date-time)
data[].contracts[].marketStatestring·enum
Trading state of the contractEnum values: openclosed
data[].contracts[].sortOrderinteger
Display order within the event
data[].contracts[].strikeobject
Strike price or contract threshold information for Up/Down crypto contracts and sports prediction market contracts.
data[].contracts[].strike.valuestring
The strike price value. Null for "reference" type strikes where the value is determined at availableAt time. For sports contracts, this represents the derived numeric strike value (e.g. spread margin, total line, or position/rank threshold).Example: 87500.00
data[].contracts[].strike.typestring·enum
Strike or condition inequality type for contract threshold evaluation. - `reference`: Crypto Up/Down reference strike price captured at `availableAt` time. - `above`: Higher/Lower contract threshold. - `spread`: Point, run, or goal handicap spread line. - `over`: Total or prop threshold evaluated as strict greater than (`>`). - `over_or_equal`: Total or prop threshold evaluated as greater than or equal to (`>=`). - `under`: Total or prop threshold evaluated as strict less than (`<`). - `under_or_equal`: Position, rank, or total threshold evaluated as less than or equal to (`<=`).Enum values: referenceabovespreadoverover_or_equalunderunder_or_equalExample: spread
data[].contracts[].strike.availableAtstring (date-time)
When the strike price becomes availableExample: 2026-03-27T19:45:00.000Z
data[].contracts[].sourcestring
Deprecated: use the event-level `sourceDetails` (`agency` + `index`) instead. Data source identifier for price observation (e.g., "GRR-KAIKO_BTCUSD_60S"). Present for crypto Up/Down contracts.Example: GRR-KAIKO_BTCUSD_60S
data[].contracts[].settlementValuestring
The observed settlement price. Only present after the contract is settled.Example: 87654.32
data[].contractOrderbooksobject
data[].volumestring
Total trading volume in USDExample: 125000.00
data[].liquiditystring
Total liquidity in USDExample: 50000.00
data[].tagsarray
data[].effectiveDatestring (date-time)
data[].expiryDatestring (date-time)
data[].subcategoryobject
Nested category information for the event
data[].sourcestring
Deprecated: use `sourceDetails` (`agency` + `index`) instead. Data source identifier for price observation. Aggregated from contracts for crypto Up/Down events.Example: GRR-KAIKO_BTCUSD_60S
data[].sourceDetailsobject
Structured data source information for price observation. Replaces the deprecated flat `source` string on the event and contract. Present for crypto Up/Down events. Both fields are omitted when not available.
data[].settlementobject
Settlement information for resolved events
data[].settlement.valuestring
The observed settlement value (e.g., the price at expiry for crypto contracts)Example: 87654.32
paginationobject
pagination.limitinteger
Example: 50
pagination.offsetinteger
Example: 0
pagination.totalinteger
Example: 100
Example Responses
{
  "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
          },
          "totalShares": 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
  }
}
PreviousList Recently Settled EventsNextVolume
Last modified on August 11, 2026