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

# Get fill history

> Returns your own fills, newest first; the counterparty is never included. Requires an active API key.



## OpenAPI

````yaml /api-reference/derivatives-predictions-api/rest-api/cpm-spec.json get /api/fills
openapi: 3.0.3
info:
  title: CPM Public REST API
  version: 0.1.0
servers:
  - url: https://api.example.com
    variables: {}
security:
  - auth_api_key: []
  - auth_timestamp: []
  - auth_passphrase: []
  - auth_signature: []
paths:
  /api/fills:
    get:
      tags:
        - Account
      summary: Get fill history
      description: >-
        Returns your own fills, newest first; the counterparty is never
        included. Requires an active API key.
      operationId: getFills
      parameters:
        - name: instrument_id
          in: query
          description: >-
            Filter by instrument ID. May appear only once; a repeat returns 400
            INVALID_FIELD.
          required: false
          deprecated: false
          allowEmptyValue: false
          schema:
            type: string
        - name: order_id
          in: query
          description: >-
            Filter by order ID, as a positive decimal string up to
            9223372036854775807. Completed orders match too; only your side of
            the trade is returned. May appear only once; a repeat returns 400
            INVALID_FIELD.
          required: false
          deprecated: false
          allowEmptyValue: false
          schema:
            type: string
        - name: sub_account
          in: query
          description: >-
            Filter by sub-account. May appear only once; a repeat returns 400
            INVALID_FIELD.
          required: false
          deprecated: false
          allowEmptyValue: false
          schema:
            type: string
        - name: limit
          in: query
          description: >-
            Maximum number of trades per page. Default 100; must be 1 to 500,
            otherwise 400. Pages count trades, so both sides of a self-match
            stay on one page and a page can hold more fills than limit. May
            appear only once; a repeat returns 400 INVALID_FIELD.
          required: false
          deprecated: false
          allowEmptyValue: false
          schema:
            type: string
        - name: cursor
          in: query
          description: >-
            Opaque cursor from the previous page's cursor field. Omit on the
            first request. May appear only once; a repeat returns 400
            INVALID_FIELD.
          required: false
          deprecated: false
          allowEmptyValue: false
          schema:
            type: string
      responses:
        '200':
          description: Fill history page
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FillHistoryResponse'
                  cursor:
                    type: string
      deprecated: false
      security: []
components:
  schemas:
    FillHistoryResponse:
      type: object
      additionalProperties: false
      properties:
        trade_id:
          type: string
          description: Trade id, as a canonical decimal string.
          example: '798471892349'
        order_id:
          type: string
          description: >-
            Id of your order on this side of the trade, as a canonical decimal
            string.
          example: '698471892348'
        instrument_id:
          type: string
          description: Instrument id, as a canonical decimal string.
          example: '598471892347'
        ticker:
          type: string
          description: Instrument ticker.
          example: NFL-GAMEWINNER-26NOV28LARSF-LAR
        side:
          type: string
          description: >-
            Your side of the trade as booked: BUY or SELL of the YES contract.
            NO-side orders appear as their YES equivalent.
          example: BUY
        role:
          type: string
          description: TAKER if your order took liquidity, MAKER if it was resting.
          example: TAKER
        price:
          type: string
          description: Trade price per YES contract in USDC, as a decimal string.
          example: '0.590000'
        quantity:
          type: string
          description: Filled quantity in contracts, as a decimal string.
          example: '10.00'
        fee:
          type: string
          description: >-
            Your fee for this fill in USDC, as a decimal string. A negative
            value is a rebate.
          example: '0.170000'
        sub_account:
          type: string
          description: Sub-account of your order.
          example: fund-a
        timestamp:
          type: string
          description: >-
            Trade time as an ISO-8601 UTC string, for example
            2026-07-29T00:00:00Z.
          example: '2026-11-27T17:25:45.678Z'
  securitySchemes:
    auth_api_key:
      name: CB-ACCESS-KEY
      description: The API key string for the request
      in: header
      type: apiKey
    auth_timestamp:
      name: CB-ACCESS-TIMESTAMP
      description: The request timestamp (epoch seconds)
      in: header
      type: apiKey
    auth_passphrase:
      name: CB-ACCESS-PASSPHRASE
      description: The passphrase for the API key
      in: header
      type: apiKey
    auth_signature:
      name: CB-ACCESS-SIGN
      description: HMAC SHA-256 signature over TIMESTAMP + METHOD + REQUEST_PATH + BODY
      in: header
      type: apiKey

````