Thumbnails

Generate, edit, and analyze YouTube thumbnails, including channel-style composition, faces, and presets.

llms.txt Full docs for LLMs

POST /api/thumbnails

BETA Generate a YouTube thumbnail from a title and one or more reference thumbnails. The reference is vision-analysed and its design grammar is folded into an engineered prompt for your new title, then rendered. Returns a task_id immediately — poll /api/thumbnails/status/{task_id} for the image URLs. Costs 1 credit (or a flat 3 with fast: true), deducted upfront and refunded automatically if generation fails.

Private beta. Thumbnail generation is currently invite-only. Contact support to request access. Your API key must carry the generations scope.
Request Body (JSON)
NameTypeRequiredDefaultDescription
promptstringRequiredThe new video title to design the thumbnail for.
reference_urlsstring[]RequiredOne or more references — each a YouTube video URL, a bare 11-char video id, or a direct image URL. The first is used as the primary design reference. At least one is required.
modelstringOptionalnano-banana-proImage model. One of nano-banana-pro, nano-banana-2, seedream-5.0-lite, seedream-4.5-edit, gpt-image-2.
aspect_ratiostringOptional16:9Output aspect ratio (e.g. 16:9, 9:16, 1:1).
resolutionstringOptional2KOutput resolution (1K, 2K, or 4K).
reference_titlesobjectOptionalMap of reference_url → the reference video's original title, so the prompt knows why that thumbnail worked for that title.
find_outliers_firstbooleanOptionalfalseAuto-fetch up to 3 topically-similar outlier thumbnails to use as extra references (topic taken from outlier_topic or prompt).
custom_instructionsstringOptionalExtra art-direction appended to the engineered prompt with highest salience.
fastbooleanOptionalfalseFast mode — sub-30s renders on a dedicated queue with no fallback provider. Flat 3 credits per generation regardless of model.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt": "How I Built a $1M App in 30 Days", "reference_urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], "model": "nano-banana-pro"}'
Response 200 200
{ "success": true, "task_id": "a1b2c3d4-...", "state": "pending", "model": "nano-banana-pro", "credits_used": 1, "message": "Thumbnail generation queued. Poll /api/thumbnails/status/{task_id} for progress." }
200 Queued 400 Validation error 401 Auth failed 402 No credits 403 Beta access required 429 Too busy 502 Submit failed
POST /api/thumbnails/channel-style

BETA Generate a thumbnail in a specific channel's own design style. We resolve the channel, pull its top longform thumbnails, analyse them, pick the one whose design best fits your title, and recreate that treatment for your title (the channel's subjects never carry over — only its design language). Returns a task_id immediately — poll /api/thumbnails/status/{task_id} for the image. Costs 1 credit (or a flat 3 with fast: true), deducted upfront and refunded automatically on failure.

Private beta. Requires beta access and the generations scope. Contact support to request access. The compose step runs inline and can take 30–90 seconds before the task_id is returned.
Request Body (JSON)
NameTypeRequiredDefaultDescription
channelstringRequiredThe channel to borrow the style from — a UC channel id, @handle, or channel URL.
titlestringRequiredThe new video title to design the thumbnail for.
modelstringOptionalnano-banana-proImage model. One of nano-banana-pro, nano-banana-2, seedream-5.0-lite, seedream-4.5-edit, gpt-image-2.
custom_instructionsstringOptionalExtra art-direction applied on top of the matched channel style.
fastbooleanOptionalfalseFast mode — sub-30s renders on a dedicated queue with no fallback provider. Flat 3 credits per generation regardless of model.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/channel-style" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"channel": "@MrBeast", "title": "I Survived 50 Hours in the Arctic"}'
Response 200 200
{ "success": true, "task_id": "a1b2c3d4-...", "state": "pending", "model": "nano-banana-pro", "credits_used": 1, "matched_thumb_url": "https://i.ytimg.com/vi/.../maxresdefault.jpg", "match_reason": "..." }
200 Queued 400 Validation error 401 Auth failed 402 No credits 403 Beta access required 502 Compose/submit failed
POST /api/thumbnails/edit

