Account Hierarchy
The API uses a four-level hierarchy:api-acme-clearingmember)
Participant Firm: The onboarded legal entity - your organization (e.g., api-acme-participantfirm)
User: A user with specific roles and permissions, such as:
- Trading User - Can place, modify, and cancel orders (scopes:
read:orders,write:orders,read:positions) - Drop Copy User - Read-only access to execution reports (scope:
read:dropcopy) - Other roles as defined during onboarding
Example Structure
- The clearing member is
api-acme-clearingmember - The participant firm is
api-acme-participantfirm - Two users exist with different permissions:
api-acme-tradingcan read/write orders and read positionsapi-acme-dropcopycan only read drop copy reports
Finding Your Participant ID
Your participant ID is the value you send in thex-participant-id header on every
account-scoped request. It has the form firms/<PARTICIPANT_FIRM>/users/<USER>.
You are always given this value — you never discover or construct it. Where it comes
from depends on who the participant is:
If you have lost the value, ask your Polymarket contact rather than reconstructing it. Once
you hold one valid participant ID,
GET /v1/users will return the rest of your firm’s users.
Identity Resolution
Before trading, funding, or reporting, resolve your entitlements using the Accounts API.Get Your Firm Identity
List Users
x-participant-id header, so it cannot be used to
discover your first participant ID. See Finding Your Participant ID
above.
List Trading Accounts
Required Identity Resolution
Multiple Trading Accounts
Can a firm control multiple trading accounts? Yes. Each trading account has independent balances, independent positions, independent risk limits, and separate order flow. Use the appropriate account ID in your API requests to specify which account to trade on.Authentication vs Authorization
Authentication identifies the firm using cryptographic signatures (JWT with private key). Authorization determines which users and trading accounts the firm may act on behalf of. Just because you’re authenticated doesn’t mean you can access all accounts - authorization is checked on each request.Typical Workflow
- Authenticate - Sign a JWT with your private key to get an access token
- Have your participant ID ready - From onboarding, or from KYC approval for an end user. See Finding Your Participant ID. Send it as
x-participant-idon every account-scoped request from here on - Call whoami - Confirm your firm identity and entitlements
- List users - See which users you can manage
- List accounts - See which trading accounts you can access
- Trade/Fund/Report - Use the appropriate account ID in your requests