Follow-up Actions
Overview
Derived actions that act on a previously completed job instead of a prompt.
Follow-up actions create a new job from a completed one. Instead of a
prompt, the request references a parentJobId — the action runs against the
parent's output (for example, upsampling one image out of a Midjourney grid).
They behave exactly like generation jobs otherwise: the endpoint returns
immediately with a jobId, credits are deducted at submission (and refunded
on failure), and the job moves through QUEUED → PROCESSING → COMPLETED | FAILED with the same polling and
webhook semantics.
Available actions
| Action | Endpoint | Acts on | Result | Credits |
|---|---|---|---|---|
| Midjourney Upsample | POST /v2/images/midjourney/action | 4-image grid | 1 image | 4 |
| Midjourney Variations | POST /v2/images/midjourney/action | 4-image grid | 4-image grid | 16 |
| Midjourney Inpaint | POST /v2/images/midjourney/action | upsampled image | 4-image grid | 16 |
| Midjourney Outpaint | POST /v2/images/midjourney/action | upsampled image | 4-image grid | 16 |
| Midjourney Pan | POST /v2/images/midjourney/action | upsampled image | 4-image grid | 16 |
| Suno Extend | POST /v2/music/suno/action | 1 of the parent's 2 tracks | 2 tracks | 11 |
| Suno Cover | POST /v2/music/suno/action | 1 of the parent's 2 tracks | 2 tracks | 11 |
| Suno Add Vocals | POST /v2/music/suno/action | 1 of the parent's 2 tracks | 2 tracks | 11 |
| Suno Stems | POST /v2/music/suno/action | 1 of the parent's 2 tracks | vocals + instrumental | 11 |
Parent job requirements
Every action validates its parent before any credits are deducted:
- The parent must belong to you (or your team, for admins) and have status
COMPLETED. - The parent must support the requested action. Jobs created before
follow-up actions were introduced return
409— generate a new image first. - The parent must be the right kind of job: upsample/variation act on a
4-image grid, inpaint/outpaint/pan act on a completed upsample, and the
Suno actions (extend/cover/add-vocals/stems) act on any completed
sunojob whose tracks are real Suno songs — a stems result cannot be acted on further (409). Mismatches return400; each action page lists its specifics.
Common request fields
| Field | Type | Required | Description |
|---|---|---|---|
parentJobId | string (uuid) | Yes | ID of the completed job to act on. |
action | string | Yes | Which action to run (see per-action pages). |
webhookUrl | string | No | HTTPS URL that receives a JSON POST when the job reaches a subscribed event — see Webhooks for payload formats. |
webhookEvents | string[] | No | Events to be notified about: "progress", "completed", "failed". Defaults to ["completed", "failed"] when webhookUrl is set. |
Actions also accept the Idempotency-Key header to prevent duplicate jobs
if the same request is sent twice.