scope query parameter. The user sees a plain-language description of each permission on the consent screen and can approve or deny the request.
Bkmark enforces scopes on every API request. If your token doesn’t carry the right scope for an endpoint, the API returns 403 Forbidden — even if the token is otherwise valid. This means you must request all the scopes you need upfront; you cannot silently expand them later without sending the user through the authorization flow again.
Request only the scopes your integration genuinely needs. Requesting excessive permissions makes the consent screen more alarming to users, reduces the likelihood they’ll approve, and increases your blast radius if a token is ever compromised. Follow the principle of least privilege.
Available Scopes
search:read is a subset of what bookmarks:read already covers — GET /search is accessible with either scope. Request search:read alone when your integration only needs search and should not be able to enumerate a user’s full bookmark list.Scope Details
bookmarks:read
Grants read access to a user’s bookmarks, including the ability to export them and query trash.
Endpoints:
endpoint
List all bookmarks. Supports filtering by
since, updatedSince, tags, and groups.endpoint
Fetch a single bookmark by ID.
endpoint
Export all bookmarks as JSON.
endpoint
List soft-deleted bookmarks pending permanent deletion.
endpoint
Full-text search across bookmark titles, descriptions, and URLs.
bookmarks:write
Grants write access to create, modify, and delete bookmarks, plus bulk operations and import.
bookmarks:write does not imply bookmarks:read. If your app needs to read bookmarks it just created, request both scopes.endpoint
Save a new bookmark.
endpoint
Update a bookmark’s title, description, tags, groups, favorite status, or archived status.
endpoint
Soft-delete a bookmark (moves to trash).
endpoint
Replace all tags on a bookmark.
endpoint
Replace all group assignments for a bookmark.
endpoint
Apply a single action (tag, move, archive, favorite, delete, or export) to up to 500 bookmarks at once.
endpoint
Import bookmarks from a browser HTML export, Pocket, Raindrop, or a Bkmark JSON export.
endpoint
Restore a soft-deleted bookmark from trash.
tags:read
Grants read access to the user’s tag list.
endpoint
List all tags, including name, color, and bookmark count.
tags:write
Grants write access to create, rename, and delete tags.
tags:write does not imply tags:read. Request both if you need to read existing tags before creating new ones.endpoint
Create a new tag.
endpoint
Rename a tag or change its color.
endpoint
Delete a tag (removes it from all bookmarks).
groups:read
Grants read access to the user’s groups (collections of bookmarks).
endpoint
List all groups.
endpoint
Fetch a single group and its metadata.
groups:write
Grants write access to create, rename, and delete groups.
endpoint
Create a new group.
endpoint
Rename a group or change its color.
endpoint
Delete a group (bookmarks inside are not deleted).
search:read
Grants access to full-text search without exposing the full bookmark list. Use this when your integration only needs to let the user find bookmarks by keyword.
endpoint
Full-text search across bookmark titles, descriptions, and URLs.
Recommended Scope Sets
Choose the combination that matches your integration type. Copy the scope string directly into your authorization URL.Read-only
Bookmark manager
Full access
Scope Enforcement
When your application makes an API request:- Bkmark validates the
Authorization: Bearertoken. - Bkmark checks whether the token’s granted scopes include the scope required by the endpoint being called.
- If the required scope is missing, Bkmark returns
403 Forbiddenwith an error body indicating which scope is needed.
bookmarks:read but your app later needs bookmarks:write, you must send the user through the authorization flow again with the full set of scopes you need. You cannot silently add scopes to an existing token.