/api/public/v1/bookmarks/imports/{id}/applybookmarks.apply
Queue an import on up to 500 profiles; each profile applies it through its browser's own bookmarks at its next start. merge adds links not already in the target folder; replace first empties the target (one bookmarks-bar folder, or the whole bar and other bookmarks). Per profile: queued, conflict (its rev changed since your preview; nothing queued) or not_found.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
idpath | string (uuid) | Yes | Bookmark import id |
command_idbody | string (uuid) | Yes | Client-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. |
modebody | "merge" | "replace" | Yes | merge: add links not already there; replace: empty the target first |
scopebody | "folder" | "all" | Yes | folder: everything goes into one bookmarks-bar folder (created if missing); all: the bar and other bookmarks as in the file |
folderbody | string | No | scope=folder: the bookmarks-bar folder name (min length 1, max length 120) |
targetsbody | array<object> | Yes | (min 1 items, max 500 items) |
Examples
curl -X POST "https://browlix.com/api/public/v1/bookmarks/imports/<id>/apply" \
-H "Authorization: Bearer $BROWLIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"command_id":"<uuid>","mode":"merge","scope":"folder","targets":[]}'Response
201 with { data, replayed: false, correlation_id } the first time; 200 with replayed: true when the same command_id and body come again.
| Field | Type | Always present | Description |
|---|---|---|---|
| data | object | Yes | |
| data.results | array<object> | Yes | |
| data.results[].profile_id | string (uuid) | Yes | |
| data.results[].state | "queued" | "conflict" | "not_found" | Yes | |
| data.results[].op_id | string (uuid) | No | |
| data.results[].rev | integer | No | (min -9007199254740991, max 9007199254740991) |
| data.queued | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.conflicts | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.not_found | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| correlation_id | string (uuid) | Yes | |
| replayed | boolean | No | true when this command_id was already applied and the stored receipt came back |
Errors
| Code | HTTP | Retryable |
|---|---|---|
| UNAUTHENTICATED | 401 | No |
| FORBIDDEN | 403 | No |
| RATE_LIMITED | 429 | Yes |
| VALIDATION_FAILED | 422 | No |
| NOT_FOUND | 404 | No |
| CONFLICT | 409 | No |
| OUTCOME_UNKNOWN | 202 | Yes |
| DEPENDENCY_UNAVAILABLE | 503 | Yes |
| UNKNOWN | 500 | No |
