Getting started
Create a key from your profile.
Send it as a Bearer token.
Use public HTTPS URLs for media.
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/jsonGeneration
/api/studio/generateGenerates 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"
}
}
}'| Field | Required | Description |
|---|---|---|
| quick.text | Yes | 1–2,000 characters |
| quick.author | No | Up to 300 characters |
| quick.freeText | No | Up to 2,000 characters |
| quick.ratio | No | Any supported output ratio |
| quick.background | No | Solid, gradient, or public image |
| name | No | Name in My creations |
| record | No | Defaults 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
/api/collectionsLists collection metadata.
/api/collectionsCreates a collection and returns its ID.
/api/collections/{id}Returns a collection with every slide.
/api/collections/{id}Replaces the title and/or complete slide list.
/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": 5,
"transition": "slide",
"design": {
"snapshot": {
"quote": "Begin with one clear step.",
"ratio": "tiktok"
},
"imageUrl": "https://images.example.com/background.jpg",
"bgMode": "image"
}
}]
}'- Maximum 60 slides per collection.
durationSeconds: 1–30.transition:fade,slide,zoom,cut.- Titles are unique per user, ignoring case and redundant whitespace.
- A duplicate title returns HTTP 409 with collection_title_duplicate.
Reference
Available formats
square 1080×1080portrait 1080×1350landscape 1200×675instagramPost 1080×1080instagramStory 1080×1920tiktok 1080×1920facebook 1200×630x 1600×900pinterest 1000×1500linkedinPost 1200×1200linkedinBanner 1584×396youtube 1280×720customGeneration 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.
Errors
| HTTP | Error | Meaning |
|---|---|---|
| 400 | invalid_request | Malformed JSON |
| 401 | unauthorized | Missing, invalid, revoked, or regenerated key |
| 404 | not_found | Resource absent or owned by another user |
| 409 | collection_title_duplicate | Collection title already used |
| 422 | invalid_payload | Validation failed |
| 422 | invalid_video | Unavailable, private, invalid, or oversized source |
| 429 | rate_limit_exceeded | Request limit reached |
| 500 | render_failed | Media rendering failed |
| 503 | not_configured | Service configuration unavailable |
What’s new
2026-08-25
Safer collections and ZIP export
- 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.