Tasks and balance
Tasks and balance
Read endpoints for polling a task, listing recent tasks, checking the balance and discovering models. They have their own read budget, so polling does not use up the submit budget.
Task status values
pending- Accepted and queued.
processing- Generating.
completed- Finished; results are in output / result_urls.
failed- Did not finish; the credits are refunded automatically and credits_refunded shows the amount.
/api/v1/images/{task_id}
Status of one image task. Poll every few seconds until status is completed or failed; output.images lists the results.
GET
/api/v1/images/{task_id}curl https://preview.bananapro.site/api/v1/images/task_abc123 \
-H "Authorization: Bearer sk-your-api-key"{
"success": true,
"data": {
"task_id": "task_abc123",
"model": "nano-banana-pro",
"status": "completed",
"output": { "images": [{ "url": "https://cdn.example.com/result.png" }] },
"image_url": "https://cdn.example.com/result.png",
"error_message": null,
"credits_used": 8,
"credits_refunded": 0
}
}/api/v1/videos/{task_id}
Status of one video task, with the same status values and video_url once it is ready.
GET
/api/v1/videos/{task_id}curl https://preview.bananapro.site/api/v1/videos/task_abc123 \
-H "Authorization: Bearer sk-your-api-key"/api/v1/tasks
Your API tasks from the last 30 days, image and video together, newest first. Query: limit (1–50, default 20) and before (the next_cursor of the previous page). Every task carries type and a flat result_urls array.
GET
/api/v1/taskscurl "https://preview.bananapro.site/api/v1/tasks?limit=20" \
-H "Authorization: Bearer sk-your-api-key"{
"success": true,
"data": {
"tasks": [
{
"task_id": "task_abc123",
"type": "image",
"model": "nano-banana-pro",
"status": "completed",
"result_urls": ["https://cdn.example.com/result.png"],
"credits_used": 8,
"credits_refunded": 0,
"error_message": null,
"created_at": "2026-10-03T08:12:45.000Z",
"completed_at": "2026-10-03T08:13:20.000Z"
}
],
"has_more": false,
"next_cursor": null
}
}/api/v1/balance
Credits available to your account. The site and the API share one balance. /api/v1/account/balances returns the same data.
GET
/api/v1/balancecurl https://preview.bananapro.site/api/v1/balance \
-H "Authorization: Bearer sk-your-api-key"{
"success": true,
"data": { "credits": 500, "web_credits": 500, "api_credits": 500 }
}/api/v1/models
Every model the API serves, with the endpoint to call and the type values it accepts.
GET
/api/v1/modelscurl https://preview.bananapro.site/api/v1/models \
-H "Authorization: Bearer sk-your-api-key"{
"success": true,
"data": {
"models": [
{
"id": "gpt-image-2.5",
"name": "GPT Image 2.5",
"type": "image",
"method": "POST",
"endpoint": "/api/v1/images/generate",
"types": ["text-to-image", "image-to-image"]
}
]
}
}