API Snippets : lister, récupérer, créer, modifier et supprimer des snippets

Dernière mise à jour le 19 octobre 2026

Référence complète de l’API pour lister, récupérer, créer, modifier et supprimer des snippets dans PDFMonkey.

Vous découvrez les snippets ?

Les snippets permettent de partager du code entre plusieurs modèles. Consultez Réutiliser du code pour savoir comment les charger et les inclure dans un modèle. L’API Snippets est utile lorsque vous gérez vos snippets par programmation, par exemple pour les synchroniser depuis un dépôt Git. Pour les modifier au quotidien, la CLI est souvent l’option la plus simple.

Authentification #

Toutes les requêtes nécessitent un token Bearer dans l’en-tête Authorization :

Authorization: Bearer YOUR_SECRET_KEY

Consultez Authentification pour savoir comment trouver votre clé API.

L’objet Snippet #

Un Snippet est un bloc de code HTML + Liquid nommé, qui appartient à un espace de travail. Les modèles le désignent par son identifier :

{%- load_snippets 'invoice-header' -%}
{% include 'invoice-header', company: company %}

Attributs #

{
  id: "b2f1c3a4-5d6e-4f70-8a9b-0c1d2e3f4a5b",
  workspace_id: "3161c5e5-9966-4630-9b07-63f718092784",
  identifier: "invoice-header",
  code: '<header class="invoice-header"><h1>{{ company.name }}</h1></header>',
  snippet_folder_id: null,
  creator_id: "0f6d2a8e-1c3b-4e5f-9a7d-2b4c6e8f0a1c",
  creator_name: "Jane Doe",
  updater_id: "0f6d2a8e-1c3b-4e5f-9a7d-2b4c6e8f0a1c",
  updater_name: "Jane Doe",
  created_at: "2050-01-02T03:04:05.678+02:00",
  updated_at: "2050-01-02T03:04:05.678+02:00",
  deleted_at: null,
}
AttributTypeDescription
idUUIDIdentifiant unique.
workspace_idUUIDIdentifiant unique de l’espace de travail du snippet.
identifierStringNom utilisé pour charger le snippet dans les modèles (1 à 100 caractères). Unique dans l’espace de travail.
codeStringCode HTML + Liquid du snippet. Doit être du Liquid valide.
snippet_folder_idUUID ou nullID du dossier de snippets qui contient le snippet.
creator_idUUIDID de l’utilisateur qui a créé le snippet.
creator_nameStringNom affiché de l’utilisateur qui a créé le snippet.
updater_idUUIDID du dernier utilisateur à avoir modifié le snippet. Déterminé par la clé API utilisée pour la requête.
updater_nameStringNom affiché du dernier utilisateur à avoir modifié le snippet.
created_atString (ISO 8601)Date de création du snippet.
updated_atString (ISO 8601)Date de dernière modification du snippet.
deleted_atString (ISO 8601) ou nullToujours null pour les snippets renvoyés par l’API.

Lister les snippets #

GET /api/v1/snippets

Renvoie une liste paginée des snippets d’un espace de travail, code compris.

Paramètres de requête #

NomTypeRequisDescription
q[workspace_id]String (UUID)OuiL’espace de travail dont lister les snippets. Accepte aussi q[workspaceId], q[app_id] ou q[appId]. Sans ce paramètre, la liste est vide.
q[folders]StringNonListe d’ID de dossiers séparés par des virgules. Utilisez "none" pour les snippets hors dossier, ou "all" (par défaut) pour tous.
q[search]StringNonNe renvoie que les snippets dont l’identifier contient ce texte (sans tenir compte de la casse).
pageIntegerNonNuméro de page (24 snippets par page). Utilisez all pour obtenir tous les snippets en une seule réponse, sans meta.
sortStringNonAttribut de tri, par exemple identifier. Préfixez-le par - pour un tri décroissant, par exemple -updated_at.

Requête #

curl -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  'https://api.pdfmonkey.io/api/v1/snippets?q[workspace_id]=3161c5e5-9966-4630-9b07-63f718092784'

Réponse #

