---
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
}
]
```