API Publications
Créez, mettez à jour, supprimez et gérez les publications flipbook. Téléchargez des PDF, contrôlez la visibilité, gérez les versions et générez des QR codes.
- Lister les publications
- Paramètres de requête
- Exemple de requête
- Exemple de réponse
- Créer une publication
- Corps de la requête
- Exemple de requête
- Exemple de réponse
- Télécharger un PDF
- Exemple de requête
- Exemple de réponse
- Obtenir une publication
- Exemple de requête
- Exemple de réponse
- Mettre à jour une publication
- Corps de la requête
- Exemple de requête
- Mettre à jour les paramètres de publication
- Exemple de requête
- Mettre à jour la marque de la publication
- Exemple de requête
- Publier / Archiver
- Supprimer une publication
- Lister les versions
- Exemple de réponse
- Activer une version
- Générer un QR code
- Endpoint du lecteur public
API Publications
L'API Publications vous permet de créer des publications flipbook, de télécharger des PDF pour conversion, de gérer les versions et de contrôler les paramètres d'accès. Tous les endpoints nécessitent une authentification sauf ceux marqués comme publics.
URL de base : https://api.zenflip.io/v1/publications
Lister les publications
Récupérez une liste paginée des publications de votre organisation.
` GET /publications `
Paramètres de requête
Paramètre | Type | Requis | Description |
|---|---|---|---|
| integer | Non | Numéro de page (par défaut : 1) |
| integer | Non | Éléments par page (par défaut : 20) |
| string | Non | Filtrer par titre (correspondance partielle) |
| string | Non | Filtrer par statut : |
| string | Non | Champ de tri (ex. : |
| string | Non | Direction du tri : |
Exemple de requête
`bash curl "https://api.zenflip.io/v1/publications?page=1&limit=10&status=published" \ -H "Authorization: Bearer YOUR_TOKEN" `
Exemple de réponse
`json { "data": [ { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "title": "Product Catalog 2026", "slug": "product-catalog-2026", "description": "Annual product catalog with pricing", "status": "published", "accessType": "public", "activeVersionNumber": 2, "thumbnailUrl": "https://cdn.zenflip.io/thumbs/a1b2c3d4.jpg", "publishedAt": "2026-01-20T09:00:00.000Z", "createdAt": "2026-01-15T10:30:00.000Z", "updatedAt": "2026-02-01T14:22:00.000Z" } ], "meta": { "total": 24, "page": 1, "limit": 10, "totalPages": 3 } } `
Créer une publication
Créez un nouvel enregistrement de publication. Après la création, téléchargez un PDF pour générer les pages du flipbook.
` POST /publications `
Rôle requis : editor ou supérieur.
Corps de la requête
Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Titre de la publication (1 à 200 caractères) |
| string | Non | Courte description de la publication |
Exemple de requête
`bash curl -X POST https://api.zenflip.io/v1/publications \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Q1 Sales Report", "description": "Quarterly sales performance flipbook" }' `
Exemple de réponse
`json { "data": { "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "title": "Q1 Sales Report", "slug": "q1-sales-report", "description": "Quarterly sales performance flipbook", "status": "draft", "accessType": "public", "activeVersionId": null, "activeVersionNumber": null, "settings": {}, "branding": null, "createdAt": "2026-02-20T12:00:00.000Z", "updatedAt": "2026-02-20T12:00:00.000Z" } } `
Télécharger un PDF
Téléchargez un fichier PDF pour créer une nouvelle version d'une publication. Le PDF est stocké dans S3 et une tâche de conversion en arrière-plan est mise en file d'attente pour générer les pages du flipbook.
` POST /uploads/publication/:pubId/pdf `
Rôle requis : editor ou supérieur. Taille maximale du fichier : 200 Mo. Seuls les fichiers PDF sont acceptés.
Exemple de requête
`bash curl -X POST "https://api.zenflip.io/v1/uploads/publication/b2c3d4e5-f6a7-8901-bcde-f12345678901/pdf" \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "file=@/path/to/report.pdf" `
Exemple de réponse
`json { "data": { "id": "c3d4e5f6-a7b8-9012-cdef-123456789012", "publicationId": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "versionNumber": 1, "pdfFilename": "report.pdf", "pdfSizeBytes": 4521984, "status": "uploaded" } } `
Le statut de la version progresse à travers : uploading -> uploaded -> converting -> ready (ou failed). Utilisez l'endpoint Obtenir une publication pour vérifier le statut de la version active.
Obtenir une publication
Récupérez une seule publication par son identifiant.
` GET /publications/:id `
Exemple de requête
`bash curl "https://api.zenflip.io/v1/publications/b2c3d4e5-f6a7-8901-bcde-f12345678901" \ -H "Authorization: Bearer YOUR_TOKEN" `
Exemple de réponse
`json { "data": { "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "title": "Q1 Sales Report", "slug": "q1-sales-report", "description": "Quarterly sales performance flipbook", "status": "published", "accessType": "public", "accessPassword": null, "activeVersionId": "c3d4e5f6-a7b8-9012-cdef-123456789012", "activeVersionNumber": 1, "settings": { "pageMode": "double", "toolbarVisible": true }, "branding": null, "leadCaptureEnabled": false, "thumbnailUrl": "https://cdn.zenflip.io/thumbs/b2c3d4e5.jpg", "publishedAt": "2026-02-20T14:00:00.000Z", "createdAt": "2026-02-20T12:00:00.000Z", "updatedAt": "2026-02-20T14:00:00.000Z" } } `
Mettre à jour une publication
Mettez à jour les métadonnées d'une publication.
` PATCH /publications/:id `
Rôle requis : editor ou supérieur.
Corps de la requête
Champ | Type | Requis | Description |
|---|---|---|---|
| string | Non | Titre de la publication (1 à 200 caractères) |
| string | Non | Courte description |
| string | Non | Slug adapté aux URL (1 à 200 caractères) |
Exemple de requête
`bash curl -X PATCH "https://api.zenflip.io/v1/publications/b2c3d4e5-f6a7-8901-bcde-f12345678901" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Q1 Sales Report - Updated", "slug": "q1-sales-report-2026" }' `
Mettre à jour les paramètres de publication
Mettez à jour les paramètres du lecteur pour une publication (mode de page, lecture automatique, visibilité de la barre d'outils, etc.).
` PATCH /publications/:id/settings `
Rôle requis : editor ou supérieur.
Exemple de requête
`bash curl -X PATCH "https://api.zenflip.io/v1/publications/b2c3d4e5.../settings" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "settings": { "autoPlay": true, "toolbarVisible": false, "pageMode": "double" } }' `
Mettre à jour la marque de la publication
Appliquez une marque personnalisée (logo, couleurs, polices) à une publication. Nécessite la fonctionnalité customBranding sur votre forfait.
` PATCH /publications/:id/branding `
Rôle requis : editor ou supérieur. Fonctionnalité de forfait requise : customBranding.
Exemple de requête
`bash curl -X PATCH "https://api.zenflip.io/v1/publications/b2c3d4e5.../branding" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "branding": { "logoUrl": "https://example.com/logo.png", "primaryColor": "#4F46E5", "fontFamily": "Inter" } }' `
Publier / Archiver
Modifiez le statut du cycle de vie de la publication :
`bash
Publier un brouillon
curl -X POST "https://api.zenflip.io/v1/publications/:id/publish" \ -H "Authorization: Bearer YOUR_TOKEN"
Archiver une publication
curl -X POST "https://api.zenflip.io/v1/publications/:id/archive" \ -H "Authorization: Bearer YOUR_TOKEN" `
Supprimer une publication
Supprimez définitivement une publication et toutes les données associées (versions, pages, analytics).
` DELETE /publications/:id `
Rôle requis : admin ou supérieur.
`bash curl -X DELETE "https://api.zenflip.io/v1/publications/b2c3d4e5-f6a7-8901-bcde-f12345678901" \ -H "Authorization: Bearer YOUR_TOKEN" `
Lister les versions
Récupérez toutes les versions d'une publication.
` GET /publications/:id/versions `
Exemple de réponse
`json { "data": [ { "id": "c3d4e5f6-a7b8-9012-cdef-123456789012", "versionNumber": 2, "pdfFilename": "report-v2.pdf", "pdfSizeBytes": 5120000, "pageCount": 24, "status": "ready", "conversionProgress": 100, "convertedAt": "2026-02-20T14:05:00.000Z", "createdAt": "2026-02-20T14:00:00.000Z" }, { "id": "d4e5f6a7-b8c9-0123-def0-234567890123", "versionNumber": 1, "pdfFilename": "report.pdf", "pdfSizeBytes": 4521984, "pageCount": 20, "status": "ready", "conversionProgress": 100, "convertedAt": "2026-02-20T12:10:00.000Z", "createdAt": "2026-02-20T12:00:00.000Z" } ] } `
Activer une version
Basculez la version active (en ligne) d'une publication vers une version précédemment téléchargée.
` POST /publications/:id/versions/:versionId/activate `
Rôle requis : editor ou supérieur.
Générer un QR code
Générez un QR code au format PNG qui renvoie vers le lecteur de la publication.
` GET /publications/:id/qr-code `
Retourne une image PNG de 512x512 directement (Content-Type : image/png).
`bash curl "https://api.zenflip.io/v1/publications/b2c3d4e5.../qr-code" \ -H "Authorization: Bearer YOUR_TOKEN" \ --output qr-code.png `
Endpoint du lecteur public
Récupérez les données de publication pour le lecteur flipbook public. Aucune authentification requise.
` GET /publications/public/:slug `
Cet endpoint est limité à 60 requêtes par minute par IP et retourne la publication avec les URL d'images de pages résolues pour le rendu dans le lecteur.