Coinbase Portfolios API

Create and manage portfolios for organizing trading activity and asset allocation.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/coinbase-portfolios-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

coinbase-portfolios-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Coinbase Advanced Trade Accounts Portfolios API
  description: The Coinbase Advanced Trade API provides programmatic access to advanced trading features on the Coinbase platform. Developers can automate market, limit, and stop-limit orders, manage portfolios, retrieve real-time and historical market data, and monitor fees. The REST API is available at api.coinbase.com/api/v3/brokerage and supports authenticated access using API keys with HMAC SHA-256 signatures. Public market data endpoints do not require authentication.
  version: '3.0'
  contact:
    name: Coinbase Developer Support
    url: https://help.coinbase.com
  termsOfService: https://www.coinbase.com/legal/user-agreement
servers:
- url: https://api.coinbase.com/api/v3/brokerage
  description: Production Server
security:
- apiKeyAuth: []
tags:
- name: Portfolios
  description: Create and manage portfolios for organizing trading activity and asset allocation.
paths:
  /portfolios:
    get:
      operationId: listPortfolios
      summary: List portfolios
      description: Retrieves a list of all portfolios associated with the authenticated user. Returns portfolio details including name, UUID, and type.
      tags:
      - Portfolios
      parameters:
      - name: portfolio_type
        in: query
        description: Filter by portfolio type
        schema:
          type: string
          enum:
          - DEFAULT
          - CONSUMER
          - INTX
      responses:
        '200':
          description: Successfully retrieved list of portfolios
          content:
            application/json:
              schema:
                type: object
                properties:
                  portfolios:
                    type: array
                    items:
                      $ref: '#/components/schemas/Portfolio'
        '401':
          description: Unauthorized - Invalid or missing authentication
    post:
      operationId: createPortfolio
      summary: Create portfolio
      description: Creates a new portfolio for the authenticated user. Each portfolio provides an isolated trading environment with its own balances.
      tags:
      - Portfolios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Name for the new portfolio
      responses:
        '200':
          description: Portfolio successfully created
          content:
            application/json:
              schema:
                type: object
                properties:
                  portfolio:
                    $ref: '#/components/schemas/Portfolio'
        '400':
          description: Bad request - Invalid portfolio parameters
        '401':
          description: Unauthorized - Invalid or missing authentication
  /portfolios/{portfolio_id}:
    get:
      operationId: getPortfolio
      summary: Get portfolio breakdown
      description: Retrieves a breakdown of a single portfolio by its ID. Returns detailed information about the portfolio including its balances and positions.
      tags:
      - Portfolios
      parameters:
      - $ref: '#/components/parameters/PortfolioIdParam'
      responses:
        '200':
          description: Successfully retrieved portfolio breakdown
          content:
            application/json:
              schema:
                type: object
                properties:
                  breakdown:
                    $ref: '#/components/schemas/PortfolioBreakdown'
        '401':
          description: Unauthorized - Invalid or missing authentication
        '404':
          description: Portfolio not found
    put:
      operationId: editPortfolio
      summary: Edit portfolio
      description: Updates the name of an existing portfolio. Only the portfolio name can be modified.
      tags:
      - Portfolios
      parameters:
      - $ref: '#/components/parameters/PortfolioIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Updated name for the portfolio
      responses:
        '200':
          description: Portfolio successfully updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  portfolio:
                    $ref: '#/components/schemas/Portfolio'
        '401':
          description: Unauthorized - Invalid or missing authentication
        '404':
          description: Portfolio not found
    delete:
      operationId: deletePortfolio
      summary: Delete portfolio
      description: Deletes a portfolio by its ID. The portfolio must have zero balances before it can be deleted.
      tags:
      - Portfolios
      parameters:
      - $ref: '#/components/parameters/PortfolioIdParam'
      responses:
        '200':
          description: Portfolio successfully deleted
        '401':
          description: Unauthorized - Invalid or missing authentication
        '404':
          description: Portfolio not found
  /portfolios/move_funds:
    post:
      operationId: moveFunds
      summary: Move portfolio funds
      description: Moves funds between portfolios owned by the authenticated user. Both the source and target portfolio must belong to the same user.
      tags:
      - Portfolios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - funds
              - source_portfolio_uuid
              - target_portfolio_uuid
              properties:
                funds:
                  type: object
                  description: Funds to move
                  properties:
                    value:
                      type: string
                      description: Amount to transfer
                    currency:
                      type: string
                      description: Currency of the transfer
                source_portfolio_uuid:
                  type: string
                  description: UUID of the source portfolio
                target_portfolio_uuid:
                  type: string
                  description: UUID of the target portfolio
      responses:
        '200':
          description: Funds successfully moved
        '400':
          description: Bad request - Invalid transfer parameters
        '401':
          description: Unauthorized - Invalid or missing authentication
  /portfolios/{portfolio_id}/commission:
    get:
      operationId: getPortfolioCommission
      summary: Get portfolio commission
      description: Retrieves the commission and fee rate structure for a portfolio.
      tags:
      - Portfolios
      parameters:
      - $ref: '#/components/parameters/PortfolioIdParam_2'
      responses:
        '200':
          description: Successfully retrieved commission details
          content:
            application/json:
              schema:
                type: object
                properties:
                  trading_volume:
                    type: string
                    description: Total trading volume
                  fee_tier:
                    type: object
                    properties:
                      maker_fee_rate:
                        type: string
                        description: Maker fee rate
                      taker_fee_rate:
                        type: string
                        description: Taker fee rate
components:
  schemas:
    Portfolio:
      type: object
      description: A user portfolio for organizing trading activity
      properties:
        uuid:
          type: string
          format: uuid
          description: Unique identifier for the portfolio
        name:
          type: string
          description: Name of the portfolio
        type:
          type: string
          description: Portfolio type
          enum:
          - DEFAULT
          - CONSUMER
          - INTX
        deleted:
          type: boolean
          description: Whether the portfolio has been deleted
    PortfolioBreakdown:
      type: object
      description: Detailed breakdown of a portfolio
      properties:
        portfolio:
          $ref: '#/components/schemas/Portfolio'
        portfolio_balances:
          type: object
          description: Aggregated balance information
          properties:
            total_balance:
              $ref: '#/components/schemas/Balance'
            total_futures_balance:
              $ref: '#/components/schemas/Balance'
            total_cash_equivalent_balance:
              $ref: '#/components/schemas/Balance'
        spot_positions:
          type: array
          description: Spot positions in the portfolio
          items:
            type: object
            properties:
              asset:
                type: string
                description: Asset symbol
              account_uuid:
                type: string
                description: Account UUID
              total_balance_fiat:
                type: number
                description: Total balance in fiat
              total_balance_crypto:
                type: number
                description: Total balance in crypto
    Balance:
      type: object
      description: A monetary value with currency
      properties:
        value:
          type: string
          description: Amount as a string to preserve precision
        currency:
          type: string
          description: Currency code
  parameters:
    PortfolioIdParam_2:
      name: portfolio_id
      in: path
      required: true
      description: Portfolio identifier
      schema:
        type: string
    PortfolioIdParam:
      name: portfolio_id
      in: path
      required: true
      description: Unique identifier for the portfolio
      schema:
        type: string
        format: uuid
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: CB-ACCESS-KEY
      description: Coinbase API key authentication using HMAC SHA-256 signatures. Requires CB-ACCESS-KEY, CB-ACCESS-SIGN, and CB-ACCESS-TIMESTAMP headers.
externalDocs:
  description: Coinbase Advanced Trade API Documentation
  url: https://docs.cdp.coinbase.com/coinbase-app/advanced-trade-apis/rest-api