Démarrage rapide
Exportez votre clé API dans une variable d'environnement et vérifiez-la avec l'endpoint du compte.
URL de base
https://coloringbookify.com/api/v1
export COLORINGBOOKIFY_API_KEY="cbf_your_api_key"
curl --fail-with-body \
--header "Authorization: Bearer $COLORINGBOOKIFY_API_KEY" \
https://coloringbookify.com/api/v1/me
curl --fail-with-body \
--request POST \
--header "Authorization: Bearer $COLORINGBOOKIFY_API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: page-$(uuidgen)" \
--data '{"page":{"title":"A fox exploring a mushroom village"}}' \
https://coloringbookify.com/api/v1/pages
MCP pour les agents IA
MCPUtilisez MCP lorsqu'un agent IA doit planifier, générer, organiser et télécharger un livre de coloriage imprimable complet pour le compte connecté. Utilisez l'API REST pour les intégrations directes entre applications.
URL du serveur MCP
https://coloringbookify.com/mcp
Configurez cette URL comme serveur Streamable HTTP. Les clients compatibles découvrent automatiquement les métadonnées OAuth de ColoringBookify.
Se connecter avec Codex CLI
codex mcp add coloringbookify \
--url https://coloringbookify.com/mcp
codex mcp login coloringbookify
Le navigateur ouvre ColoringBookify pour la connexion et le consentement. MCP utilise OAuth plutôt que des clés API et nécessite un forfait Business actif.
Les clients utilisent tools/list pour découvrir les noms, schémas d'entrée et descriptions actuels. Le catalogue couvre les comptes, formats d'impression, plans de livres, livres, personnages, pages, opérations, imports d'illustrations externes, images et PDF finaux.
Les outils en lecture seule coûtent 0 crédit. Les outils de génération déclarent leur coût exact et exigent que l'agent confirme ce montant avant de dépenser des crédits. MCP utilise le même solde que l'API REST.
Les outils d'image et de PDF renvoient des URL de téléchargement temporaires autorisées pour le propriétaire, afin que les agents récupèrent les fichiers binaires sans transporter de grandes charges base64.
Exemple de demande pour un agent
Crée un livre de coloriage de 8,5 × 11 pouces sur les animaux marins. Montre-moi le plan proposé et le coût exact en crédits avant la génération, puis crée le livre et télécharge le PDF final.
Authentification
Créez une clé pour le compte depuis la section API, puis envoyez-la dans l'en-tête Authorization comme jeton Bearer. Les cookies de session du navigateur n'authentifient pas les requêtes API.
Crédits et en-têtes de réponse
Chaque réponse authentifiée indique le solde après la requête et les crédits réellement consommés par cet appel HTTP. Le tableau des endpoints et le champ OpenAPI x-credit-cost déclarent les coûts avant utilisation.
X-ColoringBookify-Credits-Available: 247
X-ColoringBookify-Credits-Consumed: 1
Une répétition idempotente indique zéro crédit consommé, car elle ne facture pas de nouveau, tandis que l'opération conserve le montant initialement facturé.
De l'idée au livre imprimable
Les plans restent côté client. Cela évite les brouillons serveur obsolètes et garde l'utilisateur aux commandes avant toute dépense de crédits.
- Créez un plan non persistant avec POST /book_plans et affichez les scènes ainsi que l'estimation exacte des crédits.
- Laissez l'utilisateur vérifier ou modifier generation_request, puis envoyez-la à POST /books avec une nouvelle clé d'idempotence.
- Interrogez l'opération jusqu'à son état final. Importez ou remplacez une illustration corrigée à l'extérieur si nécessaire.
- Appelez GET /print_formats, puis téléchargez le livre complet depuis GET /books/{id}/pdf.
Génération, nouvelles tentatives et opérations
Envoyez un en-tête Idempotency-Key unique avec chaque requête de génération. Réessayer la même méthode, le même chemin et le même contenu avec la même clé renvoie la réponse initiale sans nouvelle génération ni facturation ; la réutiliser pour une autre requête renvoie 409.
La génération renvoie 202 avec une ressource et une opération. Interrogez l'URL de l'opération jusqu'à l'état succeeded, partially_succeeded ou failed. Les réponses non terminales incluent Retry-After.
Proportions de page et formats PDF
Appelez GET /api/v1/print_formats au lieu de coder les tailles en dur. Le format PDF doit correspondre à la proportion du livre ; les images importées sont normalisées sans recadrage lorsqu'un léger ajustement suffit.
| Proportion du livre | Pixels d'image recommandés | Formats PDF recommandés |
|---|---|---|
square (1:1) | 1024 × 1024 | square, small_square |
portrait (3:4) | 1152 × 1536 | us_letter, a4 |
landscape (4:3) | 1536 × 1152 | us_letter_landscape, a4_landscape |
Endpoints
Consulter, créer, modifier, générer, organiser et supprimer les ressources du compte authentifié.
| Méthode | Chemin | Crédits | Description |
|---|---|---|---|
| GET | /api/v1/me |
0 | Obtenir le forfait, les crédits et les capacités API du compte. |
| GET | /api/v1/print_formats |
0 | Lister les formats PDF, proportions compatibles et dimensions d'image recommandées. |
| POST | /api/v1/book_plans |
0 | Créer un plan modifiable non persistant, une estimation exacte des crédits et une requête prête à générer. |
| GET | /api/v1/operations |
0 | Lister les opérations de génération asynchrones du compte. |
| GET | /api/v1/operations/{id} |
0 | Consulter l'état, la progression et le résultat des crédits d'une opération. |
| GET | /api/v1/characters |
0 | Lister les personnages réutilisables actifs du compte. |
| POST | /api/v1/characters |
1 | Créer et générer un personnage réutilisable de façon asynchrone. |
| GET | /api/v1/characters/{id} |
0 | Obtenir un personnage réutilisable actif du compte. |
| PATCH | /api/v1/characters/{id} |
0 | Mettre à jour le nom ou l'aperçu public d'un personnage. |
| PUT | /api/v1/characters/{id} |
0 | Mettre à jour le nom ou l'aperçu public d'un personnage. |
| DELETE | /api/v1/characters/{id} |
0 | Archiver un personnage réutilisable du compte. |
| GET | /api/v1/characters/{id}/reference_image |
0 | Télécharger l'image de référence générée et autorisée du personnage. |
| POST | /api/v1/characters/{id}/regenerate |
1 | Régénérer un personnage réutilisable de façon asynchrone. |
| POST | /api/v1/characters/{id}/restore |
0 | Restaurer un personnage réutilisable archivé. |
| GET | /api/v1/books |
0 | Lister les livres du compte. |
| POST | /api/v1/books |
1 par page de contenu générée | Créer un livre et générer ses pages et sa couverture de façon asynchrone. |
| GET | /api/v1/books/{id} |
0 | Obtenir un livre du compte avec le résumé de ses pages ordonnées. |
| PATCH | /api/v1/books/{id} |
0 | Mettre à jour les métadonnées et les personnages réutilisables d'un livre. |
| PUT | /api/v1/books/{id} |
0 | Mettre à jour les métadonnées et les personnages réutilisables d'un livre. |
| DELETE | /api/v1/books/{id} |
0 | Supprimer un livre du compte. |
| GET | /api/v1/books/{id}/pdf |
0 | Générer et télécharger un PDF final standard lorsque toutes les pages incluses sont prêtes. |
| POST | /api/v1/books/{book_id}/pages |
0 joindre / 1 générer | Générer une nouvelle page ou joindre une page existante prête à un livre. |
| DELETE | /api/v1/books/{book_id}/pages/{id} |
0 | Détacher une page d'un livre sans supprimer la page. |
| PATCH | /api/v1/books/{id}/pages/order |
0 | Remplacer l'ordre des pages d'un livre. |
| GET | /api/v1/pages |
0 | Lister les pages du compte. |
| POST | /api/v1/pages |
1 | Créer et générer une page indépendante de façon asynchrone. |
| POST | /api/v1/pages/import |
0 | Importer une illustration externe terminée comme page indépendante prête. |
| GET | /api/v1/pages/{id} |
0 | Obtenir une page du compte. |
| PATCH | /api/v1/pages/{id} |
0 | Mettre à jour les métadonnées et les personnages réutilisables d'une page. |
| PUT | /api/v1/pages/{id} |
0 | Mettre à jour les métadonnées et les personnages réutilisables d'une page. |
| DELETE | /api/v1/pages/{id} |
0 | Supprimer une page du compte. |
| GET | /api/v1/pages/{id}/image |
0 | Télécharger l'image générée et autorisée de la page. |
| PUT | /api/v1/pages/{id}/image |
0 | Remplacer l'image d'une page par une illustration externe terminée sans génération IA. |
| POST | /api/v1/pages/{id}/regenerate |
1 | Régénérer une page du compte de façon asynchrone. |
Pagination
Les endpoints de liste acceptent une limite de 1 à 100, 25 par défaut, et un curseur after opaque renvoyé dans meta.next_cursor. Traitez les identifiants de ressources et les curseurs comme des chaînes opaques.
curl --get https://coloringbookify.com/api/v1/pages \
--header "Authorization: Bearer $COLORINGBOOKIFY_API_KEY" \
--data-urlencode "limit=25" \
--data-urlencode "after=next_cursor_value"
Réponses et erreurs
Les erreurs JSON utilisent une enveloppe stable avec un code lisible par machine, un message sûr et l'identifiant de la requête. Les réponses incluent la version de l'API et ne sont jamais mises en cache publiquement.
{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"request_id": "request-id"
}
}
- 400
- Pagination ou paramètres de requête non valides.
- 401
- Le jeton Bearer est absent ou non valide.
- 402
- Le compte ne dispose pas d'assez de crédits pour la génération.
- 403
- Le compte ne dispose pas actuellement d'un forfait Business actif.
- 404
- La ressource n'existe pas ou n'appartient pas au compte.
- 409
- La clé d'idempotence est en conflit avec une autre requête ou une génération est déjà active.
- 422
- La requête échoue à la validation ou une limite du compte est atteinte.
- 429
- Trop de requêtes de planification ont été effectuées en peu de temps.
- 503
- La planification de livres est temporairement indisponible.
Sécurité et portée actuelle
- Toutes les réponses API utilisent Cache-Control private, no-store.
- La propriété est vérifiée à nouveau à chaque téléchargement d'image.
- Les images sources et les URL de stockage permanentes ne sont jamais exposées.
- Les détails d'exception du fournisseur et les URL internes sont omis des erreurs.
Les endpoints de génération exigent des clés d'idempotence, enregistrent des transactions de crédits immuables et n'exposent que des erreurs d'opération sûres.