curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": ["https://example.com/ref1.jpg"],
"metadata": {
"resolution": "2K"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": ["https://example.com/ref1.jpg"],
"metadata": {
"resolution": "2K"
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'flux-2-flex',
prompt: 'A cute orange cat sunbathing on a windowsill',
size: '1:1',
metadata: {
resolution: '1K'
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'flux-2-pro',
prompt: 'Keep character style, generate a scene of running in the forest',
size: '1:1',
image_urls: ['https://example.com/ref1.jpg'],
metadata: {
resolution: '2K'
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "flux-2-flex",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Flux 2.0
Flux 2.0 Image Generation
Generate high-quality images using Flux 2.0 model, supporting text-to-image and image-to-image
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": ["https://example.com/ref1.jpg"],
"metadata": {
"resolution": "2K"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": ["https://example.com/ref1.jpg"],
"metadata": {
"resolution": "2K"
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'flux-2-flex',
prompt: 'A cute orange cat sunbathing on a windowsill',
size: '1:1',
metadata: {
resolution: '1K'
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'flux-2-pro',
prompt: 'Keep character style, generate a scene of running in the forest',
size: '1:1',
image_urls: ['https://example.com/ref1.jpg'],
metadata: {
resolution: '2K'
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "flux-2-flex",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Note for users in mainland China: Please use
https://toapis.cn as the API endpoint (Base URL). Replace https://toapis.com with https://toapis.cn in the examples in this document.- Flux 2.0 image generation model
- Choose
flux-2-flex(faster, for quick iteration) orflux-2-pro(higher quality, better details) via the model parameter - Supports text-to-image and image-to-image, up to 8 reference images
- Billed by resolution (1K/2K)
- Async task mode, returns
task_idfor querying results
Important Change: For better performance and cost control, we no longer support passing base64 image data directly in
image_urls. Please use the Upload Image API first to upload images and get URLs, then call this endpoint.Authorization
string
required
All endpoints require Bearer Token authenticationGet your API Key: Visit the API Key Management Page to get your API KeyAdd to request header:
Authorization: Bearer YOUR_API_KEY
Request Parameters
string
required
Image generation model nameOptions:
flux-2-flex- Faster, suitable for quick iterationflux-2-pro- Higher quality, better details
string
required
Text description for image generation
string
default:"1:1"
Image aspect ratioSupported aspect ratios:
1:1- Square (default)4:3/3:4- Traditional display ratio16:9/9:16- Widescreen/portrait3:2/2:3- Standard photo
string[]
Reference image URL array for image-to-image⚠️ URL format only (base64 not supported)
- Publicly accessible image URL (http:// or https://)
- Use the Upload Image API to upload local images and get URLs
- Maximum 8 reference images
object
Metadata parameters for additional configuration options
Show Supported metadata fields
Show Supported metadata fields
string
default:"1K"
Output image resolutionOptions:
Note: Different resolutions have different billing; 2K costs more than 1K.
1K- Standard resolution (default)2K- High resolution
| Aspect Ratio | 1K Size | 2K Size |
|---|---|---|
| 1:1 | 1024×1024 | 2048×2048 |
| 4:3 | 1365×1024 | 2730×2048 |
| 3:4 | 1024×1365 | 2048×2730 |
| 16:9 | 1820×1024 | 3640×2048 |
| 9:16 | 1024×1820 | 2048×3640 |
| 3:2 | 1536×1024 | 3072×2048 |
| 2:3 | 1024×1536 | 2048×3072 |
Response
string
Unique task identifier for querying task status
string
Object type, fixed as
generation.taskstring
Model name used for generation
string
Task status
queued- Waiting to be processedin_progress- Processingcompleted- Successfully completedfailed- Failed
integer
Task progress percentage (0-100)
integer
Task creation timestamp (Unix timestamp)
object
Task metadata
Use Cases
Case 1: Text-to-Image (Quick Iteration)
{
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}
Case 2: Text-to-Image (High Quality Output)
{
"model": "flux-2-pro",
"prompt": "Future city skyline, neon lights, cyberpunk style, cinematic quality",
"size": "16:9",
"metadata": {
"resolution": "2K"
}
}
Case 3: Image-to-Image (Multiple Reference Images)
{
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"metadata": {
"resolution": "2K"
}
}
Case 4: Portrait Poster
{
"model": "flux-2-flex",
"prompt": "Concert poster, minimalist style, dark background",
"size": "9:16",
"metadata": {
"resolution": "1K"
}
}
Query Task ResultsImage generation is an async task. After submission, a task ID is returned. Use the Get Image Task Status endpoint to query generation progress and results.
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": ["https://example.com/ref1.jpg"],
"metadata": {
"resolution": "2K"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-2-flex",
"prompt": "A cute orange cat sunbathing on a windowsill",
"size": "1:1",
"metadata": {
"resolution": "1K"
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "flux-2-pro",
"prompt": "Keep character style, generate a scene of running in the forest",
"size": "1:1",
"image_urls": ["https://example.com/ref1.jpg"],
"metadata": {
"resolution": "2K"
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'flux-2-flex',
prompt: 'A cute orange cat sunbathing on a windowsill',
size: '1:1',
metadata: {
resolution: '1K'
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'flux-2-pro',
prompt: 'Keep character style, generate a scene of running in the forest',
size: '1:1',
image_urls: ['https://example.com/ref1.jpg'],
metadata: {
resolution: '2K'
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "flux-2-flex",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}