📖 BrowserIP Docs
🌐 English

API reference

Base URL: https://browserip.com. Auth: POST /api/auth/login first — the server sets a sid cookie; send the cookie with subsequent requests. Or use a Key generated on the dashboard API Keys page: header Authorization: Bearer bip_…, no cookie needed (the Key is shown only once — save it).

Launch POST /api/sessions/

curl -b cookies.txt -X POST https://browserip.com/api/sessions/ \
  -H 'Content-Type: application/json' -d '{}'

Free slot available → 200:

{
  "session": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "status": "ready",
    "region": "default",
    "token": "…",
    "cdp_url": "https://browserip.com/s/123e4567-e89b-12d3-a456-426614174000/…",
    "view_url": "/view/123e4567-e89b-12d3-a456-426614174000/…",
    "created_at": "2026-10-19T00:00:00.000Z",
    "last_activity": "2026-10-19T00:00:00.000Z"
  }
}

No free slot, scaling triggered → 202 {"session": {...}, "queue_position": 1} (poll GET /api/sessions/:id until status becomes ready). Errors: 402 insufficient_credits, 429 too_many_sessions, 503 no_capacity.

Get session GET /api/sessions/:id

{"session": {"id": "123e4567-e89b-12d3-a456-426614174000", "status": "ready", "cdp_url": "https://browserip.com/s/123e4567-e89b-12d3-a456-426614174000/…", …}}

Shut down DELETE /api/sessions/:id

curl -b cookies.txt -X DELETE https://browserip.com/api/sessions/123e4567-e89b-12d3-a456-426614174000
→ {"ok": true}

Check user GET /api/auth/me

{"user": {"id": "u_x", "email": "[email protected]", "hours": 4.5, "credits": 0, "account_type": "personal", "credit_rate_per_hour": null, "is_admin": false, "created_at": "…"}} 

Balance GET /api/billing/balance

Returns the current balance: hours for personal users, credits for enterprise/admin, plus account_type and the enterprise rate credit_rate_per_hour.