Ferndesk

Articles

Publish an article

Publishes an open draft, making it the live version.

  • Provide draft_id to publish a specific draft.
  • Omit draft_id only when exactly one open draft owned by this API key exists; otherwise a no_draft (409) is returned.

Stale publishes return 409 with code: draft_outdated and the current/base versions so you can rebase. Requires the content:publish scope.

Required scope: content:publish

POST /articles/{id}/publish

Publish an article

curl --request POST \
  --url 'https://api.ferndesk.com/v1/articles/{ID}/publish' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "key": "value"
}'
{
  "id": "<string>",
  "status": "<string>",
  "version": 1
}

Published

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

    Resource ID for the requested entity. Example: art_01JXY9AZK4KV

Request Body

application/json
  • draft_id string

    Draft to publish. Optional only when exactly one open draft owned by this API key exists.

Response

application/json
  • id string

    Ferndesk article ID (art_...).

  • status string
  • version integer

    New article version after publish.