A session is one isolated browser, dedicated to you for its lifetime and destroyed on release. No cookies, profile, or disk state is ever reused between sessions. Base URL: https://api.tilion.dev

Create a session

A successful create returns 201 Created.

Body

All fields are optional, and an empty body gives you an ephemeral, headless browser in the nearest region. Every option is documented in Session configuration.
Keep ttl and idle_timeout tight. A session bills for as long as it exists, and a long idle_timeout will hold a browser open long after your job finished.

Response

connect_url is only ever populated here and on /connect. See Connecting a browser.

Idempotency

Send an Idempotency-Key header to make a retried create safe:
A repeat with the same key returns the original session instead of creating a second one. Idempotency keys are currently supported on session create only.

Errors


Get a session

connect_url is always null here. This is expected. Use /connect to obtain one. The endpoint returns 404 if the session does not exist, is not yours, or has already ended.

List sessions

The endpoint returns an array of the same shape, for your account only. connect_url is null on every entry.

Mint a connect URL

The token expires in 300 seconds and is scoped to this session. Mint one immediately before you attach; do not cache it. The endpoint returns 403 if raw CDP is not enabled for your key, and 409 if the session has no live browser.

Release a session

A successful release returns 204 No Content. The endpoint returns 404 if the session is already gone, which you can safely treat as success. The response is sent as soon as the release is accepted, so a GET immediately afterwards may still briefly show the session. Always release in a finally block. Sessions bill until released.

Drive a session over HTTP

If you only need one navigation, you can skip CDP.
The body takes url only.
Concurrent drive calls on one session are serialised, so a second call waits for the first.

Session states