Model IDs
A model ID has three segments,{vendor}/{model}/{operation}, such as
openai/gpt-image-2/generate or kling/o3-pro/reference-to-video:
- Vendor is the company that makes the model, not the provider that ZeroGen routes it through, so a change of provider doesn’t change the ID.
- Model names the model.
- Operation names what the model does. A model that does several things has one ID for each.
generate, edit, inpaint, remix,
outpaint, text-to-vector, text-to-video, image-to-video,
first-last-frame-to-video, reference-to-video, audio-to-video,
video-to-video, reference-video-to-video, extend-video, motion-control,
clean-plate, render-to-real, or hdr.
An ID stays the same across a vendor’s builds while its request schema stays
the same. Each generation reports the build that ran as modelVersion, or
null when the provider doesn’t name one. A price change keeps the ID. An ID
changes only when the request schema changes or the vendor ships a materially
different model, and ZeroGen never reuses an ID for another model.
List models
GET /v1/models lists the models your organization can run. It needs the
models:read scope.
limit and cursor as
described in Pagination:
Read the request schema
GET /v1/models/{vendor}/{model}/{operation} returns one model with
requestSchema: the JSON Schema (draft 2020-12) that a POST /v1/generations
body for this model must match. It needs the models:read scope.
The schema covers the whole request body, including projectId, folderId
and naming, which work the same for every model.
The generation request
Every model shares one request shape. The model’s request schema states which fields and values it accepts, and ZeroGen rejects unknown fields.
Input roles are
source, reference, face-reference, start-frame,
end-frame, and mask. Send face-reference for an image or video that shows
a real person, on models whose schema lists that role.
Quote a generation
POST /v1/generations/quote takes the same body as a create and runs the same
validation and pricing at your organization’s rates. It starts nothing and
holds nothing. It needs the generations:create scope.
quotedMicroUsd is the amount that a create with the same body would hold. A
quote imports its URL inputs into your Library, as a create does.
Deprecated models
ZeroGen marks a modeldeprecated before retiring it. A deprecated model keeps
working until its sunsetAt time. After that, requests that name it fail with
400 model_unavailable. A model that anyone used in the 90 days before its
retirement is deprecated at least 90 days ahead.
Responses that name a deprecated model carry two headers:
ZeroGen sends them on the model’s detail, and on creating, reading, quoting, or
cancelling a generation with that model:
operation, read the replacement’s
request schema, and update your requests before the sunset.