Skip to content
API v1 · ProductionLast updated: August 25, 2026

API Documentation

Generate PNG or MP4 visuals and manage QuickQuoteMaker collections from your own tools.

Getting started

01

Create a key from your profile.

02

Send it as a Bearer token.

03

Use public HTTPS URLs for media.

A key is shown only once. Never embed it in browser-side JavaScript, and revoke it immediately if it is exposed.

Authentication

Every documented public endpoint accepts the same key. Resources are always scoped to the authenticated owner.

Authorization: Bearer qqm_live_REPLACE_WITH_YOUR_KEY
Content-Type: application/json

Generation

POST/api/studio/generate

Generates a hosted PNG or MP4 and can add it to My creations.

Endpoint limit: 20 requests per minute.

Quick mode

Quick mode covers common settings without requiring a complete Studio snapshot.

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

Snapshot mode

Snapshot mode accepts the complete Quote Studio design: independent typography for all three text areas, background, filters, overlay, border, shadows, text boxes, transforms, positions, and 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 overrides the image in design. Omitted fields use the Studio’s normalized defaults.

Video background

A public HTTPS video URL produces a silent MP4 with Studio text, filters, overlay, watermarks, and border.

{
  "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
}
  • Source video: 50 MB maximum.
  • Duration: 2–15 seconds, default 6 seconds.
  • videoUrl overrides every other background.
  • The output contains no audio track.

Collections

GET/api/collections

Lists collection metadata.

POST/api/collections

Creates a collection and returns its ID.

GET/api/collections/{id}

Returns a collection with every slide.

PATCH/api/collections/{id}

Replaces the title and/or complete slide list.

DELETE/api/collections/{id}

Permanently deletes a 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"
      }
    }]
  }'
  • Maximum 60 slides per collection.
  • durationSeconds: 1–30. Fractional values are accepted, for example 2.5.
  • transition: fade, slide, zoom, cut.
  • design.bgMode: gradient, solid, image, video.
  • Video background: set design.videoUrl and design.posterUrl.
  • design.startSeconds: 0–3600. Offsets where the clip starts, to skip a weak opening. Ignored unless the background is a video.
  • design.marker: boolean. Flags a pattern-interrupt card (TOP 10, TOP 5): its title punches in harder than a normal slide.
  • Titles are unique per user, ignoring case and redundant whitespace.
  • A duplicate title returns HTTP 409 with collection_title_duplicate.
Preview, Export MP4, and Download ZIP currently run in the browser from Quote Studio. The Collections API stores slides but does not yet expose a collection ZIP or MP4 endpoint.

Reference

Available formats

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

Generation response

{
  "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"
}

Global rate limiting

Limited responses use HTTP 429 and include Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

EndpointLimit
POST /api/studio/generate20 / min
GET · POST /api/collections30 / min
GET · PATCH /api/collections/{id}60 / min
DELETE /api/collections/{id}30 / min

Errors

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

In production, error responses only carry the error field. Internal details (database message, code, and hint) are stripped and stay in the server logs.

What’s new

2026-08-26

Security and documented limits

  • Error responses no longer leak database details in production.
  • Rate limits are now documented endpoint by endpoint.
  • Gallery submission now requires a session and is rate limited per user instead of per IP address.
  • Authentication endpoints are protected against brute force and sessions expire after 8 hours.

2026-08-25

Safer collections and ZIP export

  • The new Emoji menu provides icons, emojis, and shapes that can be added, moved, and customized on the canvas.
  • The canvas Position and dimensions inspector now appears only when an object is selected.
  • Text and social watermarks can now be edited directly on the canvas by double-clicking or using the pencil button.
  • Undo/redo now provides complete, step-by-step session history with background restoration and keyboard shortcuts.
  • Quote Studio now includes grids, rulers, alignment guides, snapping, customizable margins and text width, plus a numeric X/Y/W/H inspector.
  • The Format menu can preview safe zones and simulated interface controls for each social platform without including them in exports.
  • The quote, author, and free text can now be edited directly on the Quote Studio canvas.
  • Duplicate collection titles are rejected by both Studio and API.
  • The collection_title_duplicate error is now documented.
  • Quote Studio can download collection slides as an ordered ZIP of PNG files.
  • Collection deletion now requires confirmation in Quote Studio and Profile.

2026-08-24

Video collections

  • Fade, slide, zoom, and cut transitions.
  • Slide duration from 1 to 30 seconds and up to 60 slides.
  • PNG generation and MP4 generation from remote video backgrounds.