Ferndesk

Webhooks

List webhook endpoints

Returns all webhook endpoints for your organization, newest first. Requires the webhooks:manage scope.

Required scope: webhooks:manage

GET /webhooks

List webhook endpoints

curl --request GET \
  --url 'https://api.ferndesk.com/v1/webhooks' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
[
  {
    "id": "<string>",
    "url": "<string>",
    "events": [
      "<string>"
    ],
    "enabled": true,
    "description": "<string>",
    "failureCount": 1,
    "lastSuccessAt": "<string>",
    "lastFailureAt": "<string>",
    "disabledAt": "<string>",
    "createdAt": "<string>",
    "updatedAt": "<string>"
  }
]

Webhook endpoints

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

Response

application/json
  • items[] object array item

    Webhook endpoint payload (never includes the signing secret).

    + Show Child Attributes
    • id string

      Webhook endpoint ID (whep_...).

    • url string

      HTTPS URL that receives POSTed webhook payloads.

    • events[] string array

      Subscribed event types (or *).

    • enabled boolean

      Whether the endpoint currently receives deliveries. Endpoints auto-disable after sustained failures.

    • description string | null

      Optional human-readable label.

    • failureCount integer

      Consecutive delivery failures. Reset to 0 on any success or on re-enable.

    • lastSuccessAt string | null
    • lastFailureAt string | null
    • disabledAt string | null

      When the endpoint was auto-disabled, if applicable.

    • createdAt string

      ISO 8601 timestamp in UTC.

    • updatedAt string

      ISO 8601 timestamp in UTC.