BETA Edit an already-generated thumbnail with a plain-English instruction. The image goes back to the model as the canvas and only the requested change is applied — optional reference_urls are source material for the change ("insert THIS product"). Returns a task_id immediately — poll /api/thumbnails/status/{task_id} for the edited image. Costs 1 credit (or a flat 3 with fast: true), deducted upfront and refunded automatically on failure. Note: gpt-image-2 requests are served by nano-banana-pro for edits.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
base_image_urlstringRequiredDirect http(s) URL of the thumbnail to edit — typically an image URL returned by a previous generation.
instructionstringRequiredThe change to make, in plain English (e.g. "make the text yellow"). Max 2000 characters.
reference_urlsstring[]OptionalExtra images used as source material for the change (e.g. the product to insert). Each a YouTube video URL, a bare 11-char video id, or a direct image URL.
modelstringOptionalnano-banana-proImage model. One of nano-banana-pro, nano-banana-2, seedream-5.0-lite, seedream-4.5-edit, gpt-image-2. gpt-image-2 is auto-served by nano-banana-pro for edits.
aspect_ratiostringOptional16:9Output aspect ratio (e.g. 16:9, 9:16, 1:1).
resolutionstringOptional2KOutput resolution (1K, 2K, or 4K).
fastbooleanOptionalfalseFast mode — sub-30s renders on a dedicated queue with no fallback provider. Flat 3 credits per edit regardless of model.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/edit" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"base_image_url": "https://cdn.algrow.online/thumbnails/a1b2c3d4.png", "instruction": "make the text yellow"}'
Response 200 200
{ "success": true, "task_id": "a1b2c3d4-...", "state": "pending", "model": "nano-banana-pro", "credits_used": 1, "message": "Thumbnail edit queued. Poll /api/thumbnails/status/{task_id} for progress." }
200 Queued 400 Validation error 401 Auth failed 402 No credits 403 Beta access required 502 Submit failed
GET /api/thumbnails/models

BETA List the thumbnail models available to your account, their per-generation credit cost, and the fast-mode flat rate. Free — use this for capability discovery instead of hardcoding model names.

Example Request
curl "https://api.algrow.online/api/thumbnails/models" \ -H "Authorization: Bearer YOUR_API_KEY"
Response 200 200
{ "success": true, "default_model": "nano-banana-pro", "models": [ {"model": "nano-banana-pro", "label": "Nano Banana Pro", "requires_reference": false, "credit_cost": 1}, {"model": "seedream-4.5-edit", "label": "Seedream 4.5 Edit", "requires_reference": true, "credit_cost": 1} ], "fast_mode": {"param": "fast", "credit_cost": 3} }
200 OK 401 Auth failed 403 Beta access required
GET /api/thumbnails/status/:task_id

BETA Retrieve the status and result of a thumbnail generation. Poll every 2–3 seconds until state is success or fail. Typical generation time is 30–90 seconds. On a failure, the credits charged at submit are refunded automatically.

Path Parameters
NameTypeRequiredDescription
task_idstringRequiredThe task_id returned from POST /api/thumbnails.
Example Request
curl "https://api.algrow.online/api/thumbnails/status/a1b2c3d4-..." \ -H "Authorization: Bearer YOUR_API_KEY"
Response — Success
{ "success": true, "task_id": "a1b2c3d4-...", "state": "success", "images": ["https://...thumbnail.png"], "cost_time_ms": 42137 }
Response — Failed
{ "success": true, "task_id": "a1b2c3d4-...", "state": "fail", "error": "Generation failed" }
Response Fields
FieldTypeDescription
statestringGeneration state: a pending value (waiting/queuing/generating), success, or fail.
imagesstring[]Generated thumbnail URLs (only when state=success).
errorstringError description (only when state=fail).
200 Success 401 Auth failed 404 Not found
POST /api/thumbnails/outliers

BETA Find topically-similar, high-performing reference thumbnails for a topic. Free (a database lookup, no credits). Pass the returned thumbnail_url values straight into POST /api/thumbnails as reference_urls to build a thumbnail in a proven style.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
topicstringRequiredThe topic/niche to find outlier thumbnails for (e.g. minecraft survival).
content_typestringOptionallongformlongform or shorts.
limitintegerOptional12Number of results to return.
min_outlier_scorenumberOptional2.0Minimum outlier score (how far a video outperforms its channel baseline).
pageintegerOptional1Page number for pagination.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/outliers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"topic": "minecraft survival", "limit": 12}'
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/channel-videos

