POST /cloud-browsers/launch saves a new profile and starts it, blocking until the browser reaches running state before returning 201. The response includes runtime.connectUrl — open that URL in a browser signed in as the profile owner to access the interactive session. The saved profile persists after you stop the browser and can be restarted, queried, or deleted just like any manually created profile.
Authentication
Include one of the following on every request:Request Body
The body must be a single JSON object of at most 1 MiB. Unknown top-level fields — includingcountryCode, source, and browserSettings — are rejected with 400.
object
required
Custom proxy configuration. Required on every request regardless of authentication method. No saved proxy, managed region, or previous run’s proxy can replace this field.Supply either the
server form or the split protocol + host + port form:server— full URL:http://proxy.example.com:8080orsocks5://proxy.example.com:1080. Must include an explicit port (1–65535). Must not contain embedded credentials, path, query, or fragment. Cannot be combined withhost.protocol—httporsocks5.host— proxy hostname.port— integer or numeric string from 1 to 65535.
username and password for an unauthenticated proxy, or supply both as non-empty strings. A proxy failure must never fall back to a direct connection.array
HTTP(S) URLs to open as tabs when the browser starts. Defaults to
[] (no tabs injected). Up to 8 entries; each URL must be at most 16,384 bytes without embedded credentials, control characters, or surrounding whitespace. Each entry is either a URL string or an object { url, active? }. Set active: true on at most one tab to make it the active tab; the first tab becomes active when none is selected.array
Cookies to inject before the browser opens. Defaults to
[]. Up to 10,000 entries within the 1 MiB request limit. Required fields per entry: name, domain (non-empty strings); value defaults to an empty string. Optional fields: path (defaults to /), secure, httpOnly, session (booleans), expires (Unix seconds), sameSite (Strict | Lax | None). Expired entries are filtered; unknown fields and invalid types are rejected.object
Browser fingerprint settings for this session. Defaults:
webRtc=forward; all other signals (webGl, webGpu, webGlImage, canvas, audioContext, clientRects, speechVoices, fonts, hardware, doNotTrack) default to random. Partial input fills remaining defaults. Optional hardwareConcurrency and deviceMemory accept integers 1–64; the server generates the runtime seed.string (UUID)
Required when authenticating with a session cookie or
Authorization: Bearer. Selects which of your active API keys to use for billing. When authenticating with x-api-key directly, this field is optional — if supplied, it must match the key used in the header.Responses
201 — Browser Running
Returned only after the browser reachesrunning state. The Location response header points to GET /cloud-browsers/{id} for subsequent queries.
boolean
Always
true on success.string (UUID)
Persistent profile identifier. Store this immediately — you need it to stop, query, or delete the browser.
string
Always
"launch" for profiles created via this endpoint.boolean
Always
false. The profile is retained after the browser stops.object
Runtime state at the moment the response is sent.
400 — Bad Request
PROXY_REQUIRED, INVALID_PROXY, INVALID_TABS, INVALID_COOKIES, or INVALID_FINGERPRINT_SETTINGS. Explicit null, unknown fields, invalid JSON, and incorrect types are all rejected before any profile is created.
401 — Unauthenticated
Authentication is missing, invalid, or expired.402 — Payment Required
PAID_PLAN_REQUIRED or INSUFFICIENT_CREDITS. No profile is created.
403 — Forbidden
The suppliedapiKeyId belongs to another user or does not match the authenticated key. No profile is created.
409 — Conflict
Either the saved-profile allowance is full (Cloud Browser limit reached) or the running allowance is full or zero (CLOUD_BROWSER_CONCURRENCY_LIMIT). When a profile was created before the conflict was detected, the response includes id, source: "launch", deleteOnStop: false, deleted: false, and the actual runtime status. The profile remains saved and counts toward your allowance.
502 / 503 / 504 / 500 — Runtime or Server Error
Errors that occur after profile creation includeid, runtime, and Location in the response body. Cleanup may leave the session in stopping state, which still reserves a running slot until confirmed stopped.
Request Example
cURL