Retrieves a list of entity change events for syncing.
Events are returned in order of entity type priority (assets first, then exif, albums, etc.),
then by updated_at timestamp (oldest first), then by entity ID for tie-breaking.
Pagination: Use updated_at_gte with the timestamp of the last received event to fetch
the next page. When multiple entities share the same timestamp, also provide starting_after_id
with the last entity’s ID to avoid duplicates. Use updated_at_lt to bound the sync window
and prevent infinite loops when new events are created during sync.
Important: When using starting_after_id, you must specify exactly one entity_types
value. This ensures the cursor ID is unambiguous. To sync all entity types with cursor
support, query each entity type separately.
Recommended sync pattern (per entity type):
sync_started_atentity_types={type}&updated_at_lt=sync_started_atentity_types={type}&updated_at_gte={last.updated_at}&starting_after_id={last.id}&updated_at_lt=sync_started_atsync_started_at as checkpoint for next syncEntity ID field by type:
id field from the responseasset_id field (exif has no separate id)Library to list events from. If not provided, uses the user's default library.
Only return events with updated_at >= this timestamp (ISO 8601 format)
Only return events with updated_at < this timestamp (ISO 8601 format). Recommended for bounding sync operations.
Entity ID to start after for tie-breaking when paginating. Used with updated_at_gte for composite keyset pagination. Requires exactly one entity_types value. For exif entities, use asset_id.
Comma-separated list of entity types to include (e.g., 'asset,album'). Valid types: asset, album, person, face, album_asset, exif. Default: all types.
Maximum number of events to return (1-500)
1 <= x <= 500Successful Response
Response containing events.
List of events, ordered by entity type priority, then updated_at, then entity_id
Event payload for asset entities.