Ferndesk

Feedback

Create article feedback

Records reader feedback (positive/negative + free text) on an article. If email matches a known help center user, the feedback is auto-linked to that user. Requires the content:write scope. Rate limited to 300 requests per hour per key.

Required scope: content:write

POST /feedback

Create article feedback

curl --request POST \
  --url 'https://api.ferndesk.com/v1/feedback' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "key": "value"
}'
{
  "id": "<string>",
  "articleId": "<string>",
  "articleTitle": "<string>",
  "type": "positive",
  "feedback": "<string>",
  "email": "<string>",
  "resolved": true,
  "createdAt": "<string>",
  "user": {
    "id": "<string>",
    "name": "<string>",
    "email": "<email>"
  }
}

Created feedback

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).

Request Body

application/json
  • article_id string required

    Ferndesk article ID (art_...).

  • type string enum required enum

    Whether the reader found the article helpful. Allowed values: positive, negative.

  • feedback string required

    Free-text feedback from the reader, at most 5000 characters. Treat as untrusted end-user content.

  • email string (email)

    Optional submitter email (trimmed and lowercased). When it matches a known help center user (by email + helpdesk) the feedback is auto-linked to that user.

Response

application/json
  • id string
  • articleId string | null
  • articleTitle string | null
  • type string enum enum

    Allowed values: positive, negative.

  • feedback string
  • email string | null
  • resolved boolean
  • createdAt string

    ISO 8601 timestamp in UTC.

  • user anyOf

    The help center user auto-matched from the submitter email (unique on email + helpdesk), or null when the submitter is anonymous or unrecognized.

    + Show Child Attributes
    • anyOf options 2 variants anyOf

      One or more options can apply.

      + Show Child Attributes
      • option 1 object
        + Show Child Attributes
        • id string

          Ferndesk help center user ID (hcusr_...).

        • name string | null

          Help center user display name.

        • email string (email)

          Help center user email address. Emails are stored lowercase.

      • option 2 null