Image API Overview
curl --request POST \
--url https://api.mixroute.ai/v1/images/generationsimport requests
url = "https://api.mixroute.ai/v1/images/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/images/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/images/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyImage Series
Image API Overview
Choose a supported image model family and its generation or editing request format.
Image API Overview
curl --request POST \
--url https://api.mixroute.ai/v1/images/generationsimport requests
url = "https://api.mixroute.ai/v1/images/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/images/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/images/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyChoose an image family before building the request. Use the request format and model-specific fields documented on its interface page.
Gemini streaming requests
Account-visible models are returned by
Use the exact model ID returned for your account. Availability and billing depend on the selected route; consult the Model Marketplace for account-specific information. Do not reuse another family’s size, quality, input-image, or response-format fields.
Image APIs
| Family | Generation | Editing | Request Format |
|---|---|---|---|
| GPT Image | GPT Image | Image edits | Generation: JSON. Editing: multipart/form-data. |
| Grok Imagine | Grok Imagine | Image edits | JSON for generation and editing; image references use native objects. |
| Qwen Image | Qwen Image | Image edits | Basic generation: input.prompt; multimodal generation/editing: input.messages. Both use model and parameters. |
| Gemini | Gemini | Native image edits | contents, generationConfig |
Available Model IDs
| Family | Model IDs |
|---|---|
| GPT Image | gpt-image-2, gpt-image-1.5, gpt-image-1 |
| Grok Imagine | grok-imagine-image-2.0, grok-imagine-image-quality, grok-imagine-image |
| Qwen Image | qwen-image-2.0-pro, qwen-image-2.0, qwen-image-max, qwen-image-plus, qwen-image, qwen-image-edit-max, qwen-image-edit-plus, qwen-image-edit |
| Gemini | gemini-3.1-flash-image, gemini-3.1-flash-image-preview, gemini-3-pro-image, gemini-3-pro-image-preview, gemini-3.1-flash-lite-image, gemini-2.5-flash-image |
GET /v1/models. A model that accepts images as input is not necessarily an image-generation model. Use the family page to choose the output-capable model and the correct request format.
Authentication
curl "https://api.mixroute.ai/v1/models" \
--header "Authorization: Bearer $MIXROUTE_API_KEY"