Sync the inbox
const url = 'https://api.pocketbell.dev/v1/messages?limit=100';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.pocketbell.dev/v1/messages?limit=100' \ --header 'Authorization: Bearer <token>'Every message that changed since the cursor: new ones, and ones read, acknowledged or deleted on another device. Start with no cursor; keep next_cursor for next time.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”The next_cursor from the last page.
Responses
Section titled “Responses”A page of changes.
object
In the order they changed, oldest change first.
object
object
The whole text, even when the push carried a shortened one.
The message uses markdown.
object
The name of the device it was acknowledged on, when known.
Canceled by the sender: no longer waiting for acknowledgment or an answer.
A question’s answers, as buttons; empty for any other notification.
A question stops waiting at this time; a Critical notification stops repeating.
Out of the inbox. Without replaced_by, deleted: remove it; its text is empty.
Replaced by this newer message, with the same replace key: no longer in the inbox on its own, but kept, text and all, as an earlier update of that message.
Send as since next time, to get only what changed after this page.
More changes are waiting: ask again at once with since set to next_cursor.
Example
{ "messages": [ { "id": "msg_01jz9k6q8r3tfv0x2m4n5p7s8a", "priority": "silent", "created_at": "2026-09-27T21:00:41.750Z" } ]}The request was invalid.
object
object
Which fields were wrong, for invalid_request.
object
Example
{ "error": { "code": "invalid_request" }}Missing or ended session.
object
object
Which fields were wrong, for invalid_request.
object
Example
{ "error": { "code": "invalid_request" }}