Skip to main content

Overview

As a builder, you manage end-users programmatically through the Builder API. Each end-user gets their own Parsec customer ID and API key. You control everything using your builder API key. There are three credential strategies for your end-users:
StrategyWhen to useOnboard?
ManagedUser doesn’t have a wallet — Parsec creates onemode: "managed"
SelfUser has exchange API keys — Parsec stores themmode: "self"
Per-requestUser manages their own keys — nothing storedNo onboard, pass X-Exchange-Credentials per-request

List users

GET /api/v1/builder/users

Parameters

limit
number
default:"50"
Items per page (1–100).
cursor
string
Pagination cursor from next_cursor.

Response

users
BuilderUserResponse[]
Array of user objects (same shape as the create user response).
next_cursor
string | null
Pass as cursor to fetch the next page. Omitted on the last page.
count
number
Number of items in this response.
curl "https://api.parsecapi.com/api/v1/builder/users?limit=20" \
  -H "X-API-Key: pk_live_YOUR_BUILDER_KEY"
{
  "users": [
    {
      "customer_id": "a1b2c3d4-...",
      "external_id": "user_001",
      "api_key": "pk_live_abc123...",
      "tier": "free",
      "qps_limit": 10,
      "linked_exchanges": ["polymarket"],
      "wallet": {
        "eoa_address": "0x1234...",
        "privy_wallet_id": "wallet_abc123",
        "wallet_type": "eoa"
      },
      "fee_escrow_enabled": false
    }
  ],
  "next_cursor": "eyJidWlsZGVyX2V4dGVybmFsX2lkIjoiMDAyIn0=",
  "count": 1
}

Get user

GET /api/v1/builder/users/:customer_id Returns the same response shape as the create endpoint.
curl "https://api.parsecapi.com/api/v1/builder/users/CUSTOMER_ID" \
  -H "X-API-Key: pk_live_YOUR_BUILDER_KEY"

Update user

PATCH /api/v1/builder/users/:customer_id

Parameters

qps_limit
number
New per-user rate limit (must be >= 1).
Returns the updated user (same shape as the create user response).
curl -X PATCH "https://api.parsecapi.com/api/v1/builder/users/CUSTOMER_ID" \
  -H "X-API-Key: pk_live_YOUR_BUILDER_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "qps_limit": 20 }'

Deactivate user

DELETE /api/v1/builder/users/:customer_id Deactivates all wallets, credentials, and session signers. Not reversible — the user will need to be re-onboarded to trade again. Returns 204 No Content.
curl -X DELETE "https://api.parsecapi.com/api/v1/builder/users/CUSTOMER_ID" \
  -H "X-API-Key: pk_live_YOUR_BUILDER_KEY"

QPS pool

GET /api/v1/builder/pool Monitor your QPS allocation across end-users.

Response

qps_pool
number
Total builder QPS pool (default: 500).
end_user_count
number
Number of end-users.
total_allocated_qps
number
Sum of all end-user qps_limit values.
curl "https://api.parsecapi.com/api/v1/builder/pool" \
  -H "X-API-Key: pk_live_YOUR_BUILDER_KEY"
{
  "qps_pool": 500,
  "end_user_count": 12,
  "total_allocated_qps": 120
}

Per-request credentials

For users who don’t want credentials stored, skip onboarding and pass exchange credentials per-request via the X-Exchange-Credentials header. See the full per-request credentials guide for credential shapes, supported endpoints, and SDK examples.
curl -X POST "https://api.parsecapi.com/api/v1/builder/users" \
  -H "X-API-Key: pk_live_YOUR_BUILDER_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "external_id": "user_005" }'

What’s next?