--- title: Publication Events --- ## Get Publication Events **Required scope:** `public-api:read` This endpoint returns publication events (`publish`, `unpublish`, `update`) for a project. #### Related - [Webhooks](/reference/webhooks/llms.txt) **Use Cases** - Reliably fetch documents publication state changes to sync with another system - Cache invalidation management **History** | Version | Change | | ------- | ------ | | release-2026-01 | Responds with an object containing a `results` array. | | release-2021-06 | Added `contentTypes`, `documentTypes`, `id.gte` (and other range filters), `createdAt.gte` (and other range filters). | | release-2021-03 | Added `reverse` query string support. | **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2026-05/publicationEvents" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2026-05/publicationEvents ``` **Parameters** | Name | Type | Required | Notes | | ---- | ---- | :------: | ----- | | channelHandle | string | | The handle of the channel for which you want to get the events | | ?limit | integer | | Number of events to return. Default: 100. Highest limit: 1000 | | ?reverse | boolean | | Returns the events in reverse order, starting at the biggest id | | ?contentTypes | string | | Comma separated list of content types to use as filter | | ?documentTypes | string | | Comma separated list of document types to use as filter. Can be one of `article`, `page`, `data-record` | | ?after | integer | | Deprecated: Please use `id.gte` instead. Return matching events after this event id | | ?id.gte | string | | Filter by event id range.

**Supported filters:** `id.gte`, `id.gt`, `id.lte`, `id.lt`.

**Example:** To retrieve all events since you've fetched the last entry, use `?limit=1000&id.gt=40000`" | | ?createdAt.gte | string | | Filter by event date range.

**Supported filters:** `createdAt.gte`, `createdAt.gt`, `createdAt.lte`, `createdAt.lt`.

**Example:** To retrieve all events since a specific timestamp, use `?limit=1000&createdAt.gte=2021-05-01T00:00:00.000Z`" | **Response** _200 OK_ — `/api/2026-05/publicationEvents` ```json { "results": [ { "id": 910, "createdAt": "2016-12-27T09:19:00.928Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "publish", "publicationId": 1066 }, { "id": 988, "createdAt": "2016-12-27T09:32:10.898Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "unpublish", "publicationId": 1100 }, { "id": 990, "createdAt": "2016-12-27T09:33:05.010Z", "projectId": 30, "channelId": 53, "documentId": 8005, "documentType": "article", "eventType": "publish", "publicationId": 1131 }, { "id": 1011, "createdAt": "2016-12-27T09:33:31.517Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "update", "publicationId": 1394 } ] } ``` _200 OK_ — `/api/2026-05/publicationEvents?reverse&limit=2` ```json { "results": [ { "id": 1011, "createdAt": "2016-12-27T09:33:31.517Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "update", "publicationId": 1394 }, { "id": 990, "createdAt": "2016-12-27T09:33:05.010Z", "projectId": 30, "channelId": 53, "documentId": 8005, "documentType": "article", "eventType": "publish", "publicationId": 1131 } ] } ``` ## Get Publication Events > [!NOTE] > This endpoint has changes in version 2026-01. > **Required scope:** `public-api:read` This endpoint returns publication events (`publish`, `unpublish`, `update`) for a project. #### Related - [Webhooks](/reference/webhooks/llms.txt) **Use Cases** - Reliably fetch documents publication state changes to sync with another system - Cache invalidation management **History** | Version | Change | | ------- | ------ | | release-2021-06 | Added `contentTypes`, `documentTypes`, `id.gte` (and other range filters), `createdAt.gte` (and other range filters). | | release-2021-03 | Added `reverse` query string support. | **Curl Example** ```bash ACCESS_TOKEN=ey1234 curl -k -X GET "https://server.livingdocs.io/api/2025-11/publicationEvents" \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` **Endpoint** ```http GET /api/2025-11/publicationEvents ``` **Parameters** | Name | Type | Required | Notes | | ---- | ---- | :------: | ----- | | channelHandle | string | | The handle of the channel for which you want to get the events | | ?limit | integer | | Number of events to return. Default: 100. Highest limit: 1000 | | ?reverse | boolean | | Returns the events in reverse order, starting at the biggest id | | ?contentTypes | string | | Comma separated list of content types to use as filter | | ?documentTypes | string | | Comma separated list of document types to use as filter. Can be one of `article`, `page`, `data-record` | | ?after | integer | | Deprecated: Please use `id.gte` instead. Return matching events after this event id | | ?id.gte | string | | Filter by event id range.

**Supported filters:** `id.gte`, `id.gt`, `id.lte`, `id.lt`.

**Example:** To retrieve all events since you've fetched the last entry, use `?limit=1000&id.gt=40000`" | | ?createdAt.gte | string | | Filter by event date range.

**Supported filters:** `createdAt.gte`, `createdAt.gt`, `createdAt.lte`, `createdAt.lt`.

**Example:** To retrieve all events since a specific timestamp, use `?limit=1000&createdAt.gte=2021-05-01T00:00:00.000Z`" | **Response** _200 OK_ — `/api/2025-11/publicationEvents` ```json [ { "id": 910, "createdAt": "2016-12-27T09:19:00.928Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "publish", "publicationId": 1066 }, { "id": 988, "createdAt": "2016-12-27T09:32:10.898Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "unpublish", "publicationId": 1100 }, { "id": 990, "createdAt": "2016-12-27T09:33:05.010Z", "projectId": 30, "channelId": 53, "documentId": 8005, "documentType": "article", "eventType": "publish", "publicationId": 1131 }, { "id": 1011, "createdAt": "2016-12-27T09:33:31.517Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "update", "publicationId": 1394 } ] ``` _200 OK_ — `/api/2025-11/publicationEvents?reverse&limit=2` ```json [ { "id": 1011, "createdAt": "2016-12-27T09:33:31.517Z", "projectId": 30, "channelId": 53, "documentId": 7892, "documentType": "article", "eventType": "update", "publicationId": 1394 }, { "id": 990, "createdAt": "2016-12-27T09:33:05.010Z", "projectId": 30, "channelId": 53, "documentId": 8005, "documentType": "article", "eventType": "publish", "publicationId": 1131 } ] ```