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
Query Parameters
- format string enum
Content rendering format.
html(default) returnscontentHtml;markdownreturnscontentMarkdown;jsonreturnscontentJson— the raw stored ProseMirror/Tiptap document. The JSON uses Ferndesk’s ProseMirror schema (custom nodes likecallout,steps, andcards) and is the lossless representation of the article body. Example: markdown
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.
- title string | null
Draft title.
- contentHtml string
Draft body as HTML (format=html).
- contentMarkdown string
Draft body as Markdown (format=markdown).
- contentJson any | null
Raw stored ProseMirror/Tiptap draft body (format=json). Lossless Ferndesk ProseMirror schema.