Aller au contenu
API v1 · ProductionDernière mise à jour : 25 août 2026

Documentation API

Générez des visuels PNG ou MP4 et pilotez vos collections QuickQuoteMaker depuis vos propres outils.

Démarrage

01

Créez une clé depuis votre profil.

02

Envoyez-la comme Bearer token.

03

Utilisez uniquement des URL HTTPS publiques pour les médias.

Une clé n’est affichée qu’une seule fois. Ne l’intégrez jamais dans du JavaScript côté navigateur et révoquez-la immédiatement si elle est exposée.

Authentification

Tous les endpoints publics documentés ici acceptent la même clé. Les ressources sont toujours limitées au propriétaire authentifié.

Authorization: Bearer qqm_live_REPLACE_WITH_YOUR_KEY
Content-Type: application/json

Génération

POST/api/studio/generate

Génère un PNG ou un MP4 hébergé et peut l’ajouter à Mes créations.

Limite spécifique : 20 requêtes par minute.

Mode rapide

Le mode quick couvre les paramètres courants sans envoyer un snapshot complet du Studio.

curl --request POST "https://www.quickquotemaker.com/api/studio/generate" \
  --header "Authorization: Bearer qqm_live_REPLACE_WITH_YOUR_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "mode": "quick",
    "name": "Daily inspiration",
    "quick": {
      "text": "The future depends on what you do today.",
      "author": "Mahatma Gandhi",
      "ratio": "instagramPost",
      "fontFamily": "Playfair Display",
      "textColor": "#ffffff",
      "align": "center",
      "quoteMark": "curly",
      "bold": true,
      "background": {
        "type": "gradient",
        "from": "#0f172a",
        "to": "#2563eb"
      }
    }
  }'
FieldRequiredDescription
quick.textYes1–2,000 characters
quick.authorNoUp to 300 characters
quick.freeTextNoUp to 2,000 characters
quick.ratioNoAny supported output ratio
quick.backgroundNoSolid, gradient, or public image
nameNoName in My creations
recordNoDefaults to true

Mode snapshot

Le mode snapshot accepte le design complet du Quote Studio : typographie distincte des trois textes, arrière-plan, filtres, overlay, bordure, ombres, boîtes de texte, transformations, positions et watermarks.

{
  "mode": "snapshot",
  "name": "Story campaign",
  "design": {
    "quote": "Build something worth sharing.",
    "author": "QuickQuoteMaker",
    "freeText": "@yourbrand",
    "ratio": "tiktok",
    "bgMode": "image",
    "overlayOn": true,
    "overlayColor": "#020617",
    "overlayOpacity": 45,
    "fontFamily": "Comfortaa",
    "fontSize": 68,
    "textColor": "#ffffff",
    "align": "center",
    "bold": true,
    "watermarkTextOn": true,
    "watermarkText": "quickquotemaker.com"
  },
  "backgroundUrl": "https://images.example.com/background.jpg",
  "record": true
}

backgroundUrl remplace l’image définie dans design. Les champs omis utilisent les valeurs par défaut normalisées du Studio.

Arrière-plan vidéo

Une URL vidéo HTTPS publique produit un MP4 silencieux avec le texte, les filtres, l’overlay, les watermarks et la bordure du Studio.

{
  "mode": "snapshot",
  "design": {
    "quote": "Motion makes the message visible.",
    "author": "QuickQuoteMaker",
    "ratio": "instagramStory",
    "bgMode": "video"
  },
  "videoUrl": "https://cdn.example.com/background.mp4",
  "durationSeconds": 8,
  "record": true
}
  • Vidéo source : 50 Mo maximum.
  • Durée : de 2 à 15 secondes, 6 secondes par défaut.
  • videoUrl remplace les autres arrière-plans.
  • La sortie ne contient aucune piste audio.

Collections

GET/api/collections

Liste les métadonnées des collections.

POST/api/collections

Crée une collection et retourne son identifiant.

GET/api/collections/{id}

Retourne une collection avec toutes ses slides.

PATCH/api/collections/{id}

Remplace le titre et/ou la liste complète des slides.

DELETE/api/collections/{id}

Supprime définitivement une collection.

