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

# list_positions

> List Coinbase positions as canonical Position models. Coinbase positions are derived from portfolio breakdown and flattened across spot/perp/futures positions.

## coinbase\_list\_positions

```python
import os
from opentools import trading

tools = trading.coinbase(
    api_key=os.environ["COINBASE_KEY"],
    api_secret=os.environ["COINBASE_SECRET"],
    model="openai",
    minimal=True,
    include=["coinbase_list_positions"],
)
```

**Request**

* Optional `portfolio_type`: choose which Coinbase portfolio to derive positions from.
* Optional `currency`: valuation currency (e.g. `USD`).

**Options**

* `include` / `exclude`: filter which tools are exposed (use full names like `coinbase_list_positions`).
* `minimal`: omit `provider` and `provider_fields` when `True`.


## OpenAPI

````yaml api-reference/openapi.json get /tools/coinbase/list_positions
openapi: 3.1.0
info:
  title: OpenTools Trading Tools
  version: 0.1.0
  description: >-
    Reference for OpenTools trading tool calls. These are SDK tools, documented
    as virtual endpoints for clarity.
servers: []
security: []
tags:
  - name: Alpaca
    description: >-
      Read-only account + assets + clock + orders + portfolio history +
      positions.
  - name: Coinbase
    description: >-
      Accounts + portfolios + portfolio breakdown + positions (derived) +
      brokerage products + orders (if available).
paths:
  /tools/coinbase/list_positions:
    get:
      tags:
        - Coinbase
      summary: list_positions
      description: >-
        List Coinbase positions as canonical Position models. Coinbase positions
        are derived from portfolio breakdown and flattened across
        spot/perp/futures positions.
      operationId: coinbase_list_positions
      requestBody:
        required: false
        description: This is a request to obtain information. Your API keys are required.
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                portfolio_type:
                  type: string
                  description: >-
                    Optional portfolio type selector (e.g. 'DEFAULT',
                    'UNDEFINED'). If omitted, DEFAULT is tried first.
                currency:
                  type: string
                  description: >-
                    Optional currency code (e.g. 'USD') used for valuation
                    fields.
            examples:
              default:
                value:
                  currency: USD
              by_type:
                value:
                  portfolio_type: DEFAULT
                  currency: USD
      responses:
        '200':
          description: List of positions (OpenTools trading schema).
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: false
                  description: ''
                  properties:
                    provider:
                      type:
                        - string
                        - 'null'
                      description: Trading provider identifier. Omitted when minimal=True.
                    symbol:
                      type: string
                      description: Instrument symbol (e.g. "AAPL", "BTCUSD").
                    qty:
                      type:
                        - string
                        - 'null'
                      description: Position size.
                    avg_entry_price:
                      type:
                        - string
                        - 'null'
                      description: Average entry price.
                    current_price:
                      type:
                        - string
                        - 'null'
                      description: Latest price used for valuation.
                    market_value:
                      type:
                        - string
                        - 'null'
                      description: Current position market value.
                    unrealized_pl:
                      type:
                        - string
                        - 'null'
                      description: Unrealized profit/loss.
                    unrealized_plpc:
                      type:
                        - string
                        - 'null'
                      description: Unrealized profit/loss percent (factor of 1, not 100).
                    side:
                      type:
                        - string
                        - 'null'
                      enum:
                        - long
                        - short
                      description: Position direction.
                    provider_fields:
                      type: object
                      additionalProperties: true
                      description: >-
                        Extra provider-specific fields (omitted when
                        minimal=True).
        '401':
          description: Unauthorized (missing/invalid credentials).
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  message:
                    type: string
                  domain:
                    type: string
                  provider:
                    type: string
                  details: {}
                required:
                  - message
        '429':
          description: Rate limited by provider or transport.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  message:
                    type: string
                  domain:
                    type: string
                  provider:
                    type: string
                  details: {}
                required:
                  - message
      x-codeSamples:
        - lang: python
          label: Python
          source: |
            import os
            from opentools import trading

            tools = trading.coinbase(
                api_key=os.environ["COINBASE_KEY"],
                api_secret=os.environ["COINBASE_SECRET"],
                model="openai",
                minimal=True,
                include=["coinbase_list_positions"],
            )

````