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

© 2026 Gemini Space Station, Inc.

Information
Markets
    List prediction market eventsgetGet event by tickergetGet strike price for eventgetList newly listed eventsgetList recently settled eventsgetList upcoming eventsgetList event categoriesget
Terms
    Get prediction market termsgetGet prediction market terms statusgetAccept prediction market termspost
Trading
    Place orderpostCancel orderpost
Positions
    Get active orderspostGet order historypostGet positionspostGet settled positionspostGet volume metricspost
Combos
    List combo contractsgetGet combo by instrument symbolget
Rewards
    Get maker-rebate rate schedulegetList maker-rebate payoutspostGet maker-rebate lifetime summarygetGet liquidity-rewards program configgetList liquidity-rewards eventsgetGet liquidity-rewards daily summarygetGet liquidity-rewards lifetime summaryget
Schemas
Gemini Prediction Markets API
Gemini Prediction Markets API

Rewards

Server

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.


Get maker-rebate rate schedule

GET
https://api.gemini.com
/v1/prediction-markets/maker-rebate/rates

Returns the current Maker Rebate rate rules. Public endpoint; no authentication required.

Each rule defines a rebate_multiplier_bps (basis points of the maker fee that is rebated) and an effective_from timestamp. An optional category scopes the rule to a single market category (omitted rules apply to all categories). An optional effective_to marks a rule as superseded.

Returns 503 with error: "Maker rebate program is not currently available" when the program is disabled.

Get maker-rebate rate schedule › query Parameters

category
​string

Filter to rules that apply to this category (e.g. Crypto, Sports). When omitted, returns all rules.

Get maker-rebate rate schedule › Responses

Successful response

MakerRebateRatesResponse
​MakerRebateRateRule[] · required
GET/v1/prediction-markets/maker-rebate/rates
curl --request GET \ --url https://api.gemini.com/v1/prediction-markets/maker-rebate/rates
shell
Example Responses
{ "rate_rules": [ { "id": 12, "rebate_multiplier_bps": 5000, "effective_from": "2026-03-19T00:00:00Z", "category": "Crypto" }, { "id": 13, "rebate_multiplier_bps": 2500, "effective_from": "2026-03-19T00:00:00Z", "category": "Sports", "effective_to": "2026-04-19T00:00:00Z" } ] }
json
application/json

List maker-rebate payouts

POST
https://api.gemini.com
/v1/prediction-markets/maker-rebate/payouts

Returns the authenticated account's Maker Rebate payout history. Most recent payout first.

Pagination is read from the limit and offset query parameters: limit is clamped to [1, 100] (default 50), offset is clamped to [0, +∞) (default 0).

Requires authentication with OrderStatus permission. Returns 503 when the program is disabled.

List maker-rebate payouts › query Parameters

limit
​integer · min: 1 · max: 100

Maximum number of payouts to return (default 50, clamped to [1, 100]).

Default: 50
offset
​integer · min: 0

Number of payouts to skip (default 0).

Default: 0

List maker-rebate payouts › Responses

Successful response

MakerRebatePayoutsResponse
​MakerRebatePayout[] · required
POST/v1/prediction-markets/maker-rebate/payouts
curl --request POST \ --url https://api.gemini.com/v1/prediction-markets/maker-rebate/payouts
shell
Example Responses
{ "payouts": [ { "id": 9182, "total_volume_usd": "12450.00", "total_rebate_usd": "6.23", "total_fill_count": 187, "status": "PAID", "paid_at": "2026-05-20T21:00:00Z", "created_at": "2026-05-20T20:55:12Z" }, { "id": 9173, "total_volume_usd": "8920.50", "total_rebate_usd": "4.46", "total_fill_count": 124, "status": "PAID", "paid_at": "2026-05-19T21:00:00Z", "created_at": "2026-05-19T20:55:08Z" } ] }
json
application/json

Get maker-rebate lifetime summary

GET
https://api.gemini.com
/v1/prediction-markets/maker-rebate/summary/total

Returns lifetime totals for the authenticated account's Maker Rebate payouts. When both dateFrom and dateTo are provided, the totals are restricted to payouts paid within that inclusive Eastern Time window.

Either provide both date parameters or omit both. Dates must be in YYYY-MM-DD format, dateTo must be on or after dateFrom, and the range must not exceed 5 years.

Requires authentication with OrderStatus permission. Returns 503 when the program is disabled.

Get maker-rebate lifetime summary › query Parameters

dateFrom
​string · date

Inclusive start of the payout date window (YYYY-MM-DD, Eastern Time). Must be provided together with dateTo.

Example: 2026-04-01
dateTo
​string · date

