Ferndesk

Article revisions

Restore an article revision

Restores an old revision by staging it as a fresh draft and publishing it on top of the current head (history stays linear). Requires the content:publish scope.

Required scope: content:publish

POST /articles/{id}/revisions/{revisionId}/restore

Restore an article revision

curl --request POST \
  --url 'https://api.ferndesk.com/v1/articles/{ID}/revisions/{REVISIONID}/restore' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "articleId": "<string>",
  "language": "<string>",
  "restoredFromVersion": 1,
  "newVersion": 1
}

Restored

Authorizations

  • Authorization string required header

    All requests require a Bearer token in the Authorization header. API keys are prefixed with fdsk_ and should be kept secret. You can generate and manage keys from the Developer settings page.

    Keys can be restricted to any subset of these scopes (each endpoint lists the scope it requires via x-required-scopes):

    • content:read: Read and search help center articles, collections, sections, and translations
    • content:write: Create and edit article drafts, users, tasks; move articles and collections
    • content:publish: Publish, unpublish, restore, and trash content (make changes live)
    • analytics:read: Read help center reporting, analytics, and article feedback
    • conversations:read: Read AI assistant conversations and transcripts
    • webhooks:manage: Create and manage outbound webhook subscriptions

    Granting content:write or content:publish implies content:read. Keys minted before scoping have null scopes = full access (legacy mode).

Path Parameters

  • id string required

    Ferndesk article ID (art_...). Example: art_01JXY9AZK4KV

  • revisionId string required

    Revision ID. Example: rev_01JXY9AZK4KV

Response

application/json
  • articleId string

    Article that was restored.

  • language string

    Language of the restored revision.

  • restoredFromVersion integer

    Version number of the revision that was restored.

  • newVersion integer | null

    New head version created by the restore for the primary language, or null for a translation restore.