BETA Page through a channel's LONGFORM upload catalogue (shorts excluded) — newest first, 50 per page, each video with its thumbnail, title and view count, plus the channel's recent-median baseline (median_views) for outlier scoring (view_count / median_views). Free (1–2 YouTube quota units per page, no credits). Pick a thumbnail_url and pass it to POST /api/thumbnails as a reference.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
channelstringRequiredChannel @handle, URL, or UC id.
page_tokenstringOptionalnext_page_token from the previous response.
playlist_idstringOptionalplaylist_id from the previous response — page tokens are playlist-specific.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/channel-videos" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"channel": "@MrBeast"}'
200 Success 400 Validation error 401 Auth failed 403 Beta access required
GET /api/thumbnails/saved-channels

BETA List your saved channel styles (identity only — name, handle, avatar, channel id). The catalogue itself is always fetched live via POST /api/thumbnails/channel-videos. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Example Request
curl "https://api.algrow.online/api/thumbnails/saved-channels" \ -H "Authorization: Bearer YOUR_API_KEY"
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/saved-channels

BETA Save a channel style for one-click reuse. Snapshots the channel's name, handle and avatar (1 YouTube quota unit). Upserts by channel. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
channelstringRequiredChannel @handle, URL, or UC id.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/saved-channels" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"channel": "@MrBeast"}'
200 Success 400 Validation error 401 Auth failed 403 Beta access required
DELETE /api/thumbnails/saved-channels/{channel_id}

BETA Remove a channel from your saved styles. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Example Request
curl -X DELETE "https://api.algrow.online/api/thumbnails/saved-channels/UCX6OQ3DkcsbYNE6H8uQQuVA" \ -H "Authorization: Bearer YOUR_API_KEY"
200 Success 400 Validation error 401 Auth failed 403 Beta access required
GET /api/thumbnails/instruction-presets

BETA List your saved custom-instruction presets. Apply one by passing its instructions as custom_instructions to the compose/generate endpoints. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Example Request
curl "https://api.algrow.online/api/thumbnails/instruction-presets" \ -H "Authorization: Bearer YOUR_API_KEY"
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/instruction-presets

BETA Save (or update, by name) a reusable custom-instruction preset for thumbnail generation. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
namestringRequiredPreset name (max 60 chars). Saving an existing name updates it.
instructionsstringRequiredThe custom-instructions text (max 2000 chars).
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/instruction-presets" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "Dark moody", "instructions": "dark moody palette, dramatic rim light"}'
200 Success 400 Validation error 401 Auth failed 403 Beta access required
DELETE /api/thumbnails/instruction-presets/{preset_id}

BETA Delete a custom-instruction preset by id (from the list endpoint). Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Example Request
curl -X DELETE "https://api.algrow.online/api/thumbnails/instruction-presets/12" \ -H "Authorization: Bearer YOUR_API_KEY"
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/extract-video

BETA Resolve a YouTube URL or video ID to its title, channel, and max-resolution thumbnail. Free (no credits). Use the returned thumbnail_url as a reference for POST /api/thumbnails.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDescription
url_or_idstringRequiredA YouTube watch URL, short URL, or bare 11-character video id.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/extract-video" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url_or_id": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/analyze

BETA Vision-analyse a thumbnail image into a structured design breakdown (composition, palette, text, focal points). Free (no credits).

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDescription
image_urlstringRequiredPublic URL of the thumbnail image to analyse.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/analyze" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"image_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"}'
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/compose

BETA Engineer an image-gen prompt from a title + a single reference, without generating. Free, synchronous. Stateless — there is no style id; save the returned prompt and pass it to POST /api/thumbnails as final_prompt to render.

