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

# Your positions

> Your net holdings per market and outcome, with the quantity you can sell right now (total less anything already reserved by a resting sell order). Use this to offer a position for sale; use /account/contracts for the trade history behind it.



## OpenAPI

````yaml /api-reference/openapi/calibri.yaml get /api/v2/atlas/account/positions
openapi: 3.1.0
info:
  title: Calibri API
  version: 1.0.0
  description: >-
    The Calibri API. Discover markets, read live books, place signed orders, and
    manage positions and account data.

    Routed by path prefix to the service that answers it — which is an
    implementation detail, not something a caller has to reason about.
servers:
  - description: Production
    url: https://calibri.io
security: []
tags:
  - name: Health
    description: Service liveness.
    x-displayName: Health
  - name: Events
    description: Discover events and their metadata.
    x-displayName: Events
  - name: Markets
    description: List markets and load market detail for trading.
    x-displayName: Markets
  - name: Series
    description: Recurring event series.
    x-displayName: Series
  - name: Tags
    description: Editorial shelves used to browse the catalogue.
    x-displayName: Tags
  - name: Market Data
    description: Order book, depth, trade tape, tickers, and candles.
    x-displayName: Market Data
  - name: Assets
    description: Underlying asset price history for price-feed markets.
    x-displayName: Assets
  - name: Community
    description: Leaderboard and platform activity.
    x-displayName: Community
  - name: Currencies
    description: Currency registry.
    x-displayName: Currencies
  - name: Trade
    description: Place, list, and cancel orders.
    x-displayName: Trade
  - name: Positions
    description: Your matched contracts.
    x-displayName: Positions
  - name: Wallet
    description: Self-custody Safe, passkey, session keys, and relay.
    x-displayName: Wallet
  - name: Rewards
    description: Maker rebates and referral earnings.
    x-displayName: Rewards
  - name: Account
    description: Balances, ledger, PnL, limits, preferences, and profile.
    x-displayName: Account
  - name: Categories
    description: Categories
    x-displayName: Categories
  - name: Other
    description: Other
    x-displayName: Other
externalDocs:
  description: ''
  url: ''
paths:
  /api/v2/atlas/account/positions:
    get:
      tags:
        - Positions
      summary: Your positions
      description: >-
        Your net holdings per market and outcome, with the quantity you can sell
        right now (total less anything already reserved by a resting sell
        order). Use this to offer a position for sale; use /account/contracts
        for the trade history behind it.
      parameters:
        - description: Positions per page. Defaults to 100, capped at 200.
          example: 100
          in: query
          name: limit
          required: false
          schema:
            default: 100
            maximum: 200
            minimum: 1
            type: integer
        - description: Page number, from 1.
          example: 1
          in: query
          name: page
          required: false
          schema:
            default: 1
            minimum: 1
            type: integer
        - description: >-
            Default true: only holdings with a quantity above zero. Pass `false`
            to include settled and fully-exited holdings, which are kept as zero
            rows for the audit trail.
          example: true
          in: query
          name: open_only
          required: false
          schema:
            default: true
            type: boolean
        - description: Filter to one outcome.
          example: 'yes'
          in: query
          name: outcome
          required: false
          schema:
            enum:
              - 'yes'
              - 'no'
            type: string
        - description: >-
            Filter to several markets at once — comma-separated engine market
            ids, at most 50. Lets an event page read its holdings across all of
            its markets in one call. Combines with the other filters; a
            non-numeric id or a longer list is a 400.
          example: 5871,5872,5873
          in: query
          name: market_ids
          required: false
          schema:
            type: string
        - description: Filter to one market, by the engine's market id.
          example: '5871'
          in: query
          name: market_id
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/PositionEntity'
                type: array
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEntity'
          description: '`market_ids` holds a non-numeric id or more than the cap'
      security:
        - apiKey: []
components:
  schemas:
    PositionEntity:
      properties:
        avg_cost:
          description: Weighted-average price paid for the contracts still held.
          example: '0.61'
          type: string
        cost_basis:
          description: avg_cost × qty — what the holding cost you.
          example: '183'
          type: string
        currency:
          example: usdc
          type: string
        custody:
          description: >-
            Which pool backs it. `self` holdings are real ERC-1155 tokens in
            your Safe; `custodial` are ledger entries. The two never net against
            each other.
          enum:
            - custodial
            - self
          example: self
          type: string
        event_slug:
          description: The parent event's slug — what a portfolio row links to.
          example: btc-updown-5m-1730
          type:
            - string
            - 'null'
        event_title:
          example: Bitcoin Up or Down 5m
          type:
            - string
            - 'null'
        locked_qty:
          description: Contracts reserved by your resting sell orders.
          example: '50'
          type: string
        market_id:
          description: The market this holding is in.
          example: '12'
          type: string
        market_title:
          example: Will BTC close above its open?
          type:
            - string
            - 'null'
        outcome:
          description: The outcome held.
          enum:
            - 'yes'
            - 'no'
          example: 'yes'
          type: string
        outcome_label:
          description: The market's own label for this outcome (e.g. a team name).
          example: 'Yes'
          type: string
        outcome_labels:
          description: The market's labels for its two outcomes, `[yes, no]`.
          example:
            - 'Yes'
            - 'No'
          items:
            type: string
          type: array
        qty:
          description: Contracts held.
          example: '300'
          type: string
        realized_pnl:
          description: >-
            Profit or loss already banked on this holding, from exits and from
            settlement. Excludes the unrealised move on what you still hold.
          example: '3'
          type: string
        sellable_qty:
          description: >-
            Contracts you can offer on a NEW sell order: `qty` less anything
            already reserved by a resting sell. Size a sell against this, not
            `qty`.
          example: '250'
          type: string
        updated_at:
          example: '2026-08-17T12:00:00Z'
          type:
            - string
            - 'null'
      required:
        - market_id
        - market_title
        - event_slug
        - event_title
        - outcome_labels
        - outcome
        - outcome_label
        - custody
        - currency
        - qty
        - sellable_qty
        - locked_qty
        - avg_cost
        - cost_basis
        - realized_pnl
      type: object
    ErrorEntity:
      properties:
        errors:
          description: Match on the code, not the HTTP status or the human text.
          example:
            - account.custody.deposits_disabled
          items:
            type: string
          type: array
      required:
        - errors
      type: object
  securitySchemes:
    apiKey:
      description: >-
        HMAC-signed API key. Send X-Auth-Apikey, X-Auth-Nonce and
        X-Auth-Signature.
      in: header
      name: X-Auth-Apikey
      type: apiKey

````

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