Image Generations
Minimum-discount routing: Prefix the path with a min{N} segment (e.g. /min30/v1/images/generations) to require marketplace seller offers to meet a minimum estimated buyer discount before routing. Buyer-owned providers are not covered. See Minimum-Discount Routing.
OpenAI-compatible image generation via the marketplace. One synchronous request returns the image(s); the marketplace routes to the cheapest healthy seller for the model and settles USDC to that seller.
The marketplace also supports image-to-image editing via POST /v1/images/edits — or this same endpoint when the body carries a source image. See Image-to-Image below.
Request
Auth: API key (Authorization: Bearer inf_***), or pay-per-request via x402 (PAYMENT-SIGNATURE) or MPP (Authorization: Payment ***). With no auth, the endpoint returns 402 advertising both x402 and MPP. See Buyer endpoints.
- Name
model- Type
- string
- required
- Description
- Model ID, e.g.
venice-z-image-turbo,seedream-4.5,venice-flux-2-pro,gpt-5.4-image-2. Query/v1/modelsfor the live catalog
- Name
prompt- Type
- string
- required
- Description
- Text prompt
- Name
n- Type
- integer
- Description
- Number of images (1–10, default 1). Token-metered models served over the chat wire return a single image
- Name
size- Type
- string
- Description
- e.g.
1024x1024. Drives per-megapixel billing and the per-token output estimate
- Name
resolution- Type
- string
- Description
1K,2K, or4K. Selects the pricing tier for resolution-tiered models; when omitted, the tier is derived fromsize
- Name
quality- Type
- string
- Description
- e.g.
low,medium,high. Drives the per-token output estimate where the provider doesn't report usage
- Name
response_format- Type
- string
- Description
b64_jsonorurl(passed through to the provider)
Headers include X-Request-Id. With response_format=url, items are { "url": "https://..." }.
Image-to-Image (editing)
Edit an existing image with a text prompt. Send a JSON body with the source image(s) and an edit-capable model; the marketplace routes to the cheapest healthy seller that supports image input. You can also send an edit to POST /v1/images/generations — including a source image in the body runs the edit flow there too. The min{N} prefix works on both paths.
Auth: same as generations — API key, or pay-per-request via x402 / MPP.
- Name
model- Type
- string
- required
- Description
- An edit-capable model, e.g.
nano-banana-2-edit,qwen-image-2-edit,seedream-v4-edit,flux-2-max-edit(most carry an-editsuffix). Query/v1/modelsfor the live catalog
- Name
prompt- Type
- string
- required
- Description
- The edit instruction
- Name
image- Type
- string
- Description
- Source image — an
https://URL or adata:URI (e.g.data:image/png;base64,...).image_urlis accepted as an alias. URLs are passed to the provider as-is; the marketplace never fetches them
- Name
input_images- Type
- array
- Description
- Multiple source images. The first entry is the base (start) image; the rest are reference layers. Each entry is an
https/data:URI string, or an object{ "url": "...", "role": "start" | "reference" }. Max 8 images per request
size, quality, resolution, and response_format apply as on generations. Bare base64 (without the data: prefix) and http:// URLs are rejected.
Masked edits (inpaint) are not supported yet — sending a mask/mask_url returns 400 mask_not_supported.
Response: the standard image response (above). The default b64_json returns the edited image inline; response_format: "url" returns short-lived download URLs instead. Editing is synchronous and returns one edited image per request.
Pricing — canonical price × discount
Each image model has a canonical reference price (OpenRouter-first, then Venice, then the SI registry). A seller's offer is a discount off that canonical, and the marketplace routes to the deepest discount. You always pay the canonical × the winning offer's discount — never an arbitrary per-seller price.
Canonical follows the model's native metering unit:
- Per-token models bill on actual usage the provider reports; when a provider returns none (e.g. Venice serving a token-canonical model), usage is derived from
size/qualityso the buyer sees true per-1M pricing and the seller isn't underpaid. - Per-image and per-megapixel are deterministic from the request (
n,size) — no provider usage needed. - Image-to-image bills the same way — the model's canonical price × the winning discount, per edited image (an edit returns one image). For models with resolution-tiered pricing, the rate follows the output resolution (
resolution, or derived fromsize). - See the live canonical and effective discounts at
/api/markets/:modeland/v1/prices: token-image models show$/1Minput/output, diffusion models$/image, FLUX/Grok$/MP.
All costs are USDC microdollars (1 USD = 1,000,000 microdollars). One settle() transaction pulls USDC from the buyer to the seller per completed request.