OpenAPI Specification
openapi: 3.0.0
info:
title: Kalshi Trade API Manual Endpoints account incentive-programs API
version: 3.19.0
description: Manually defined OpenAPI spec for endpoints being migrated to spec-first approach
servers:
- url: https://external-api.kalshi.com/trade-api/v2
description: Production Trade API server
- url: https://api.elections.kalshi.com/trade-api/v2
description: Production shared API server, also supported
- url: https://external-api.demo.kalshi.co/trade-api/v2
description: Demo Trade API server
- url: https://demo-api.kalshi.co/trade-api/v2
description: Demo shared API server, also supported
tags:
- name: incentive-programs
description: Incentive program endpoints
paths:
/incentive_programs:
get:
operationId: GetIncentivePrograms
summary: Get Incentives
description: ' List incentives with optional filters. Incentives are rewards programs for trading activity on specific markets.'
tags:
- incentive-programs
parameters:
- name: status
in: query
required: false
description: Status filter. Can be "all", "active", "upcoming", "closed", or "paid_out". Default is "all".
schema:
type: string
enum:
- all
- active
- upcoming
- closed
- paid_out
- name: type
in: query
required: false
description: Type filter. Can be "all", "liquidity", or "volume". Default is "all".
schema:
type: string
enum:
- all
- liquidity
- volume
- name: incentive_description
in: query
required: false
description: Filter by exact incentive description.
schema:
type: string
- name: limit
in: query
required: false
description: Number of results per page. Defaults to 100. Maximum value is 10000.
schema:
type: integer
minimum: 1
maximum: 10000
- name: cursor
in: query
required: false
description: Cursor for pagination
schema:
type: string
responses:
'200':
description: Incentive programs retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/GetIncentiveProgramsResponse'
'400':
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
ErrorResponse:
type: object
properties:
code:
type: string
description: Error code
message:
type: string
description: Human-readable error message
details:
type: string
description: Additional details about the error, if available
service:
type: string
description: The name of the service that generated the error
IncentiveProgram:
type: object
required:
- id
- market_id
- market_ticker
- incentive_type
- incentive_description
- start_date
- end_date
- period_reward
- paid_out
properties:
id:
type: string
description: Unique identifier for the incentive program
market_id:
type: string
description: The unique identifier of the market associated with this incentive program
market_ticker:
type: string
description: The ticker symbol of the market associated with this incentive program
incentive_type:
type: string
enum:
- liquidity
- volume
description: Type of incentive program
incentive_description:
type: string
description: Plain text description of the incentive program
start_date:
type: string
format: date-time
description: Start date of the incentive program
end_date:
type: string
format: date-time
description: End date of the incentive program
period_reward:
type: integer
format: int64
description: Total reward for the period in centi-cents
paid_out:
type: boolean
description: Whether the incentive has been paid out
discount_factor_bps:
type: integer
format: int32
nullable: true
description: Discount factor in basis points (optional)
target_size_fp:
$ref: '#/components/schemas/FixedPointCount'
nullable: true
description: String representation of the target size for the incentive program (optional)
FixedPointCount:
type: string
description: Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0–2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported on markets with fractional trading enabled; the minimum granularity is 0.01 contracts. Integer contract count fields are legacy and will be deprecated; when both integer and fp fields are provided, they must match.
example: '10.00'
GetIncentiveProgramsResponse:
type: object
required:
- incentive_programs
properties:
incentive_programs:
type: array
items:
$ref: '#/components/schemas/IncentiveProgram'
next_cursor:
type: string
description: Cursor for pagination to get the next page of results
securitySchemes:
kalshiAccessKey:
type: apiKey
in: header
name: KALSHI-ACCESS-KEY
description: Your API key ID
kalshiAccessSignature:
type: apiKey
in: header
name: KALSHI-ACCESS-SIGNATURE
description: RSA-PSS signature of the request
kalshiAccessTimestamp:
type: apiKey
in: header
name: KALSHI-ACCESS-TIMESTAMP
description: Request timestamp in milliseconds