---
title: "Read bookmark changes since a cursor"
method: GET
path: "/browser-bookmarks/sync"
tags: ["browser-bookmarks"]
---

# Read bookmark changes since a cursor

`GET /browser-bookmarks/sync`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/browser-bookmarks/sync`
- Auth: HTTP bearer

Without a cursor: every live item, paged. With one: every item created, changed or deleted since it, deletions included (deleted_at set). Page while has_more is true, then store next_cursor for the next sync.

## Query parameters

- `cursor` string
- `limit` number

## Response `200`

- BrowserBookmarkSyncResponseDto
  - `items` BrowserBookmarkResponseDto[], required: Oldest change first
    - `id` string, uuid, required
    - `parent_id` string, uuid, nullable, required: Null for a top-level item
    - `kind` 'bookmark' | 'folder', required
    - `client_id` string, nullable, required
    - `title` string, required
    - `url` string, nullable, required: Null exactly when kind is folder
    - `position` number, required: Sort key among siblings; order by position, then id
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `deleted_at` string, date-time, nullable, required: Set on a deleted item; only the sync feed returns deleted items
  - `next_cursor` string, required: Pass as `cursor` on the next request; store it once has_more is false
  - `has_more` boolean, required: True when another page is waiting; request it straight away with next_cursor

## Other responses

- `400`: Body is { code, message }; code is one of: browser_bookmark_invalid_cursor

---

[API](https://skmtc.dev/focusbear/apis/focusbear-api.md) - [All operations](https://skmtc.dev/focusbear/apis/focusbear-api/llms.txt) - [OpenAPI document](https://skmtc.dev/focusbear/apis/focusbear-api/revisions/3a83a3b9a811?raw)
