# List articles

> GET /articles: List articles

`GET https://usedocs.app/v1/articles`

Articles, newest change first.

```bash
curl "https://usedocs.app/v1/articles?status=published&page_size=50" \
  -H "Authorization: Bearer $USEDOCS_API_KEY"
```

## Authentication

Bearer token (`content:read`): A workspace API key: ud_live_…

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `status` | query | `string` |  |  |
| `collection_id` | query | `string` |  |  |
| `locale` | query | `string` |  |  |
| `updated_since` | query | `string (date-time)` |  | Only articles changed since then (incremental sync). |
| `format` | query | `string` |  | contentMarkdown (default) or contentHtml. |
| `start_cursor` | query | `string` |  | next_cursor from the previous page. |
| `page_size` | query | `integer` |  |  |
| `bot_id` | query | `string` |  | Only for a key that covers several bots (see GET /bots). Or send the Usedocs-Bot header. |

## Responses

| Status | Description |
| --- | --- |
| `200` | One page of articles. |
| `400` | The request is missing something or has a bad value. |
| `401` | No API key, or the key is revoked. |
| `403` | A read key on a write, or a key for another bot. |
| `404` | Not found. |
| `429` | Rate limited: 120 requests a minute per key, 30 tasks an hour. See Retry-After. |

## Response fields

| Field | Type | Description |
| --- | --- | --- |
| `results` | `Article[]` |  |
| `has_more` | `boolean` |  |
| `next_cursor` | `string | null` | Pass as start_cursor for the next page; null on the last page. |

### `results`[]: Article

| Field | Type | Description |
| --- | --- | --- |
| `id` | `string` |  |
| `title` | `string` |  |
| `slug` | `string` |  |
| `status` | `string` | One of: `draft`, `in_review`, `published`, `archived`. |
| `description` | `string | null` |  |
| `collectionId` | `string | null` |  |
| `locale` | `string` |  |
| `visibility` | `string` | One of: `public`, `authenticated`. |
| `url` | `string | null` | The live page, when published. |
| `contentMarkdown` | `string` | With format=markdown (default). |
| `contentHtml` | `string` | With format=html. |
| `publishedAt` | `string | null` |  |
| `createdAt` | `string (date-time)` |  |
| `updatedAt` | `string (date-time)` |  |