Ferndesk

Collections

List collections

Returns collections in your help center, newest first, cursor-paginated. Requires the content:read scope.

Required scope: content:read

GET /collections

List collections

curl --request GET \
  --url 'https://api.ferndesk.com/v1/collections' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "results": [
    {
      "id": "<string>",
      "helpdeskId": "<string>",
      "sectionId": "<string>",
      "parentCollectionId": "<string>",
      "title": "<string>",
      "subtitle": "<string>",
      "shortId": "<string>",
      "createdAt": "<string>",
      "updatedAt": "<string>",
      "translations": []
    }
  ],
  "has_more": true,
  "next_cursor": "<string>"
}

Cursor-paginated collections

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

Query Parameters

  • page_size integer

    Number of items to return per page (1-100). Example: 20

  • start_cursor string

    Opaque pagination cursor. Pass the next_cursor from a previous response to fetch the next page. Example: eyJ2IjoxLCJrIjpbIjIwMjYtMDEtMDEiLCJhcnRfMSJdfQ

Response

application/json
  • results[] object array

    Items in this page. Collection payload.

    + Show Child Attributes
    • id string

      Ferndesk collection ID (col_...).

    • helpdeskId string

      Ferndesk helpdesk ID (help_...).

    • sectionId string | null

      Parent section ID for this collection.

    • parentCollectionId string | null

      Parent collection ID if this is nested.

    • title string

      Collection title.

    • subtitle string | null

      Optional collection subtitle.

    • shortId string

      Short human-friendly identifier.

    • createdAt string

      ISO 8601 timestamp in UTC.

    • updatedAt string

      ISO 8601 timestamp in UTC.

    • translations[] object arraydefault

      Localized collection translations. Default: [].

      + Show Child Attributes
      • id string

        Collection translation record ID.

      • collectionId string

        Ferndesk collection ID (col_...).

      • language string

        Language code for this translation.

      • title string

        Localized collection title.

      • subtitle string | null

        Localized collection subtitle.

      • status string

        Translation status.

      • createdAt string

        ISO 8601 timestamp in UTC.

      • updatedAt string

        ISO 8601 timestamp in UTC.

  • has_more boolean

    Whether more items are available after this page.

  • next_cursor string | null

    Cursor to pass as start_cursor for the next page, or null on the last page.