Terminology
Some API responses call a key with cross portfolio access a Managed key. The Exchange web interface always uses Cross Portfolio Access. They mean the same thing.
How it works
Isolation off (default)
Order entry, FIX, and WebSocket already limit each key to its own portfolio. REST access depends on the endpoint. Some endpoints return account-wide results, while others use the portfolio the API key was created in (its bound portfolio), even if you supply anotherprofile_id. A key with cross portfolio access retains the same behavior when isolation is on.
For orders, supplying a
user_id that matches the authenticated user can widen the list across portfolios when isolation is off or the key has cross portfolio access. This is separate from selecting a portfolio with profile_id. Isolated portfolio-scoped keys cannot widen the list this way.
Isolation on
- Portfolio-scoped keys are limited to their own portfolio. Get profiles returns one portfolio, and
GET /accounts/allreturns only that portfolio’s accounts. - Keys with cross portfolio access retain the endpoint-specific behavior above, including the existing restrictions on
profile_idselection. - Order entry, FIX, and WebSocket don’t change.
- Web sign-in doesn’t change. Isolation applies to API keys only.
- List requests for orders, transfers, conversions, and reports can return
200 OKwith the key’s own portfolio data even when you supply anotherprofile_id. The supplied selector does not change the portfolio used. Isolated report lists exclude reports without a matching profile. - A ledger request for an account in another portfolio returns
404 Not Found, including for keys with cross portfolio access. - Account-level endpoints that isolation blocks, such as
GET /payment-methodsandGET /fees, return403 Forbiddenfor portfolio-scoped keys.
Example
An account has three portfolios: Default, Client A, and Client B. Isolation is on. Each client has its own portfolio-scoped key. The operations team has a key in Default with cross portfolio access. Requests have the required permissions and valid parameters.Enable or disable portfolio isolation
- Sign in to Coinbase Exchange.
- Open your profile menu and select Settings.
- Select Security.
- Turn on Portfolio isolation.
- In the Enable portfolio isolation? dialog, under Keep Cross Portfolio Access, select the keys that need it. Search by name, key, or portfolio, or click Select all. Click Clear to deselect every key.
- Click Continue and confirm with 2-step verification.
profile_id.
Create a key with cross portfolio access
While isolation is on, you can set cross portfolio access when you create a key. New keys are portfolio-scoped unless you select it. To set it on an existing key, use the enablement dialog described in Enable or disable portfolio isolation.- Sign in to Coinbase Exchange.
- Select API in the left navigation.
- Click New API Key.
- Under Permissions, select Cross Portfolio Access along with any View, Trade, Transfer, or Manage permissions the key needs.
- Create the key and save the key, secret, and passphrase.
Cross portfolio access preserves existing endpoint-specific access when isolation is on. View, Transfer, Trade, and Manage control what a key can do. Cross portfolio access does not grant these permissions: a key with View only cannot place or cancel orders. See API Key Permissions.
Recommendations
- Give each client, desk, or strategy its own portfolio and a portfolio-scoped key.
- Use a key created in each target portfolio for portfolio-specific reconciliation and order cancellation; do not rely on
profile_idto switch a key’s portfolio. - Grant cross portfolio access only to operations, treasury, or reporting keys.
- Review keys with cross portfolio access regularly and delete ones no longer needed.
- Delete a client’s or team member’s keys when they leave.
What to read next
- Account Structure: how profiles, accounts, and API keys relate.
- REST API Authentication: permissions and request signing.
- Get profiles: check which portfolios a key can see.