Authorizations
- Authorization string required header
All requests require a Bearer token in the
Authorizationheader. API keys are prefixed withfdsk_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 translationscontent:write: Create and edit article drafts, users, tasks; move articles and collectionscontent:publish: Publish, unpublish, restore, and trash content (make changes live)analytics:read: Read help center reporting, analytics, and article feedbackconversations:read: Read AI assistant conversations and transcriptswebhooks:manage: Create and manage outbound webhook subscriptions
Granting
content:writeorcontent:publishimpliescontent:read. Keys minted before scoping have null scopes = full access (legacy mode).
Path Parameters
- draftId string required
Draft ID. Example: drft_01JXY9AZK4KV
- id string required
Ferndesk article ID (
art_...). Example: art_01JXY9AZK4KV
Request Body
application/json- title string
- content any
JSON document payload. For articles this is typically a ProseMirror/Tiptap-style rich-text object. Image node
srcvalues may be Ferndesk asset paths, external image URLs, ordata:image/...;base64,...values; external URLs and base64 images are uploaded and rewritten to Ferndesk asset paths on write. - markdown string
Response
application/json- id string
Draft ID.
- language string | null
Draft language.
- status string
Draft status.
- baseVersion integer
Article version the draft was based on.
- source string | null
Write channel that created the draft.
- stale boolean
Whether the article has moved on since the draft was based (primary drafts only).
- updatedAt string
ISO 8601 timestamp in UTC.