Private beta. Requires beta access and the generations scope. Two-step flow: compose → review/edit the prompt → POST /api/thumbnails with final_prompt.
Request Body (JSON)
NameTypeRequiredDescription
titlestringRequiredYour new video title.
reference_urlstringRequiredA YouTube URL, 11-char video id, or direct image URL.
reference_titlestringOptionalThe reference's original video title (improves mapping).
custom_instructionsstringOptionalExtra art-direction.
Response 200 200
{ "success": true, "prompt": "A cinematic close-up …", "reference_url": "https://i.ytimg.com/vi/…/maxresdefault.jpg" }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/compose-channel

BETA Channel-style compose without generating — resolve the channel, analyse its top thumbnails, match the best design to your title. Free, synchronous (~30–90s). Returns the engineered prompt + the channel's source_thumb_urls; pass both to POST /api/thumbnails (final_prompt + reference_urls) to render. Stateless.

Private beta. Requires beta access and the generations scope.
Request Body (JSON)
NameTypeRequiredDescription
channelstringRequiredUC channel id, @handle, or channel URL.
titlestringRequiredYour new video title.
custom_instructionsstringOptionalExtra art-direction.
Response 200 200
{ "success": true, "prompt": "…", "channel_id": "UC…", "matched_title": "…", "source_thumb_urls": ["https://…"] }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
GET /api/thumbnails/channel-presets

BETA List your saved per-channel thumbnail presets — instructions, subject face, style references, and generation defaults, saved together under a label. Returns the 50 most recent. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Example Request
curl "https://api.algrow.online/api/thumbnails/channel-presets" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{ "success": true, "presets": [ { "id": 12, "label": "Main channel", "instructions": "high contrast, single subject, no text", "face_url": "https://audio.algrow.online/studio/references/ab12/face.png", "channel_style_name": "Documentary", "style_reference_urls": ["https://i.ytimg.com/vi/abc123/maxresdefault.jpg"], "aspect_ratio": "16:9", "resolution": "2K", "model": "nano-banana-pro" } ] }
200 Success 401 Auth failed 403 Beta access required
POST /api/thumbnails/channel-presets

BETA Save a per-channel preset, or update an existing one by reusing its label. Only the fields you send are written; on update, everything you leave out keeps its current value. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
labelstringRequiredPreset label. Sending an existing label updates that preset.
instructionsstringOptionalCustom instructions applied to every render made with this preset.
face_urlstringOptionalURL of the subject face to reuse. Takes precedence over face_image_b64.
face_image_b64stringOptionalBase64 face image (raw or a data: URL). Uploaded to storage and saved as face_url when no face_url is given.
content_typestringOptionalimage/pngMIME type for face_image_b64.
channel_style_idstringOptionalSaved channel-style id to render in.
channel_style_namestringOptionalDisplay name for the channel style.
style_reference_urlsarrayOptionalReference thumbnail URLs that define the look.
aspect_ratiostringOptionalDefault aspect ratio for renders, e.g. 16:9.
resolutionstringOptionalDefault resolution, e.g. 2K.
modelstringOptionalDefault image model.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/channel-presets" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"label": "Main channel", "instructions": "high contrast, single subject, no text", "aspect_ratio": "16:9"}'
Example Response
{ "success": true, "preset": {"id": 12, "label": "Main channel", "instructions": "high contrast, single subject, no text", "aspect_ratio": "16:9"} }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
DELETE /api/thumbnails/channel-presets/{preset_id}

BETA Delete a per-channel preset by id (from the list endpoint). Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Example Request
curl -X DELETE "https://api.algrow.online/api/thumbnails/channel-presets/12" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{ "success": true, "deleted": true }
200 Success 400 Invalid preset id 401 Auth failed 403 Beta access required
POST /api/thumbnails/detect-people

BETA Check whether a reference image contains a person, so you can offer to swap in a real face before rendering. Cheaper and faster than a full analysis, and cached per image for six hours. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
image_urlstringRequiredReference image URL. YouTube thumbnail URLs and Algrow-hosted references both work.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/detect-people" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"image_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"}'
Example Response
{ "success": true, "has_person": true, "people": [{"description": "man, centre frame, facing camera"}], "cached": false }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/crop-reference

