Skip to main content
POST/api/public/v1/profiles/{id}/accept-egress-change

profiles.accept_egress_change

profiles.accept_egress_change — Accept a changed exit location the guard measured (egress.pending): it becomes the new baseline and launches resume; the time zone moves only with timezone=follow.

Capability: profile.editCommand (idempotent)MCP tool: profiles_accept_egress_change
View as Markdown

Parameters

NameTypeRequiredDescription
idpathstring (uuid)YesProfile id
command_idbodystring (uuid)YesClient-generated UUID for this command. Send the same id (and body) again to get the stored receipt instead of a second change; a different body under the same id is CONFLICT.
expected_revisionbodyintegerYesThe revision you last read; a newer revision on the server is CONFLICT (min 1, max 9007199254740991)
timezonebody"keep" | "follow"Yeskeep: the profile's time zone stays as it is; follow: a custom time zone moves to the new exit's zone (a zone that follows the proxy needs no change)

Examples

curl -X POST "https://browlix.com/api/public/v1/profiles/<id>/accept-egress-change" \
  -H "Authorization: Bearer $BROWLIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command_id":"<uuid>","expected_revision":1,"timezone":"keep"}'

Response

201 with { data, replayed: false, correlation_id } the first time; 200 with replayed: true when the same command_id and body come again.

FieldTypeAlways presentDescription
dataobjectYes
data.profile_idstring (uuid)Yes
data.revisionintegerYes(min -9007199254740991, max 9007199254740991)
data.changedarray<string>Yesegress_baseline, plus config when the time zone followed
data.baselineobjectYes
data.baseline.ipstringNo
data.baseline.countrystringNoISO 3166-1 alpha-2
data.baseline.timezonestringNoIANA zone of the exit, when the worker could tell
data.baseline.sourcestringNofirst_launch | accepted
data.baseline.set_atstring (date-time)No
data.baseline.observed_atstring (date-time)No
correlation_idstring (uuid)Yes
replayedbooleanNotrue when this command_id was already applied and the stored receipt came back

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

Errors

CodeHTTPRetryable
UNAUTHENTICATED401No
FORBIDDEN403No
RATE_LIMITED429Yes
VALIDATION_FAILED422No
NOT_FOUND404No
CONFLICT409No
OUTCOME_UNKNOWN202Yes
DEPENDENCY_UNAVAILABLE503Yes
UNKNOWN500No

Every error code and when to retry

All operations

Using an AI agent?

Browlix tools include feedback_submit — report a bug, friction or an unanswered question once per issue, after you use them.

How feedback works