Skip to main content
GET
Stream entity change events

Authorizations

Authorization
string
header
required

Gumnut API key (apikey_...) sent as a Bearer token in the Authorization header. Create and manage keys in the Gumnut app, or with the API key endpoints while signed in to it.

Query Parameters

library_id
string | null

Library to stream events from. Optional if the user has a single live (non-trashed) library; required when they have multiple.

after_cursor
string | null

Opaque cursor to resume after: the previous page's next_cursor. Omit for a first sync.

as_of
string | null

Opaque bound from an earlier response's as_of in the same sync. Returns only events that were ready at that point, so several reads share one bound, such as one feed per entity type. A row can still precede the row it refers to when its transaction began writing first. Use it for one sync only; never store it.

created_at_gte
string<date-time> | null

Only return events created at or after this timestamp (ISO 8601). A display filter, not a sync checkpoint: created_at is when the writer's transaction started, so a later-committing event can carry an earlier timestamp.

created_at_lt
string<date-time> | null
deprecated

Ignored. Reads are bounded by next_cursor; a timestamp bound could skip events.

entity_types
string[] | null

Entity types to include (e.g., asset, album). Valid values: asset, album, person, face, album_asset, metadata, stack. Accepts multiple entity_types= query params or a single comma-delimited value (e.g., entity_types=asset,album). Omit to receive events for all types.

limit
integer
default:20

Maximum number of events to return per page (1–200). Defaults to 20.

Required range: 1 <= x <= 200

Response

Successful Response

Response containing a page of events.

data
EventResponse · object[]
required

Events in feed order, which is not commit order.

has_more
boolean
required

True if more events are ready now: pass next_cursor as after_cursor, repeating library_id, entity_types, and created_at_gte, to fetch the next page. False means the client is caught up, not that the feed is closed.

as_of
string
required

Opaque bound this read stopped at. Pass as as_of to the other reads in the same sync, such as other entity types, so they all stop at the same point.

next_cursor
string | null

Store after applying this page and pass as after_cursor to continue. While has_more is true it also bounds the read to events ready when it began. Null only when the request had no cursor and returned no events.