Skip to main content
POST/api/public/v1/sessions/{id}/renew

sessions.renew

Extend your app hold by its ttl_seconds with the generation and holder_ref acquire returned; FENCED (with the reason superseded, detached, expired or session_ended) means acquire again before touching the browser.

Capability: session.startMCP tool: sessions_renew
View as Markdown

Parameters

NameTypeRequiredDescription
idpathstring (uuid)YesSession id
generationbodyintegerYeslease.generation from acquire (min 1, max 9007199254740991)
holder_refbodystringYesYour stable name for this holder (worker, job); renew and detach must send the same value (min length 1, max length 120)

Examples

curl -X POST "https://browlix.com/api/public/v1/sessions/<id>/renew" \
  -H "Authorization: Bearer $BROWLIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"generation":0,"holder_ref":"<holder_ref>"}'

Response

200 with { data, correlation_id }.

FieldTypeAlways presentDescription
dataobjectYes
data.leaseobjectYes
data.lease.session_idstring (uuid)Yes
data.lease.app_idstringYes
data.lease.binding_idstring (uuid) | nullNo
data.lease.holder_refstringYes
data.lease.generationintegerYesSend with renew and detach; an older generation is FENCED (min -9007199254740991, max 9007199254740991)
data.lease.state"active" | "detached" | "lapsed" | "ended"Yes
data.lease.ttl_secondsintegerYes(min -9007199254740991, max 9007199254740991)
data.lease.keep_warm_secondsintegerYes(min -9007199254740991, max 9007199254740991)
data.lease.acquired_atstring (date-time)Yes
data.lease.expires_atstring (date-time)Yes
data.lease.keep_warm_untilstring (date-time)No
data.lease.ended_reasonstringNo
data.lifecycle"queued" | "preflight" | "starting" | "ready" | "quiescing" | "stopping" | "closed" | "failed" | …Yes
correlation_idstring (uuid)Yes

New fields can appear at any time; ignore the ones you do not know.

Errors

CodeHTTPRetryable
UNAUTHENTICATED401No
FORBIDDEN403No
RATE_LIMITED429Yes
VALIDATION_FAILED422No
NOT_FOUND404No
FENCED409No
DEPENDENCY_UNAVAILABLE503Yes
UNKNOWN500No

Every error code and when to retry

All operations