BETA Crop a region out of a reference image and store it as a character reference. The crop happens server-side, so it works on images a browser canvas is not allowed to read back. Returns a hosted URL you can pass straight to generation as a character reference. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
image_urlstringRequiredImage to crop.
cropobjectRequiredCrop rectangle in normalized coordinates relative to the image's natural size: {"x": 0.2, "y": 0.1, "w": 0.3, "h": 0.4}, each between 0 and 1.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/crop-reference" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"image_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "crop": {"x": 0.2, "y": 0.1, "w": 0.3, "h": 0.4}}'
Example Response
{ "success": true, "url": "https://audio.algrow.online/studio/references/ab12cd34/crop-9f2a.png" }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/search-faces

BETA Search the web for photos of a named person so you can use one as a character reference. Pass the chosen photo through /api/thumbnails/import-face before rendering — some image hosts block our downloader. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
querystringRequiredPerson to search for. Trimmed to 120 characters.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/search-faces" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "Serena Williams"}'
Example Response
{ "success": true, "results": [ { "thumb": "https://example.com/thumb.jpg", "full": "https://example.com/full.jpg", "title": "Serena Williams in 2025", "source": "example.com" } ] }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/import-face

BETA Copy an external face photo into Algrow storage and return a stable URL the render pipeline can always fetch. Run every search result through this before using it as a reference. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
image_urlstringRequiredImage to import.
fallback_urlstringOptionalSecond URL to try when the first host blocks the download — e.g. the search result's thumbnail.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/import-face" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"image_url": "https://example.com/full.jpg", "fallback_url": "https://example.com/thumb.jpg"}'
Example Response
{ "success": true, "url": "https://audio.algrow.online/studio/references/ab12cd34/face-search-7c1e.png" }
200 Success 400 Download blocked / validation error 401 Auth failed 403 Beta access required
POST /api/thumbnails/swap-face

BETA Put a real face onto a thumbnail you already rendered. Queues like any other generation and returns a task_id to poll. Costs 1 credit, or 3 with fast enabled.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
base_image_urlstringRequiredThe rendered thumbnail to edit.
face_urlstringRequiredFace to place on it. Use an Algrow-hosted URL from /api/thumbnails/import-face or /api/thumbnails/crop-reference.
modelstringOptionalnano-banana-proImage model used for the swap.
aspect_ratiostringOptional16:9Output aspect ratio.
resolutionstringOptional2KOutput resolution.
fastbooleanOptionalfalsePrioritised render. Costs 3 credits instead of 1.
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/swap-face" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"base_image_url": "https://audio.algrow.online/studio/images/ab12/render.png", "face_url": "https://audio.algrow.online/studio/references/ab12/face.png"}'
Example Response
{ "success": true, "task_id": "tsk_9f2a41c8", "state": "pending", "fast": false, "credits_used": 1, "message": "Face swap queued. Poll /api/thumbnails/status/{task_id} for progress." }
Poll GET /api/thumbnails/status/{task_id} for the finished image. Credits are refunded automatically if the swap fails.
200 Queued 400 Validation error 401 Auth failed 402 Insufficient credits 403 Beta access required 429 Concurrent job limit 502 Face swap failed
POST /api/thumbnails/feedback

BETA Record a thumbs up or down on a generated thumbnail, with an optional comment. Sending the same task_id again updates the existing rating. Free.

Private beta. Requires beta access and the generations scope. Contact support to request access.
Request Body (JSON)
NameTypeRequiredDefaultDescription
ratingstringRequiredup or down.
task_idstringOptionalTask id of the generation being rated. Rating the same task again updates it.
image_urlstringOptionalURL of the rated image, when you don't have the task id.
feedbackstringOptionalFree-text comment (max 2,000 characters).
Example Request
curl -X POST "https://api.algrow.online/api/thumbnails/feedback" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"task_id": "tsk_9f2a41c8", "rating": "down", "feedback": "face came out blurry"}'
Example Response
{ "success": true }
200 Success 400 Validation error 401 Auth failed 403 Beta access required
esc
×

Buy More Credits

Boost
150
credits
$4.99
Good for:
  • ~12 min caption removal
Studio
1,000
credits
$31.49
Good for:
  • ~80 min caption removal