# Diff a revision

> GET /articles/{id}/revisions/{revisionId}/diff: Diff a revision

`GET https://usedocs.app/v1/articles/{id}/revisions/{revisionId}/diff`

A unified diff from this version to the current article, or to another version with compare_to.

## Authentication

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

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | `string` | Yes | Article id or slug. |
| `revisionId` | path | `string` | Yes |  |
| `compare_to` | query | `string` |  |  |
| `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` | The diff. |
| `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 |
| --- | --- | --- |
| `articleId` | `string` |  |
| `from` | `string` |  |
| `to` | `string` |  |
| `diff` | `string` |  |
| `added` | `integer` |  |
| `removed` | `integer` |  |