ApiframeApiframe Docs
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

ActionEndpointActs onResultCredits
Midjourney UpsamplePOST /v2/images/midjourney/action4-image grid1 image4
Midjourney VariationsPOST /v2/images/midjourney/action4-image grid4-image grid16
Midjourney InpaintPOST /v2/images/midjourney/actionupsampled image4-image grid16
Midjourney OutpaintPOST /v2/images/midjourney/actionupsampled image4-image grid16
Midjourney PanPOST /v2/images/midjourney/actionupsampled image4-image grid16
Suno ExtendPOST /v2/music/suno/action1 of the parent's 2 tracks2 tracks11
Suno CoverPOST /v2/music/suno/action1 of the parent's 2 tracks2 tracks11
Suno Add VocalsPOST /v2/music/suno/action1 of the parent's 2 tracks2 tracks11
Suno StemsPOST /v2/music/suno/action1 of the parent's 2 tracksvocals + instrumental11

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 suno job whose tracks are real Suno songs — a stems result cannot be acted on further (409). Mismatches return 400; each action page lists its specifics.

Common request fields

FieldTypeRequiredDescription
parentJobIdstring (uuid)YesID of the completed job to act on.
actionstringYesWhich action to run (see per-action pages).
webhookUrlstringNoHTTPS URL that receives a JSON POST when the job reaches a subscribed event — see Webhooks for payload formats.
webhookEventsstring[]NoEvents 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.

On this page