> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User Fills

> Your order fill notifications. Requires authentication.

**Requirements:**
- Authentication required
- Market specification optional via `market_ticker`/`market_tickers` (omit to receive all your fills)
- Supports `update_subscription` with `add_markets` / `delete_markets`
- Updates sent immediately when your orders are filled

**Use case:** Tracking your trading activity




## AsyncAPI

````yaml asyncapi.yaml fill
id: fill
title: User Fills
description: >
  Your order fill notifications. Requires authentication.


  **Requirements:**

  - Authentication required

  - Market specification optional via `market_ticker`/`market_tickers` (omit to
  receive all your fills)

  - Supports `update_subscription` with `add_markets` / `delete_markets`

  - Updates sent immediately when your orders are filled


  **Use case:** Tracking your trading activity
servers:
  - id: production
    protocol: wss
    host: external-api-ws.kalshi.com
    bindings: []
    variables: []
address: fill
parameters: []
bindings: []
operations:
  - &ref_2
    id: receiveFill
    title: Fill Notification
    description: Receive notifications for your fills
    type: send
    messages:
      - &ref_3
        id: fill
        contentType: application/json
        payload:
          - name: Fill Update
            description: Private fill information for authenticated user
            type: object
            properties:
              - name: type
                type: string
                description: fill
                required: true
              - name: sid
                type: integer
                description: >-
                  Server-generated subscription identifier (sid) used to
                  identify the channel
                required: true
              - name: msg
                type: object
                required: true
                properties:
                  - name: trade_id
                    type: string
                    description: >-
                      Unique identifier for fills. This is what you use to
                      differentiate fills
                    required: true
                  - name: order_id
                    type: string
                    description: >-
                      Unique identifier for orders. This is what you use to
                      differentiate fills for different orders
                    required: true
                  - name: client_order_id
                    type: string
                    description: Optional client-provided order ID
                    required: false
                  - name: market_ticker
                    type: string
                    description: Unique market identifier
                    examples: &ref_0
                      - FED-23DEC-T3.00
                      - HIGHNY-22DEC23-B53.5
                    required: true
                  - name: exchange_index
                    type: integer
                    description: Identifier for the exchange shard where the fill occurred
                    required: true
                  - name: is_taker
                    type: boolean
                    description: If you were a taker on this fill
                    required: true
                  - name: side
                    type: string
                    description: Market side
                    enumValues:
                      - 'yes'
                      - 'no'
                    required: true
                  - name: ts
                    type: integer
                    description: >-
                      Deprecated - Unix timestamp for when the update happened
                      (in seconds). Use ts_ms instead.
                    deprecated: true
                    required: true
                  - name: ts_ms
                    type: integer
                    description: >-
                      Unix timestamp for when the update happened (in
                      milliseconds)
                    required: true
                  - name: yes_price_dollars
                    type: string
                    description: Price for the yes side of the fill in dollars
                    required: true
                  - name: count_fp
                    type: string
                    description: Fixed-point contracts filled (2 decimals)
                    required: true
                  - name: fee_cost
                    type: string
                    description: Exchange fee paid for this fill in fixed-point dollars
                    required: true
                  - name: action
                    type: string
                    description: >-
                      Legacy order action; an unknown action is emitted as an
                      empty string.
                    enumValues:
                      - buy
                      - sell
                      - sell_partial
                      - sell_to_close
                      - ''
                    required: true
                  - name: post_position_fp
                    type: string
                    description: Fixed-point position after the fill (2 decimals)
                    required: true
                  - name: purchased_side
                    type: string
                    description: Market side
                    enumValues:
                      - 'yes'
                      - 'no'
                    required: true
                  - name: outcome_side
                    type: string
                    description: Market side
                    enumValues:
                      - 'yes'
                      - 'no'
                    required: true
                  - name: book_side
                    type: string
                    description: >-
                      Side of the book for an order or trade. 'bid' is
                      equivalent to outcome_side 'yes'; 'ask' is equivalent to
                      outcome_side 'no'.
                    enumValues:
                      - bid
                      - ask
                    required: true
                  - name: subaccount
                    type: integer
                    description: Optional subaccount number for the fill
                    required: false
              - name: sending_ts_ms
                type: integer
                description: >-
                  Unix timestamp in milliseconds when Kalshi queued this message
                  at the network layer.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - sid
            - msg
          properties:
            type:
              type: string
              const: fill
              x-parser-schema-id: <anonymous-schema-117>
            sid:
              type: integer
              description: >-
                Server-generated subscription identifier (sid) used to identify
                the channel
              minimum: 1
              x-parser-schema-id: subscriptionId
            msg:
              type: object
              required:
                - trade_id
                - order_id
                - market_ticker
                - exchange_index
                - is_taker
                - side
                - yes_price_dollars
                - count_fp
                - fee_cost
                - action
                - outcome_side
                - book_side
                - ts
                - ts_ms
                - post_position_fp
                - purchased_side
              properties:
                trade_id:
                  type: string
                  description: >-
                    Unique identifier for fills. This is what you use to
                    differentiate fills
                  format: uuid
                  x-parser-schema-id: <anonymous-schema-119>
                order_id:
                  type: string
                  description: >-
                    Unique identifier for orders. This is what you use to
                    differentiate fills for different orders
                  format: uuid
                  x-parser-schema-id: <anonymous-schema-120>
                client_order_id:
                  type: string
                  description: Optional client-provided order ID
                  x-parser-schema-id: <anonymous-schema-121>
                market_ticker:
                  type: string
                  description: Unique market identifier
                  examples: *ref_0
                  x-parser-schema-id: marketTicker
                exchange_index:
                  type: integer
                  description: Identifier for the exchange shard where the fill occurred
                  x-rust-type: i32
                  x-parser-schema-id: <anonymous-schema-122>
                is_taker:
                  type: boolean
                  description: If you were a taker on this fill
                  x-parser-schema-id: <anonymous-schema-123>
                side: &ref_1
                  type: string
                  description: Market side
                  enum:
                    - 'yes'
                    - 'no'
                  x-parser-schema-id: marketSide
                ts:
                  type: integer
                  deprecated: true
                  description: >-
                    Deprecated - Unix timestamp for when the update happened (in
                    seconds). Use ts_ms instead.
                  format: int64
                  x-parser-schema-id: <anonymous-schema-124>
                ts_ms:
                  type: integer
                  description: >-
                    Unix timestamp for when the update happened (in
                    milliseconds)
                  format: int64
                  x-parser-schema-id: <anonymous-schema-125>
                yes_price_dollars:
                  type: string
                  description: Price for the yes side of the fill in dollars
                  x-rust-type: common::types::Price
                  x-rust-serialize-with: ws::dto::serde_money::serialize_price_dollars
                  x-parser-schema-id: <anonymous-schema-126>
                count_fp:
                  type: string
                  description: Fixed-point contracts filled (2 decimals)
                  x-rust-type: common::types::Amount
                  x-rust-serialize-with: ws::dto::serde_money::serialize_amount_fixed_point_count
                  x-parser-schema-id: <anonymous-schema-127>
                fee_cost:
                  type: string
                  description: Exchange fee paid for this fill in fixed-point dollars
                  x-rust-type: common::types::Value
                  x-rust-serialize-with: ws::dto::serde_money::serialize_value_microcent_dollars
                  x-parser-schema-id: <anonymous-schema-128>
                action:
                  type: string
                  description: >-
                    Legacy order action; an unknown action is emitted as an
                    empty string.
                  enum:
                    - buy
                    - sell
                    - sell_partial
                    - sell_to_close
                    - ''
                  x-parser-schema-id: orderAction
                post_position_fp:
                  type: string
                  description: Fixed-point position after the fill (2 decimals)
                  x-rust-type: common::types::Position
                  x-rust-serialize-with: ws::dto::serde_money::serialize_position_fixed_point_count
                  x-parser-schema-id: <anonymous-schema-129>
                purchased_side: *ref_1
                outcome_side: *ref_1
                book_side:
                  type: string
                  description: >-
                    Side of the book for an order or trade. 'bid' is equivalent
                    to outcome_side 'yes'; 'ask' is equivalent to outcome_side
                    'no'.
                  enum:
                    - bid
                    - ask
                  x-parser-schema-id: bookSide
                subaccount:
                  type: integer
                  description: Optional subaccount number for the fill
                  x-parser-schema-id: <anonymous-schema-130>
              x-parser-schema-id: <anonymous-schema-118>
            sending_ts_ms:
              type: integer
              format: int64
              description: >-
                Unix timestamp in milliseconds when Kalshi queued this message
                at the network layer.
              x-parser-schema-id: sendingTimestampMs
          x-parser-schema-id: fillPayload
        title: Fill Update
        description: Private fill information for authenticated user
        example: |-
          {
            "type": "fill",
            "sending_ts_ms": 1671899397123,
            "sid": 13,
            "msg": {
              "trade_id": "d91bc706-ee49-470d-82d8-11418bda6fed",
              "order_id": "ee587a1c-8b87-4dcf-b721-9f6f790619fa",
              "client_order_id": "my-order-1",
              "market_ticker": "HIGHNY-22DEC23-B53.5",
              "exchange_index": 2,
              "is_taker": true,
              "side": "yes",
              "yes_price_dollars": "0.7500",
              "count_fp": "278.00",
              "fee_cost": "0.010000",
              "action": "buy",
              "ts": 1671899397,
              "ts_ms": 1671899397000,
              "post_position_fp": "500.00",
              "purchased_side": "yes",
              "outcome_side": "yes",
              "book_side": "bid",
              "subaccount": 3
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: fill
    bindings: []
    extensions:
      - id: x-parser-unique-object-id
        value: fill
sendOperations: []
receiveOperations:
  - *ref_2
sendMessages: []
receiveMessages:
  - *ref_3
extensions:
  - id: x-parser-unique-object-id
    value: fill
securitySchemes:
  - id: apiKey
    name: apiKey
    type: apiKey
    description: |
      API key authentication required for WebSocket connections.
      The API key should be provided during the WebSocket handshake.
    in: user
    extensions: []

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.