---
title: "Workspace change feed"
method: GET
path: "/events"
---

# Workspace change feed

`GET /events`

## Request

- Base URL: `https://www.merchkit.com/api/v1`
- URL: `https://www.merchkit.com/api/v1/events`
- Auth: HTTP bearer

The account-wide change feed, NEWEST-FIRST. Poll with `since`: when `has_more` is false, the page holds every event since your checkpoint — save `next_since` (the newest `created_at`), overlap the next poll by a second, dedupe on event `id`. When `has_more` is true the window overflowed one page and middle events are NOT reachable by paging — recover by state, not by log: `GET /{resource}?filter[updated_at][gte]=<checkpoint>` per synced resource. Batch-refetch changed entities with `filter[id][in]=…`.

Scope: `read:events`.

## Query parameters

- `since` string, date-time
- `limit` integer

## Response `200`

Change events, newest first.

- object
  - `data` Event[]
    - `id` string, uuid, required
    - `type` 'entity.created' | 'entity.updated' | 'entity.deleted', required
    - `entity_id` string, uuid, required
    - `entity_type` string, nullable, required: Null once the entity has been deleted.
    - `attribute_key` string, nullable, required: The changed attribute for entity.updated; null otherwise.
    - `value` unknown, required
    - `actor` object, required
      - `kind` 'user' | 'api_key' | 'system', required
    - `created_at` string, date-time, required
  - `pagination` EventPagination: Event feeds page differently: newest-first with a `next_since` checkpoint instead of total/offset.
    - `limit` integer
    - `has_more` boolean: True when the window exceeded one page — recover by state (`filter[updated_at][gte]=<checkpoint>`), not by paging.
    - `next_since` string, date-time, nullable: The newest `created_at` on the page — your next `since` checkpoint (overlap by 1s and dedupe on event id).

---

[API](https://skmtc.dev/merchkit/apis/merchkit-api.md) - [All operations](https://skmtc.dev/merchkit/apis/merchkit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/merchkit/apis/merchkit-api/revisions/3062ca814757?raw)
