Skip to main content
POST /v3/images is a deterministic, provider-agnostic image endpoint. You pass a model and a prompt; Opper runs the job and returns the image inline. The same call works across every image model (OpenAI GPT Image, Google Imagen, xAI, Pruna, and more) — model and prompt are owned by Opper, a small set of high-level parameters is normalized for you, and anything model-specific goes in parameters.
Image generation is synchronous: the response comes back on the same request with the image as base64 (and, by default, a stored file_id + presigned url). For looking at images instead of making them, see Vision & PDFs.

Generate an image

The response mirrors OpenAI’s images/generations shape, plus gateway extras:
By default each image is also stored so you get a reusable file_id and a presigned url alongside the base64. Pass "store": false to skip persistence and get base64 only, or "response_format": "url" to omit the base64 and return only the stored URL.
The file_id is a reusable handle — pass it as the image on a later edit or as the seed image on a video call, no re-upload. See Files for how files work, lifecycle, and storage quotas.

Parameters

model and prompt are required. The rest are optional; the high-level ones are normalized across providers, and parameters is forwarded verbatim to the provider, which validates it. Model-specific knobs go in parameters — for example DALL·E 3’s style (vivid | natural), or a diffusion model’s seed / negative_prompt. They’re forwarded verbatim and validated by the provider. See Discover models for how to list the keys a given model accepts.

Edit and image-to-image

Pass a source image alongside the prompt. Each input accepts an http(s) URL, a data-URI, or a file_id from a previous generation or upload. Models that only do text-to-image reject these with a clear 400.

Discover models

GET /v3/images/models reports the models you can use and their capabilities. Each model’s params.image block lists the normalized axes it accepts — sizes, aspect_ratios, resolutions, qualities — plus a parameters list of the native passthrough keys (e.g. seed, negative_prompt, personGeneration) you can put in parameters, so you can discover a model’s knobs instead of guessing.

What’s next

Vision & PDFs

Send images into a model instead of generating them.

Video

Turn a generated image into video.

Models

Which models generate images, and at what sizes.

Control Plane

Govern providers, regions, and spend on every generation.