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