milestone

Endpoint for listing milestones. A milestone's details.status, when present, is maintained by a periodic background job. It lags the game's live state and may be stale or inaccurate, for example remaining live after the game ends. For game status, prefer live data, which is updated far more often: live_data.details.status from GET /live_data/milestone/{milestone_id}, or each entry's details.status from GET /live_data/batch. Scores are in the sport-specific fields of that live data details object.

get/milestones

Request

  • Base URL
    https://external-api.kalshi.com/trade-api/v2
  • URL
    https://external-api.kalshi.com/trade-api/v2/milestones
  • Auth
    none declared

Query parameters

limitinteger required

Number of milestones to return per page

minimum_start_datestring date-time

Minimum start date to filter milestones. Format RFC3339 timestamp

categorystring
Example:Sports

Filter by milestone category. E.g. Sports, Elections, Esports, Crypto.

competitionstring
Example:Pro Football

Filter by competition. E.g. Pro Football, Pro Basketball (M), Pro Baseball, Pro Hockey, College Football.

source_idstring

Filter by source id

typestring
Example:football_game

Filter by milestone type. E.g. football_game, basketball_game, soccer_tournament_multi_leg, baseball_game, hockey_match, political_race.

related_event_tickerstring

Filter by related event ticker

cursorstring

Pagination cursor. Use the cursor value returned from the previous response to get the next page of results

min_updated_tsinteger

Filter milestones with metadata updated after this Unix timestamp (in seconds). Use this to efficiently poll for changes.

Response

Milestones retrieved successfully

cursorstring

Cursor for pagination.

Example response

{
  "milestones": [
    {
      "category": "Sports",
      "type": "football_game"
    }
  ]
}

Changes

    • info

      added the new optional query request parameter min_updated_ts

    • info

      added the optional property // to the response with the status

    • breaking

      for the query request parameter minimum_start_date, the format changed from no format to date-time

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property // became nullable for the status

    • warning

      for the query request parameter limit, the max was set to 500.00

    • warning

      for the query request parameter limit, the min was set to 1.00

    • warning

      removed the optional property /// from the response with the status

    • info

      added the new optional query request parameter source_id

    • info

      for the query request parameter limit, the format was generalized from int64 to no format

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      the response property became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status

    • info

      the response property // became required for the status