Kalshi milestone API

Milestone endpoints

OpenAPI Specification

kalshi-milestone-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Kalshi Trade API Manual Endpoints account milestone 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: milestone
  description: Milestone endpoints
paths:
  /milestones/{milestone_id}:
    get:
      operationId: GetMilestone
      summary: Get Milestone
      description: ' Endpoint for getting data about a specific milestone by its ID.'
      tags:
      - milestone
      parameters:
      - name: milestone_id
        in: path
        required: true
        description: Milestone ID
        schema:
          type: string
      responses:
        '200':
          description: Milestone retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMilestoneResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
  /milestones:
    get:
      operationId: GetMilestones
      summary: Get Milestones
      description: 'Minimum start date to filter milestones. Format: RFC3339 timestamp'
      tags:
      - milestone
      parameters:
      - name: limit
        in: query
        description: Number of milestones to return per page
        required: true
        schema:
          type: integer
          minimum: 1
          maximum: 500
      - name: minimum_start_date
        in: query
        description: Minimum start date to filter milestones. Format RFC3339 timestamp
        required: false
        schema:
          type: string
          format: date-time
      - name: category
        in: query
        description: Filter by milestone category. E.g. Sports, Elections, Esports, Crypto.
        required: false
        schema:
          type: string
          example: Sports
      - name: competition
        in: query
        description: Filter by competition. E.g. Pro Football, Pro Basketball (M), Pro Baseball, Pro Hockey, College Football.
        required: false
        schema:
          type: string
          example: Pro Football
      - name: source_id
        in: query
        description: Filter by source id
        required: false
        schema:
          type: string
      - name: type
        in: query
        description: Filter by milestone type. E.g. football_game, basketball_game, soccer_tournament_multi_leg, baseball_game, hockey_match, political_race.
        required: false
        schema:
          type: string
          example: football_game
      - name: related_event_ticker
        in: query
        description: Filter by related event ticker
        required: false
        schema:
          type: string
      - name: cursor
        in: query
        description: Pagination cursor. Use the cursor value returned from the previous response to get the next page of results
        required: false
        schema:
          type: string
      - name: min_updated_ts
        in: query
        required: false
        description: Filter milestones with metadata updated after this Unix timestamp (in seconds). Use this to efficiently poll for changes.
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Milestones retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMilestonesResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
components:
  schemas:
    GetMilestonesResponse:
      type: object
      required:
      - milestones
      properties:
        milestones:
          type: array
          items:
            $ref: '#/components/schemas/Milestone'
          description: List of milestones.
        cursor:
          type: string
          description: Cursor for pagination.
    GetMilestoneResponse:
      type: object
      required:
      - milestone
      properties:
        milestone:
          $ref: '#/components/schemas/Milestone'
          description: The milestone data.
    Milestone:
      type: object
      required:
      - id
      - category
      - type
      - start_date
      - related_event_tickers
      - title
      - notification_message
      - details
      - primary_event_tickers
      - last_updated_ts
      properties:
        id:
          type: string
          description: Unique identifier for the milestone.
        category:
          type: string
          description: Category of the milestone. E.g. Sports, Elections, Esports, Crypto.
          example: Sports
        type:
          type: string
          description: Type of the milestone. E.g. football_game, basketball_game, soccer_tournament_multi_leg, baseball_game, hockey_match, golf_tournament, political_race.
          example: football_game
        start_date:
          type: string
          format: date-time
          description: Start date of the milestone.
        end_date:
          type: string
          format: date-time
          nullable: true
          description: End date of the milestone, if any.
        related_event_tickers:
          type: array
          items:
            type: string
          description: List of event tickers related to this milestone.
        title:
          type: string
          description: Title of the milestone.
        notification_message:
          type: string
          description: Notification message for the milestone.
        source_id:
          type: string
          nullable: true
          description: Source id of milestone if available.
        source_ids:
          type: object
          additionalProperties:
            type: string
          description: Source ids of milestone if available.
        details:
          type: object
          additionalProperties: true
          description: Additional details about the milestone.
        primary_event_tickers:
          type: array
          items:
            type: string
          description: List of event tickers directly related to the outcome of this milestone.
        last_updated_ts:
          type: string
          format: date-time
          description: Last time this structured target was updated.
  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