Skip to main content
TokenLab supports text-to-image, image-to-image, and image editing. Parameters differ by model, so check the selected model’s request fields before sending the request.

Choose an endpoint

Always send model; image APIs do not choose a default model for you.

Choose a model

Find current image models with:
Open the selected model’s details to confirm:
  • The supported operation, such as text-to-image, image-to-image, or image-edit.
  • The request endpoint expected by the model.
  • How to send references: image_url, image_urls, reference_image_urls, multipart image, or JSON images[].
  • Whether the model accepts size, aspect_ratio, resolution, quality, background, output_format, or response_format.

Model-specific fields

  • gpt-image-2 style requests use OpenAI-like size, quality, and edit fields. For generation and edits, background accepts auto or opaque; transparent is not supported. Omit optional fields to use automatic defaults.
  • Gemini and Nano Banana image families usually use aspect_ratio; only send resolution when the model details expose it.
  • Nano Banana image-to-image belongs on /v1/images/generations with operation: "image-to-image" and reference image URLs.
  • /v1/images/generations does not accept top-level images[] or file_id; those are edit-flow shapes.
  • Remote image references must be public http or https URLs. Do not send private network URLs, embedded credentials, URL fragments, or signed URLs that may expire before processing starts.

Text-to-image example

Reference-image example

Get the image

Image responses can be synchronous or asynchronous:
  • Synchronous responses return final data[] with url or b64_json.
  • Async responses return id, task_id, status, and usually poll_url.
  • Use poll_url when it is present. If you need a fixed URL, call GET /v1/tasks/{id}.
  • Use a synchronous request when you need b64_json; async image results use URLs.
Persist the returned image URL, task ID, model, and your own user/job ID. Do not keep polling after a terminal status.

Before launch

  • Validate user inputs before calling TokenLab: prompt length, image count, URL reachability, and file type.
  • Set HTTP timeouts high enough for synchronous high-resolution requests. Use async mode where available for long work.
  • Store request_id, task_id, poll_url, model, endpoint, and the field names sent.
  • On client timeout, check whether a task was created before retrying the create request.
  • Use Usage and billing_transaction_id for the final charge.

Common Errors

API Reference