Talk to us Generate image
GeneratorPromptsPlatformAbout usContact Generate image

Generative imaging as one API call

A predictable REST surface: submit a job, stream previews while the full-resolution frame finishes, and take delivery by webhook or poll. Same pipeline, same safety layer and same privacy guarantee as Studio.

Endpoints

Every generation route returns a job id first. Nothing blocks for the length of a render.

EndpointDoesReturns
POST /v1/imagesGenerate from a prompt, style family and ratioJob id, then streamed previews
POST /v1/editsInpaint, outpaint or erase within an existing frameJob id, then the edited frame
POST /v1/variationsRe-roll around a chosen seedJob id, then n variations
POST /v1/upscaleDetail-recovery pass to 4KJob id, then the upscaled asset
GET /v1/jobs/:idPoll a job when you would rather not hold a streamStatus and asset URLs
POST /v1/finetunesTrain a brand adapter from a reference setAdapter id and training status

Webhooks

Rather than hold a stream, register a URL and we post the finished job to it. Every delivery is signed, and retried with backoff for 24 hours until you return 2xx.

POST your-endpoint

Verify X-Metabob-Signature against your signing secret before trusting a payload. Deliveries are idempotent — the same id may arrive twice.

Errors and limits

Errors are boring on purpose: a stable code, a message that names the offending field, and a request id to quote at us.

StatusCodeMeans
400invalid_requestA field is missing or malformed. The message names the field.
401unauthorizedMissing or revoked key.
402quota_exhaustedPlan allowance spent for the period.
422policy_violationThe prompt or reference failed the safety screen.
429rate_limitedToo many concurrent jobs. Retry-After tells you when.
500internalOurs. Retry with the same idempotency key — it will not double-charge.

Build it into your own product