Ferndesk

Articles

Lister les articles

Renvoie les articles du centre d’aide de votre organisation, du plus récent au plus ancien, avec une pagination par curseur.

  • status est défini par défaut sur published. draft et all nécessitent la portée content:write ; les articles mis à la corbeille ne sont jamais renvoyés.
  • collection_id filtre les résultats sur une seule collection.
  • updated_since (ISO 8601) renvoie uniquement les articles modifiés à partir de cette date, classés du plus ancien au plus récemment mis à jour, pour la synchronisation incrémentielle. Le classement par clé est intégré à next_cursor ; sur les pages suivantes, transmettez uniquement start_cursor ; updated_since est ignoré lorsqu’un start_cursor est présent (le curseur définit déjà la fenêtre et son mode).
  • format=markdown renvoie contentMarkdown au lieu de contentHtml.

Portée requise : content:read

GET /articles

Lister les articles

curl --request GET \
  --url 'https://api.ferndesk.com/v1/articles' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "results": [
    {
      "id": "<string>",
      "title": "<string>",
      "slug": "<string>",
      "contentHtml": "<string>",
      "contentMarkdown": "<string>",
      "contentJson": "<string>",
      "url": "<url>",
      "sectionId": "<string>",
      "collectionId": "<string>",
      "status": "<string>",
      "publishedAt": "<string>",
      "createdAt": "<string>"
    }
  ],
  "has_more": true,
  "next_cursor": "<string>"
}

Réponse d’articles paginée par curseur

Authorizations

  • Authorization string requis header

    Toutes les requêtes nécessitent un jeton Bearer dans l’en-tête Authorization. Les clés API sont préfixées par fdsk_ et doivent rester secrètes. Vous pouvez générer et gérer les clés depuis la page Paramètres développeur.

    Les clés peuvent être limitées à n’importe quel sous-ensemble de ces portées (chaque endpoint indique la portée requise via x-required-scopes) :

    • content:read : lire et rechercher les articles, collections, sections et traductions du centre d’aide
    • content:write : créer et modifier les brouillons d’articles, utilisateurs et tâches ; déplacer les articles et collections
    • content:publish : publier, dépublier, restaurer et mettre à la corbeille le contenu (rendre les modifications visibles)
    • analytics:read : lire les rapports, analyses et commentaires sur les articles du centre d’aide
    • conversations:read : lire les conversations et transcriptions de l’assistant IA
    • webhooks:manage : créer et gérer les abonnements aux webhooks sortants

    L’attribution de content:write ou content:publish implique content:read. Les clés créées avant la mise en place des portées ont des portées nulles = accès complet (mode hérité).

Query Parameters

  • collection_id string

    Renvoie uniquement les articles de cette collection. Exemple: col_01JXYA6ABN52

  • format string enum

    Format de rendu du contenu. html (par défaut) renvoie contentHtml ; markdown renvoie contentMarkdown ; json renvoie contentJson — le document ProseMirror/Tiptap brut stocké. Le JSON utilise le schéma ProseMirror de Ferndesk (nœuds personnalisés tels que callout, steps et cards) et constitue la représentation sans perte du corps de l’article. Exemple: markdown

  • page_size integer

    Nombre d’éléments à renvoyer par page (1-100). Exemple: 20

  • start_cursor string

    Curseur de pagination opaque. Transmettez le next_cursor d’une réponse précédente pour récupérer la page suivante. Exemple: eyJ2IjoxLCJrIjpbIjIwMjYtMDEtMDEiLCJhcnRfMSJdfQ

  • status string enum

    Filtre par statut de publication. La valeur par défaut est published. draft et all nécessitent la portée content:write et n’incluent jamais les articles mis à la corbeille. Exemple: published

  • updated_since string (date-time)

    Renvoie uniquement les articles mis à jour à partir de cet horodatage ISO 8601. À utiliser pour la synchronisation incrémentielle. Exemple: 2026-01-15T18:25:43.511Z

Response

application/json
  • results[] object array

    Éléments de cette page. Données d’article renvoyées par les endpoints d’articles.

    + Show Child Attributes
    • id string

      ID d’article Ferndesk (art_...).

    • title string

      Titre principal de l’article.

    • slug string | null

      Slug URL de l’article.

    • contentHtml string

      Contenu de l’article rendu en HTML. Présent lorsque format=html (par défaut).

    • contentMarkdown string

      Contenu de l’article rendu en Markdown. Présent lorsque format=markdown.

    • contentJson any | null

      Document ProseMirror/Tiptap brut stocké. Présent lorsque format=json. Utilise le schéma ProseMirror de Ferndesk (nœuds personnalisés tels que callout, steps et cards) et constitue la représentation sans perte.

    • url string (uri) | null

      URL publique canonique de cet article.

    • sectionId string | null

      ID de la section contenant l’article.

    • collectionId string | null

      ID de regroupement de collection facultatif pour l’article.

    • status string | null

      Statut de publication de l’article.

    • publishedAt string | null

      Horodatage de publication de l’article.

    • createdAt string

      Horodatage ISO 8601 en UTC.

    • updatedAt string

      Horodatage ISO 8601 en UTC.

  • has_more boolean

    Indique si d’autres éléments sont disponibles après cette page.

  • next_cursor string | null

    Curseur à transmettre comme start_cursor pour la page suivante, ou null sur la dernière page.