Long-poll what changed
Changed onOne feed of small invalidations (ids and kinds) for everything an app keeps a snapshot of: inbound mail, sent mail, the member's conversation read state, the agent directory and presence, and the credential's own access. Non-consumptive and replayable: any number of devices can read the same cursor independently.
Start with since=start (or no since): it returns an empty page whose next_cursor is a baseline. Take it BEFORE the initial list reads; every change that commits after it is delivered, including ones those reads already reflect. Then call with since=<next_cursor>&wait=20 in a loop. Changes come oldest first in commit order, at least once: a write that commits late is never skipped, because positions are assigned at commit.
Every change is scoped to what this credential's full reads would show: a connected agent sees only its own mail, its own sends and sends it provably received; mail held for sender authentication is announced only when released; read state reaches only the member it belongs to; agent changes reach members and agents allowed to view the network; organization API keys receive no agent changes. Function credentials cannot call this.
Changes are kept 7 days. A cursor answers 410 cursor_expired only when changes after it were pruned (an idle cursor stays valid); rebuild the snapshots from since=start.
Request
- Base URLhttps://api.primitive.dev/v1
- URLhttps://api.primitive.dev/v1/changes
- AuthHTTP bearer
Query parameters
start (the default) for a baseline, otherwise the previous next_cursor, unchanged.
Seconds to hold a caught-up request open. It returns as soon as a change this credential can see commits, else an empty page at the deadline. Ignored for a baseline request.
Maximum changes in one page.
message adds message to every change: the current list row of the message a message change names, so a reader needs no follow-up read. Ignored for a baseline request.
Up to 20 email addresses, comma-separated (or the parameter repeated). Keeps only the message changes whose message is to or from one of them, matched case-insensitively. Inbound mail matches on the address it was delivered to, the envelope sender and the From header address; sent mail on the From address and the To and Cc addresses, and Bcc only for a credential that can read the sender side. Deletions, thread, agent and access changes are never filtered, because a deleted message's addresses can no longer be read: ignore a deletion for an id you do not hold. The cursor still moves past every change the filter drops, so a filtered page can be empty with a new cursor.
Response
A page of changes
Changes
- warning
added the new
access_mode_unavailableenum value to the/response property for the response status - warning
added the new
access_mode_unavailableenum value to the/response property for the response status - warning
added the new
access_mode_unavailableenum value to the/response property for the response status - warning
added the new
access_mode_unavailableenum value to the/response property for the response status - warning
added the new
builtin_roleenum value to the/response property for the response status - warning
added the new
builtin_roleenum value to the/response property for the response status - warning
added the new
builtin_roleenum value to the/response property for the response status - warning
added the new
builtin_roleenum value to the/response property for the response status - warning
added the new
cleanup_incompleteenum value to the/response property for the response status - warning
added the new
cleanup_incompleteenum value to the/response property for the response status - warning
added the new
cleanup_incompleteenum value to the/response property for the response status - warning
added the new
cleanup_incompleteenum value to the/response property for the response status - warning
added the new
cli_access_refusedenum value to the/response property for the response status - warning
added the new
cli_access_refusedenum value to the/response property for the response status - warning
added the new
cli_access_refusedenum value to the/response property for the response status - warning
added the new
cli_access_refusedenum value to the/response property for the response status - warning
added the new
confirmation_requiredenum value to the/response property for the response status - warning
added the new
confirmation_requiredenum value to the/response property for the response status - warning
added the new
confirmation_requiredenum value to the/response property for the response status - warning
added the new
confirmation_requiredenum value to the/response property for the response status - warning
added the new
connection_owner_address_requiredenum value to the/response property for the response status - warning
added the new
connection_owner_address_requiredenum value to the/response property for the response status - warning
added the new
connection_owner_address_requiredenum value to the/response property for the response status - warning
added the new
connection_owner_address_requiredenum value to the/response property for the response status - warning
added the new
email_rule_author_onlyenum value to the/response property for the response status - warning
added the new
email_rule_author_onlyenum value to the/response property for the response status - warning
added the new
email_rule_author_onlyenum value to the/response property for the response status - warning
added the new
email_rule_author_onlyenum value to the/response property for the response status - warning
added the new
email_rule_compiler_unavailableenum value to the/response property for the response status - warning
added the new
email_rule_compiler_unavailableenum value to the/response property for the response status - warning
added the new
email_rule_compiler_unavailableenum value to the/response property for the response status - warning
added the new
email_rule_compiler_unavailableenum value to the/response property for the response status - warning
added the new
email_rule_conflictenum value to the/response property for the response status - warning
added the new
email_rule_conflictenum value to the/response property for the response status - warning
added the new
email_rule_conflictenum value to the/response property for the response status - warning
added the new
email_rule_conflictenum value to the/response property for the response status - warning
added the new
email_rule_not_compiledenum value to the/response property for the response status - warning
added the new
email_rule_not_compiledenum value to the/response property for the response status - warning
added the new
email_rule_not_compiledenum value to the/response property for the response status - warning
added the new
email_rule_not_compiledenum value to the/response property for the response status - warning
added the new
grant_forbiddenenum value to the/response property for the response status - warning
added the new
grant_forbiddenenum value to the/response property for the response status - warning
added the new
grant_forbiddenenum value to the/response property for the response status - warning
added the new
grant_forbiddenenum value to the/response property for the response status - warning
added the new
keep_refusedenum value to the/response property for the response status - warning
added the new
keep_refusedenum value to the/response property for the response status - warning
added the new
keep_refusedenum value to the/response property for the response status - warning
added the new
keep_refusedenum value to the/response property for the response status - warning
added the new
last_ownerenum value to the/response property for the response status - warning
added the new
last_ownerenum value to the/response property for the response status - warning
added the new
last_ownerenum value to the/response property for the response status - warning
added the new
last_ownerenum value to the/response property for the response status - warning
added the new
mailbox_not_claimableenum value to the/response property for the response status - warning
added the new
mailbox_not_claimableenum value to the/response property for the response status - warning
added the new
mailbox_not_claimableenum value to the/response property for the response status - warning
added the new
mailbox_not_claimableenum value to the/response property for the response status - warning
added the new
mailbox_shared_with_othersenum value to the/response property for the response status - warning
added the new
mailbox_shared_with_othersenum value to the/response property for the response status - warning
added the new
mailbox_shared_with_othersenum value to the/response property for the response status - warning
added the new
mailbox_shared_with_othersenum value to the/response property for the response status - warning
added the new
member_address_reservedenum value to the/response property for the response status - warning
added the new
member_address_reservedenum value to the/response property for the response status - warning
added the new
member_address_reservedenum value to the/response property for the response status - warning
added the new
member_address_reservedenum value to the/response property for the response status - warning
added the new
plan_requiredenum value to the/response property for the response status - warning
added the new
plan_requiredenum value to the/response property for the response status - warning
added the new
plan_requiredenum value to the/response property for the response status - warning
added the new
plan_requiredenum value to the/response property for the response status - warning
added the new
redeploy_failedenum value to the/response property for the response status - warning
added the new
redeploy_failedenum value to the/response property for the response status - warning
added the new
redeploy_failedenum value to the/response property for the response status - warning
added the new
redeploy_failedenum value to the/response property for the response status - warning
added the new
removal_failedenum value to the/response property for the response status - warning
added the new
removal_failedenum value to the/response property for the response status - warning
added the new
removal_failedenum value to the/response property for the response status - warning
added the new
removal_failedenum value to the/response property for the response status - warning
added the new
removal_timeoutenum value to the/response property for the response status - warning
added the new
removal_timeoutenum value to the/response property for the response status - warning
added the new
removal_timeoutenum value to the/response property for the response status - warning
added the new
removal_timeoutenum value to the/response property for the response status - warning
added the new
role_assignedenum value to the/response property for the response status - warning
added the new
role_assignedenum value to the/response property for the response status - warning
added the new
role_assignedenum value to the/response property for the response status - warning
added the new
role_assignedenum value to the/response property for the response status - warning
added the new
role_assignment_unavailableenum value to the/response property for the response status - warning
added the new
role_assignment_unavailableenum value to the/response property for the response status - warning
added the new
role_assignment_unavailableenum value to the/response property for the response status - warning
added the new
role_assignment_unavailableenum value to the/response property for the response status - warning
added the new
role_key_takenenum value to the/response property for the response status - warning
added the new
role_key_takenenum value to the/response property for the response status - warning
added the new
role_key_takenenum value to the/response property for the response status - warning
added the new
role_key_takenenum value to the/response property for the response status - warning
added the new
rotation_in_progressenum value to the/response property for the response status - warning
added the new
rotation_in_progressenum value to the/response property for the response status - warning
added the new
rotation_in_progressenum value to the/response property for the response status - warning
added the new
rotation_in_progressenum value to the/response property for the response status - warning
added the new
rotation_incompleteenum value to the/response property for the response status - warning
added the new
rotation_incompleteenum value to the/response property for the response status - warning
added the new
rotation_incompleteenum value to the/response property for the response status - warning
added the new
rotation_incompleteenum value to the/response property for the response status - warning
added the new
step_up_invalidenum value to the/response property for the response status - warning
added the new
step_up_invalidenum value to the/response property for the response status - warning
added the new
step_up_invalidenum value to the/response property for the response status - warning
added the new
step_up_invalidenum value to the/response property for the response status - warning
added the new
step_up_not_acceptedenum value to the/response property for the response status - warning
added the new
step_up_not_acceptedenum value to the/response property for the response status - warning
added the new
step_up_not_acceptedenum value to the/response property for the response status - warning
added the new
step_up_not_acceptedenum value to the/response property for the response status - warning
added the new
step_up_refusedenum value to the/response property for the response status - warning
added the new
step_up_refusedenum value to the/response property for the response status - warning
added the new
step_up_refusedenum value to the/response property for the response status - warning
added the new
step_up_refusedenum value to the/response property for the response status - warning
added the new
step_up_requiredenum value to the/response property for the response status - warning
added the new
step_up_requiredenum value to the/response property for the response status - warning
added the new
step_up_requiredenum value to the/response property for the response status - warning
added the new
step_up_requiredenum value to the/response property for the response status - warning
added the new
template_roleenum value to the/response property for the response status - warning
added the new
template_roleenum value to the/response property for the response status - warning
added the new
template_roleenum value to the/response property for the response status - warning
added the new
template_roleenum value to the/response property for the response status - warning
added the new
upstream_unavailableenum value to the/response property for the response status - warning
added the new
upstream_unavailableenum value to the/response property for the response status - warning
added the new
upstream_unavailableenum value to the/response property for the response status - warning
added the new
upstream_unavailableenum value to the/response property for the response status
This list may be incomplete.
- warning
- warning
added the new
agent_changedenum value to the/response property for the response status - warning
added the new
agent_changedenum value to the/response property for the response status - warning
added the new
agent_changedenum value to the/response property for the response status - warning
added the new
agent_changedenum value to the/response property for the response status - warning
added the new
agent_limitenum value to the/response property for the response status - warning
added the new
agent_limitenum value to the/response property for the response status - warning
added the new
agent_limitenum value to the/response property for the response status - warning
added the new
agent_limitenum value to the/response property for the response status - warning
added the new
already_memberenum value to the/response property for the response status - warning
added the new
already_memberenum value to the/response property for the response status - warning
added the new
already_memberenum value to the/response property for the response status - warning
added the new
already_memberenum value to the/response property for the response status - warning
added the new
directory_limitenum value to the/response property for the response status - warning
added the new
directory_limitenum value to the/response property for the response status - warning
added the new
directory_limitenum value to the/response property for the response status - warning
added the new
directory_limitenum value to the/response property for the response status - warning
added the new
invitation_acceptedenum value to the/response property for the response status - warning
added the new
invitation_acceptedenum value to the/response property for the response status - warning
added the new
invitation_acceptedenum value to the/response property for the response status - warning
added the new
invitation_acceptedenum value to the/response property for the response status - warning
added the new
invitation_changedenum value to the/response property for the response status - warning
added the new
invitation_changedenum value to the/response property for the response status - warning
added the new
invitation_changedenum value to the/response property for the response status - warning
added the new
invitation_changedenum value to the/response property for the response status - warning
added the new
invitation_pendingenum value to the/response property for the response status - warning
added the new
invitation_pendingenum value to the/response property for the response status - warning
added the new
invitation_pendingenum value to the/response property for the response status - warning
added the new
invitation_pendingenum value to the/response property for the response status - warning
added the new
invitation_sendingenum value to the/response property for the response status - warning
added the new
invitation_sendingenum value to the/response property for the response status - warning
added the new
invitation_sendingenum value to the/response property for the response status - warning
added the new
invitation_sendingenum value to the/response property for the response status - warning
added the new
invitation_unconfirmedenum value to the/response property for the response status - warning
added the new
invitation_unconfirmedenum value to the/response property for the response status - warning
added the new
invitation_unconfirmedenum value to the/response property for the response status - warning
added the new
invitation_unconfirmedenum value to the/response property for the response status - warning
added the new
invitations_pendingenum value to the/response property for the response status - warning
added the new
invitations_pendingenum value to the/response property for the response status - warning
added the new
invitations_pendingenum value to the/response property for the response status - warning
added the new
invitations_pendingenum value to the/response property for the response status - warning
added the new
member_changedenum value to the/response property for the response status - warning
added the new
member_changedenum value to the/response property for the response status - warning
added the new
member_changedenum value to the/response property for the response status - warning
added the new
member_changedenum value to the/response property for the response status - warning
added the new
project_changedenum value to the/response property for the response status - warning
added the new
project_changedenum value to the/response property for the response status - warning
added the new
project_changedenum value to the/response property for the response status - warning
added the new
project_changedenum value to the/response property for the response status - warning
added the new
recipient_changedenum value to the/response property for the response status - warning
added the new
recipient_changedenum value to the/response property for the response status - warning
added the new
recipient_changedenum value to the/response property for the response status - warning
added the new
recipient_changedenum value to the/response property for the response status
- warning