List articles
list_articlesList articles with cursor pagination, filtering by status, author, category, or tag, and incremental sync via updated_since. Read-only.
Instructions
List articles. Cursor paginated, newest updated first. Read only. Nothing is changed. Needs a key carrying the articles:read scope.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Exact slug match. Slugs are unique within a Site, so this returns at most one article. | |
| limit | No | Page size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`. | |
| order | No | ||
| cursor | No | The opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change. | |
| fields | No | Comma separated field allow list. Any field of the Article schema may be named. Omit for the default projection, which is: `id, status, title, slug, excerpt, featured_image_url, category_id, author_id, format_id, published_at, scheduled_publish_at, created_at, updated_at`. | |
| status | No | Filter by status. Repeat the parameter to match several. A publishable key may only ask for `published`, and any other value is rejected with `403 INSUFFICIENT_SCOPE`. | |
| tag_id | No | Return only articles carrying this tag. A UUID. | |
| author_id | No | A UUID. | |
| category_id | No | A UUID. | |
| updated_since | No | Return only articles updated at or after this instant. This is the incremental sync parameter: store the greatest `updated_at` you have seen and pass it back next time. ISO 8601 with an offset, for example 2026-09-01T09:00:00Z. |