Skip to main content
POST/api/public/v1/shares/{id}/revoke

shares.revoke

Withdraw a copy that has not been delivered yet; a half-done import on the recipient side is removed. A delivered copy cannot be recalled or erased.

Capability: share.manageCommand (idempotent)DestructiveMCP tool: shares_revoke
View as Markdown

Parameters

NameTypeRequiredDescription
idpathstring (uuid)YesShare 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.

Examples

curl -X POST "https://browlix.com/api/public/v1/shares/<id>/revoke" \
  -H "Authorization: Bearer $BROWLIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command_id":"<uuid>"}'

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.packageobjectYes
data.package.idstring (uuid)Yes
data.package.state"preparing" | "available" | "importing" | "delivered" | "declined" | "revoked" | "expired" | "failed"Yes
data.package.profile_namestringYes
data.package.os"windows" | "linux"Yes
data.package.source_revisionintegerNoCommitted revision the copy is pinned to (absent for configuration-only copies) (min -9007199254740991, max 9007199254740991)
data.package.categoriesarray<"cookies" | "local_storage" | "indexed_db" | "service_workers" | "extensions" | "bookmarks" | "history" | "open_tabs" | …>YesBrowser data carried beyond the configuration
data.package.recipient_emailstringYes
data.package.messagestringNo
data.package.expires_atstring (date-time)Yes
data.package.created_atstring (date-time)Yes
data.package.delivered_atstring (date-time)No
data.package.ended_atstring (date-time)No
data.package.failureobjectNo
data.package.failure.codestringYes
data.package.failure.messagestringNo
data.package.progressobjectNo
data.package.progress.waiting_for_machinebooleanYes
data.package.progress.phasestringNo
data.package.progress.pctintegerNo(min -9007199254740991, max 9007199254740991)
data.package.progress.attemptsintegerYes(min -9007199254740991, max 9007199254740991)
data.package.profile_idstring (uuid)NoAbsent once the source profile was deleted
data.package.created_by_emailstringNo
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