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.