curl --request POST "https://www.quickquotemaker.com/api/collections" \
  --header "Authorization: Bearer qqm_live_REPLACE_WITH_YOUR_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "title": "Daily inspiration",
    "slides": [{
      "id": "slide-1",
      "durationSeconds": 2.5,
      "transition": "slide",
      "design": {
        "snapshot": {
          "quote": "Begin with one clear step.",
          "ratio": "tiktok"
        },
        "videoUrl": "https://cdn.example.com/background.mp4",
        "posterUrl": "https://cdn.example.com/poster.jpg",
        "startSeconds": 1.5,
        "marker": false,
        "bgMode": "video"
      }
    }]
  }'
  • 60 slides maximum par collection.
  • durationSeconds: 1–30. Les valeurs fractionnaires sont acceptées, par exemple 2.5.
  • transition: fade, slide, zoom, cut.
  • design.bgMode: gradient, solid, image, video.
  • Fond vidéo : renseignez design.videoUrl et design.posterUrl.
  • design.startSeconds: 0–3600. Décale le début du clip pour éviter une ouverture faible. Ignoré hors fond vidéo.
  • design.marker: booléen. Marque une carte d’interruption (TOP 10, TOP 5) : son titre entre avec un zoom plus marqué que les autres slides.
  • Les titres sont uniques par utilisateur, sans distinction de casse ou d’espaces superflus.
  • Un titre dupliqué retourne HTTP 409 avec collection_title_duplicate.
Preview, Export MP4 et Download ZIP sont actuellement exécutés dans le navigateur depuis Quote Studio. L’API Collections stocke les slides mais ne fournit pas encore d’endpoint ZIP ou MP4 pour une collection.

Référence

Formats disponibles

square 1080×1080portrait 1080×1350landscape 1200×675instagramPost 1080×1080instagramPortrait 1080×1440instagramStory 1440×2560instagramLandscape 1080×566tiktok 1080×1920tiktokSquare 1080×1080facebook 1440×1800facebookSquare 1440×1440facebookStory 1440×2560x 1920×1080xSquare 1080×1080pinterest 1000×1500pinterestSquare 1000×1000linkedinPost 1200×675linkedinSquare 1200×1200linkedinPortrait 720×900linkedinBanner 1584×396youtube 1080×1080youtubeBanner 2560×1440custom

Réponse de génération

{
  "id": "f3f0ea51-086d-4bc2-8f63-5c63e73db902",
  "url": "https://PROJECT.supabase.co/storage/v1/object/public/downloaded-images/ID.png",
  "width": 1080,
  "height": 1080,
  "format": "PNG"
}

Limitation globale

Les réponses limitées utilisent HTTP 429 et fournissent Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset.

Point d’accèsLimite
POST /api/studio/generate20 / min
GET · POST /api/collections30 / min
GET · PATCH /api/collections/{id}60 / min
DELETE /api/collections/{id}30 / min

Erreurs

HTTPErrorMeaning
400invalid_requestMalformed JSON
401unauthorizedMissing, invalid, revoked, or regenerated key
404not_foundResource absent or owned by another user
409collection_title_duplicateCollection title already used
422invalid_payloadValidation failed
422invalid_videoUnavailable, private, invalid, or oversized source
429rate_limit_exceededRequest limit reached
500render_failedMedia rendering failed
503not_configuredService configuration unavailable

En production, les réponses d’erreur ne contiennent que le champ error. Les détails internes (message, code et hint de la base de données) sont retirés et restent uniquement dans les journaux serveur.

Nouveautés

2026-08-26

Sécurité et limites détaillées

  • Les réponses d’erreur ne divulguent plus de détails de base de données en production.
  • Les limites de débit sont désormais documentées point d’accès par point d’accès.
  • L’envoi vers la galerie exige une session et se limite désormais par utilisateur plutôt que par adresse IP.
  • Les points d’accès d’authentification sont protégés contre la force brute et les sessions expirent après 8 heures.

2026-08-25

Collections plus sûres et export ZIP

  • Le nouveau menu Emoji propose une bibliothèque d’icônes, d’emojis et de formes ajoutables, déplaçables et personnalisables sur le canvas.
  • L’inspecteur Position et dimensions du canvas apparaît uniquement lorsqu’un objet est sélectionné.
  • Les filigranes texte et social sont désormais modifiables directement sur le canvas, par double-clic ou avec le bouton crayon.
  • Undo/redo dispose maintenant d’un historique complet de la session, navigable par étape, avec restauration des arrière-plans et raccourcis clavier.
  • Quote Studio propose désormais grilles, règles, guides d’alignement, magnétisme, marges et largeur de texte personnalisables, ainsi qu’un inspecteur numérique X/Y/L/H.
  • Le menu Format peut afficher les zones de sécurité et une simulation de l’interface pour chaque plateforme sociale, sans les inclure dans les exports.
  • La citation, l’auteur et le texte libre sont modifiables directement sur le canvas du Quote Studio.
  • Les titres de collection dupliqués sont refusés côté Studio et API.
  • Le code d’erreur collection_title_duplicate est documenté.
  • Quote Studio peut télécharger les slides d’une collection dans un ZIP de PNG ordonnés.
  • Une confirmation précède désormais toute suppression depuis Quote Studio ou le profil.

2026-08-24

Collections vidéo

  • Transitions fade, slide, zoom et cut.
  • Durée de slide de 1 à 30 secondes et jusqu’à 60 slides.
  • Génération d’images PNG et de vidéos MP4 avec arrière-plan distant.