curl --request POST \
--url https://api.bitstudio.ai/v1/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation": "generate",
"input": {
"model_version": "nano-banana-2",
"generate_mode": "presets",
"model_text": "An adult fashion model",
"outfit_image_ids": [
"11111111-1111-4111-8111-111111111111"
],
"prompt": "Full-length front view in a white studio, soft shadows.",
"resolution": "standard",
"aspect_ratio": "3:4",
"num_images": 1
}
}
'{
"jobs": [
{
"id": "33333333-3333-4333-8333-333333333333",
"status": "pending",
"task": "generate",
"created_at": "2026-09-06T12:00:00Z",
"result": null,
"error": null
}
]
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"cta": true,
"next_action": "<string>",
"current_plan": "<string>",
"user_message": "<string>",
"extra_context": "<string>"
}Jobs
Create jobs
Generate, try on, edit, inpaint, upscale, or create video with one submission and response format.
POST
/
v1
/
jobs
curl --request POST \
--url https://api.bitstudio.ai/v1/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation": "generate",
"input": {
"model_version": "nano-banana-2",
"generate_mode": "presets",
"model_text": "An adult fashion model",
"outfit_image_ids": [
"11111111-1111-4111-8111-111111111111"
],
"prompt": "Full-length front view in a white studio, soft shadows.",
"resolution": "standard",
"aspect_ratio": "3:4",
"num_images": 1
}
}
'{
"jobs": [
{
"id": "33333333-3333-4333-8333-333333333333",
"status": "pending",
"task": "generate",
"created_at": "2026-09-06T12:00:00Z",
"result": null,
"error": null
}
]
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"cta": true,
"next_action": "<string>",
"current_plan": "<string>",
"user_message": "<string>",
"extra_context": "<string>"
}Choose an
operation and put its settings in input. For edit, inpaint, upscale, and image-to-video, set image_id to the source image. Generate and try-on references belong inside input.
Unknown envelope and input fields are rejected. The JSON body must be no larger than 2 MiB.
Each entry in jobs is the actual new processing job, including operations that also create an image version. Save every id and poll the job.
Track jobs and image versions →Authorizations
Create an API key in Studio → account menu → API Keys. Keep it on your server.
Body
application/json
Response
Accepted for asynchronous processing.
Show child attributes
Show child attributes