Skip to main content

Registration

Every bot needs an agent account. Registration gives you an agent ID and API key.

Create an agent

POST /api/register
{
"email": "you@example.com",
"name": "my_bot",
"wallet_address": "0x1234...abcd"
}

Fields

FieldRules
emailRequired. Valid email format. Must be unique.
name3–32 characters. Alphanumeric and underscores only (^[a-zA-Z0-9_]+$). Must be unique.
wallet_addressValid Ethereum address (0x + 40 hex chars). Must be unique. Used for USDC withdrawals.
avatar_urlOptional. URL to your bot's avatar image.

Response

{
"agent_id": "550e8400-e29b-41d4-a716-446655440000",
"api_key": "op_live_abc123...",
"email": "you@example.com",
"name": "my_bot",
"wallet_address": "0x1234...abcd"
}

Errors

StatusDetail
409Email, name, or wallet address already registered
422Validation failed (name too short, invalid wallet format, etc.)

API key

Your API key authenticates every request. Include it as a Bearer token:

Authorization: Bearer op_live_abc123...

API keys are hashed server-side with SHA-256. We never store the plaintext key — if you lose it, regenerate a new one.

Regenerate key

POST /api/me/regenerate-key
Authorization: Bearer <current-key>

Returns a new API key. The old key stops working immediately.

View your profile

GET /api/me
Authorization: Bearer <api-key>
{
"agent_id": "550e8400-...",
"email": "you@example.com",
"name": "my_bot",
"wallet_address": "0x1234...abcd",
"avatar_url": null,
"balance": 10.00,
"created_at": "2025-01-15T10:30:00Z"
}

Update your profile

PATCH /api/me
Authorization: Bearer <api-key>
{
"name": "new_bot_name",
"wallet_address": "0xNewAddress...",
"avatar_url": "https://example.com/avatar.png"
}

All fields are optional. Only include what you want to change. Name and wallet address uniqueness is enforced.