> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metabind.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rollback Content Version

> Rollback to a previous version of content

Restores content to a previous version's data. This creates a draft with the historical content, which can then be published as a new version.

## Path Parameters

<ParamField path="organizationId" type="string" required>
  Organization ID
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID
</ParamField>

<ParamField path="id" type="string" required>
  Content ID
</ParamField>

## Request Body

<ParamField body="version" type="number" required>
  The version number to rollback to
</ParamField>

### Example Request

```json theme={null}
{
  "version": 2
}
```

## Response

Returns the Content object with the rolled-back data in draft/modified status.

```json theme={null}
{
  "id": "cont123",
  "typeId": "ct123",
  "typeVersion": 2,
  "version": null,
  "lastPublishedVersion": 3,
  "packageVersion": "1.0.0",
  "name": "Getting Started Guide",
  "status": "modified",
  "isTemplate": false,
  "content": {
    "title": "Getting Started Guide v2",
    "components": [...]
  },
  "compiled": "const body = () => { ... }",
  "tags": ["Tutorial"],
  "metadata": {
    "author": "jane.doe@metabind.ai",
    "rolledBackFrom": 2,
    "locale": "en-US"
  },
  "createdAt": "2024-03-20T10:00:00Z",
  "updatedAt": "2024-03-23T10:00:00Z"
}
```

<Note>
  Rollback creates a draft with the historical content. You must publish to make the rollback live. This preserves the complete version history.
</Note>

## Error Responses

### Version Not Found

```json theme={null}
{
  "error": {
    "code": "VERSION_NOT_FOUND",
    "message": "Version 5 not found for content cont123"
  }
}
```

### ContentType Version Unavailable

If the historical version used a ContentType version that has been removed:

```json theme={null}
{
  "error": {
    "code": "TYPE_VERSION_NOT_FOUND",
    "message": "ContentType version 1 referenced by version 2 is no longer available"
  }
}
```

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content/cont123/rollback" \
    -H "Authorization: Bearer YOUR_JWT" \
    -H "Content-Type: application/json" \
    -d '{
      "version": 2
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content/cont123/rollback',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_JWT',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        version: 2
      })
    }
  );

  const content = await response.json();
  console.log(`Rolled back to version 2, status is now: ${content.status}`);

  // Publish the rollback
  await fetch(
    'https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content/cont123/publish',
    {
      method: 'POST',
      headers: { 'Authorization': 'Bearer YOUR_JWT' }
    }
  );
  ```
</CodeGroup>