Inclusive end of the payout date window (YYYY-MM-DD, Eastern Time). Must be on or after dateFrom and within 5 years of it.

Example: 2026-05-01

Get maker-rebate lifetime summary › Responses

Successful response

MakerRebateLifetimeSummary
total_earned_usd
​string · required

Sum of total_rebate_usd across payouts in the window.

Example: 152.40
total_fill_count
​integer · int64 · required

Sum of qualifying maker fills across payouts in the window.

Example: 4218
total_volume_usd
​string · required

Sum of qualifying maker volume (USD) across payouts in the window.

Example: 304800.00
payout_count
​integer · int32 · required

Number of payouts in the window. Always present; 0 when no payouts exist in the window.

Example: 27
first_payout_date
​string | null · date · required

Date of the earliest payout in the window, or null if no payouts exist.

Example: 2026-03-19
last_payout_date
​string | null · date · required

Date of the most recent payout in the window, or null if no payouts exist.

Example: 2026-05-20
GET/v1/prediction-markets/maker-rebate/summary/total
curl --request GET \ --url https://api.gemini.com/v1/prediction-markets/maker-rebate/summary/total
shell
Example Responses
{ "total_earned_usd": "152.40", "total_fill_count": 4218, "total_volume_usd": "304800.00", "payout_count": 27, "first_payout_date": "2026-03-19", "last_payout_date": "2026-05-20" }
json
application/json

Get liquidity-rewards program config

GET
https://api.gemini.com
/v1/prediction-markets/liquidity-rewards/config

Returns the Liquidity Rewards program configuration. Public endpoint; no authentication required.

When the program is fully configured the response includes max_spread_cents, min_payout_threshold_usd, and enabled: true. When the program is not yet fully configured, the response collapses to { "enabled": false } only.

Returns 503 when the program is not currently available.

Get liquidity-rewards program config › Responses

Successful response

LiquidityRewardsConfig
enabled
​boolean · required

True when the program is fully configured upstream. When false, the response collapses to { "enabled": false } only.

Example: true
max_spread_cents
​integer · int32

Quotes wider than this spread score zero in the scoring algorithm. Only present when enabled is true.

Example: 10
min_payout_threshold_usd
​string

Daily reward amounts below this threshold are suppressed (sub-threshold accounts get no row at all). Only present when enabled is true.

Example: 1.00
GET/v1/prediction-markets/liquidity-rewards/config
curl --request GET \ --url https://api.gemini.com/v1/prediction-markets/liquidity-rewards/config
shell
Example Responses
{ "max_spread_cents": 10, "min_payout_threshold_usd": "1.00", "enabled": true }
json
application/json

List liquidity-rewards events

GET
https://api.gemini.com
/v1/prediction-markets/liquidity-rewards/events

Returns the paginated list of events currently participating in the Liquidity Rewards program. Public endpoint; no authentication required.

category accepts a comma-separated list of category names (whitespace trimmed, empty entries dropped). sort controls ordering. limit is clamped to [1, 100] (default 50); offset is clamped to [0, +∞) (default 0). last_score_date is the most recent date for which scoring data has been written, or null when no scoring has run yet.

Returns 503 when the program is not currently available.

List liquidity-rewards events › query Parameters

category
​string

Comma-separated list of category names. Whitespace is trimmed and empty entries are dropped.

Example: Crypto,Sports
search
​string

Filter events by title substring (case-insensitive).

sort
​string · enum

Sort order for the returned events. Defaults to daily_pool_desc.

Enum values:
daily_pool_desc
daily_pool_asc
ends_soonest
ends_latest
title_asc
title_desc
category_asc
category_desc
Default: daily_pool_desc
limit
​integer · min: 1 · max: 100

Maximum number of events to return (default 50, clamped to [1, 100]).

Default: 50
offset
​integer · min: 0

Number of events to skip (default 0).

Default: 0

List liquidity-rewards events › Responses

Successful response

LiquidityRewardsEventsResponse
​LiquidityRewardEvent[] · required
​Pagination · required
last_score_date
​string | null · date · required

Most recent date for which scoring has been written. null when no scoring has run yet.

Example: 2026-05-19
GET/v1/prediction-markets/liquidity-rewards/events
curl --request GET \ --url https://api.gemini.com/v1/prediction-markets/liquidity-rewards/events
shell
Example Responses
{ "events": [ { "event_ticker": "BTC2605202100", "title": "BTC above $95,000?", "category": "Crypto", "daily_pool_usd": "500.00", "pool_source": "event_override", "ends_at": "2026-05-20T21:00:00Z", "qualifying_maker_count": 14, "icon_url": "https://example.com/btc.png" }, { "event_ticker": "FRENCHOPEN-FINAL", "title": "French Open 2026 — Men's Final winner", "category": "Sports", "daily_pool_usd": "250.00", "pool_source": "category_default", "ends_at": "2026-06-07T15:00:00Z", "qualifying_maker_count": 7 } ], "pagination": { "limit": 50, "offset": 0, "total": 2 }, "last_score_date": "2026-05-19" }
json
application/json