{
  "snippets": [
    {
      "id": "b2f1c3a4-5d6e-4f70-8a9b-0c1d2e3f4a5b",
      "workspace_id": "3161c5e5-9966-4630-9b07-63f718092784",
      "identifier": "invoice-header",
      "code": "<header class=\"invoice-header\"><h1>{{ company.name }}</h1></header>",
      "snippet_folder_id": null,
      "creator_id": "0f6d2a8e-1c3b-4e5f-9a7d-2b4c6e8f0a1c",
      "creator_name": "Jane Doe",
      "updater_id": "0f6d2a8e-1c3b-4e5f-9a7d-2b4c6e8f0a1c",
      "updater_name": "Jane Doe",
      "created_at": "2050-01-02T03:04:05.678+02:00",
      "updated_at": "2050-01-02T03:04:05.678+02:00",
      "deleted_at": null
    }
  ],
  "meta": {
    "current_page": 1,
    "next_page": null,
    "prev_page": null,
    "total_pages": 1
  }
}

Récupérer un snippet #

GET /api/v1/snippets/{id}

Renvoie un objet Snippet.

Requête #

curl -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  https://api.pdfmonkey.io/api/v1/snippets/b2f1c3a4-5d6e-4f70-8a9b-0c1d2e3f4a5b

Réponse #

Renvoie 200 OK avec un objet snippet :

{
  "snippet": {
    "id": "b2f1c3a4-5d6e-4f70-8a9b-0c1d2e3f4a5b",
    "workspace_id": "3161c5e5-9966-4630-9b07-63f718092784",
    "identifier": "invoice-header",
    "code": "<header class=\"invoice-header\"><h1>{{ company.name }}</h1></header>",
    "snippet_folder_id": null,
    "creator_id": "0f6d2a8e-1c3b-4e5f-9a7d-2b4c6e8f0a1c",
    "creator_name": "Jane Doe",
    "updater_id": "0f6d2a8e-1c3b-4e5f-9a7d-2b4c6e8f0a1c",
    "updater_name": "Jane Doe",
    "created_at": "2050-01-02T03:04:05.678+02:00",
    "updated_at": "2050-01-02T03:04:05.678+02:00",
    "deleted_at": null
  }
}

Créer un snippet #

POST /api/v1/snippets

Crée un nouveau snippet dans un espace de travail.

Paramètres #

Tous les paramètres sont imbriqués sous une clé snippet.

NomTypeRequisDescription
workspace_idString (UUID)OuiL’espace de travail dans lequel créer le snippet.
identifierStringOuiNom utilisé pour charger le snippet (1 à 100 caractères). Unique dans l’espace de travail.
codeStringNonCode HTML + Liquid. Doit être du Liquid valide.
snippet_folder_idString (UUID)NonDossier de snippets dans lequel placer le snippet. Doit appartenir au même espace de travail.

Requête #

curl https://api.pdfmonkey.io/api/v1/snippets \
  -X POST \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "snippet": {
      "workspace_id": "3161c5e5-9966-4630-9b07-63f718092784",
      "identifier": "invoice-header",
      "code": "<header class=\"invoice-header\"><h1>{{ company.name }}</h1></header>"
    }
  }'

Réponse #

Renvoie 201 Created avec l’objet snippet complet. L’en-tête Location contient l’URL du nouveau snippet.

Erreurs de validation #

Si un champ est manquant ou invalide, l’API renvoie 422 Unprocessable Entity. Un code Liquid invalide est signalé sous la clé code, avec le message de l’analyseur Liquid.

{
  "errors": {
    "identifier": ["has already been taken"]
  }
}

Modifier un snippet #

PUT /api/v1/snippets/{id}

Modifie un snippet existant. Seuls les champs présents dans le corps de la requête sont modifiés. PATCH est également accepté.

Paramètres #

Tous les paramètres sont imbriqués sous une clé snippet. Les champs acceptés sont les mêmes que pour Créer un snippet. Envoyez "snippet_folder_id": null pour sortir un snippet de son dossier.

Renommer un snippet

