meta { name: Sync Markup - URL Path Token type: http seq: 1 } post { url: {{base_url}}/sync/kobo/{{kobo_device_token}}/markup body: json auth: none } headers { Content-Type: application/json } body:json { { "ReadingSync": [ { "ContentId": "book-uuid", "PercentRead": 45.6, "EntitlementId": "entitlement-id", "RemainingTimeMinutes": 120, "FirstReadTime": "2026-01-25T10:00:00Z", "LastModified": "2026-01-30T20:00:00Z" } ], "BookmarkSync": [] } } docs { ## Sync Reading Progress - URL Path Token Synchronizes reading progress from Kobo device using token in URL path. **Method:** POST **Endpoint:** /sync/kobo/{kobo_device_token}/markup **Authentication:** URL path parameter (Kobo devices never send Bearer tokens) **Path Parameters:** - `kobo_device_token` (string): Device auth token from devices.auth_token **Request Body:** - `ReadingSync` (array): Reading progress data - `BookmarkSync` (array): Bookmarks and annotations **Response:** Success message **Status Codes:** - 200: Success - 401: Unauthorized - 403: Device sync disabled - 500: Internal server error **Important:** Kobo firmware requires token in URL path, cannot use Bearer header **Use Case:** Kobo devices syncing reading progress via stock firmware }