Get liquidity-rewards daily summary

GET
https://api.gemini.com
/v1/prediction-markets/liquidity-rewards/summary/daily

Returns daily Liquidity Rewards payouts for the authenticated account within the requested date window. Both dateFrom and dateTo are required and must be in YYYY-MM-DD format; dateTo must be on or after dateFrom.

Each daily entry includes the total USD reward for that day, the payout status (e.g. PENDING, PAID), the paid-at timestamp (if paid), and per-event score breakdowns showing how the day's reward was distributed across events the account scored on.

Requires authentication with OrderStatus permission. Returns 503 when the program is not currently available.

Get liquidity-rewards daily summary › query Parameters

dateFrom
​string · date · required

Inclusive start of the date window (YYYY-MM-DD, Eastern Time).

Example: 2026-05-01
dateTo
​string · date · required

Inclusive end of the date window (YYYY-MM-DD, Eastern Time). Must be on or after dateFrom.

Example: 2026-05-07

Get liquidity-rewards daily summary › Responses

Successful response

LiquidityRewardsDailySummaryResponse
​LiquidityDailySummary[] · required
GET/v1/prediction-markets/liquidity-rewards/summary/daily
curl --request GET \ --url 'https://api.gemini.com/v1/prediction-markets/liquidity-rewards/summary/daily?dateFrom=%3Cstring%3E&dateTo=%3Cstring%3E'
shell
Example Responses
{ "daily_summaries": [ { "payout_date": "2026-05-07", "total_reward_usd": "12.45", "payout_status": "PAID", "paid_at": "2026-05-08T21:00:00Z", "events": [ { "event_id": 1234567890, "event_name": "BTC above $95,000?", "category_name": "Crypto", "normalized_score": "0.4521", "snapshot_count": 1180, "total_snapshots": 1440, "event_reward_usd": "8.20" }, { "event_id": 9876543210, "event_name": "ETH above $4,000?", "category_name": "Crypto", "normalized_score": "0.2341", "snapshot_count": 920, "total_snapshots": 1440, "event_reward_usd": "4.25" } ] }, { "payout_date": "2026-05-06", "total_reward_usd": "0", "payout_status": "ZERO_AMOUNT", "paid_at": null, "events": [] } ] }
json
application/json

Get liquidity-rewards lifetime summary

GET
https://api.gemini.com
/v1/prediction-markets/liquidity-rewards/summary/total

Returns lifetime totals for the authenticated account's Liquidity Rewards payouts. When both dateFrom and dateTo are provided, the totals are restricted to payouts paid within that inclusive Eastern Time window.

Either provide both date parameters or omit both. Dates must be in YYYY-MM-DD format, dateTo must be on or after dateFrom, and the range must not exceed 5 years.

Requires authentication with OrderStatus permission. Returns 503 when the program is not currently available.

Get liquidity-rewards lifetime summary › query Parameters

dateFrom
​string · date

Inclusive start of the payout date window (YYYY-MM-DD, Eastern Time). Must be provided together with dateTo.

Example: 2026-04-01
dateTo
​string · date

Inclusive end of the payout date window (YYYY-MM-DD, Eastern Time). Must be on or after dateFrom and within 5 years of it.

Example: 2026-05-01

Get liquidity-rewards lifetime summary › Responses

Successful response

LiquidityRewardsLifetimeSummary
total_earned_usd
​string · required

Sum of total_reward_usd across daily payouts in the window.

Example: 84.20
payout_count
​integer · int32 · required

Number of daily payouts in the window. Always present; 0 when no payouts exist in the window.

Example: 12
first_payout_date
​string | null · date · required

Date of the earliest payout in the window, or null if no payouts exist.

Example: 2026-05-08
last_payout_date
​string | null · date · required

Date of the most recent payout in the window, or null if no payouts exist.

Example: 2026-05-20
GET/v1/prediction-markets/liquidity-rewards/summary/total
curl --request GET \ --url https://api.gemini.com/v1/prediction-markets/liquidity-rewards/summary/total
shell
Example Responses
{ "total_earned_usd": "84.20", "payout_count": 12, "first_payout_date": "2026-05-08", "last_payout_date": "2026-05-20" }
json
application/json

Combos