Les modèles chargent les snippets par leur identifier. Si vous renommez un snippet, mettez à jour les tags load_snippets et include des modèles qui l’utilisent.

Requête #

curl https://api.pdfmonkey.io/api/v1/snippets/b2f1c3a4-5d6e-4f70-8a9b-0c1d2e3f4a5b \
  -X PUT \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "snippet": {
      "code": "<header class=\"invoice-header\"><img src=\"{{ company.logo_url }}\"><h1>{{ company.name }}</h1></header>"
    }
  }'

Réponse #

Renvoie 200 OK avec l’objet snippet modifié.

Supprimer un snippet #

DELETE /api/v1/snippets/{id}

Supprime un snippet. Il n’apparaît plus ni dans l’API ni dans le Dashboard.

Requête #

curl https://api.pdfmonkey.io/api/v1/snippets/b2f1c3a4-5d6e-4f70-8a9b-0c1d2e3f4a5b \
  -X DELETE \
  -H 'Authorization: Bearer YOUR_SECRET_KEY'

Réponse #

Renvoie 204 No Content avec un corps vide.

Dossiers de snippets #

Les dossiers de snippets regroupent les snippets d’un espace de travail, comme les dossiers de modèles regroupent les modèles. Un snippet ne peut se trouver que dans un seul dossier, défini par son snippet_folder_id.

L’objet SnippetFolder #

{
  "id": "7e3a9c1d-2b4f-4a6e-8c0d-1f2e3a4b5c6d",
  "workspace_id": "3161c5e5-9966-4630-9b07-63f718092784",
  "identifier": "Factures",
  "created_at": "2050-01-02T03:04:05.678+02:00",
  "updated_at": "2050-01-02T03:04:05.678+02:00"
}
AttributTypeDescription
idUUIDIdentifiant unique.
workspace_idUUIDIdentifiant unique de l’espace de travail du dossier.
identifierStringNom du dossier (1 à 100 caractères).
created_atString (ISO 8601)Date de création du dossier.
updated_atString (ISO 8601)Date de dernière modification du dossier.

Endpoints #

MéthodeCheminDescription
GET/api/v1/snippet_foldersListe les dossiers d’un espace de travail. Nécessite q[workspace_id], comme Lister les snippets.
GET/api/v1/snippet_folders/{id}Récupère un dossier.
POST/api/v1/snippet_foldersCrée un dossier. Envoyez workspace_id et identifier sous une clé snippet_folder.
PUT/api/v1/snippet_folders/{id}Renomme un dossier. Envoyez identifier sous une clé snippet_folder.
DELETE/api/v1/snippet_folders/{id}Supprime un dossier et tous les snippets qu’il contient. Renvoie 204 No Content.

Les réponses placent le dossier sous une clé snippet_folder, ou la liste des dossiers sous une clé snippet_folders.

curl https://api.pdfmonkey.io/api/v1/snippet_folders \
  -X POST \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "snippet_folder": {
      "workspace_id": "3161c5e5-9966-4630-9b07-63f718092784",
      "identifier": "Factures"
    }
  }'

Supprimer un dossier supprime ses snippets

Pour conserver les snippets d’un dossier que vous allez supprimer, sortez-les d’abord du dossier en modifiant chacun d’eux avec "snippet_folder_id": null.

Questions fréquentes

Qu’est-ce qu’un Snippet dans PDFMonkey ?
Un Snippet est un bloc de code HTML + Liquid nommé, stocké dans un espace de travail. Tous les modèles de cet espace de travail peuvent le charger avec le tag load_snippets et l’insérer avec le tag include.
Comment lister les snippets avec l’API PDFMonkey ?
Envoyez une requête GET à /api/v1/snippets avec un paramètre q[workspace_id]. Sans ce paramètre, l’API renvoie une liste vide. Vous pouvez affiner les résultats avec q[folders] et q[search].
Deux snippets peuvent-ils avoir le même nom ?
Pas dans le même espace de travail. Les modèles font référence à un snippet par son identifier, qui doit donc être unique dans son espace de travail. L’API renvoie une erreur 422 si l’identifier est déjà utilisé.