Nano Banana 2
Nano Banana 2 (Gemini 3.1 Flash Image Preview) asynchronous image generation and editing with up to 4K output, 14 reference images, and optional Google Search enhancement.
Price
$0.013/ call
Endpoint
/images/tasks
Delivery pattern
Async task lifecycle
Availability
Available now
API documentation
Build and copy the request
Choose the options this model accepts. The code below updates as you choose.
https://www.aisplice.store/v1/images/tasksBearer API keyAsync taskOptionsOnly options published for this model are shown.
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "Nano Banana 2",
"prompt": "A cinematic scene with careful composition",
"size": "auto",
"resolution": "1K",
"n": 1
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/images/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 3
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/images/tasks/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .- 1Submit the task
- 2Poll the status
- 3Fetch the content
Public media URLs are recommended for production. Upload a local file first, then put public_url into the model request. Avoid large Base64 bodies.
Read the upload guideParameter reference
modelExact model identifier for this request.
gemini-3.1-flash-image-previewpromptInstruction describing the desired result.
sizeOutput aspect ratio or dimensions.
auto1:12:33:23:44:34:55:49:1616:921:91:44:11:88:1resolutionRequested output resolution.
0.5K1K2K4KnimagesOptional reference images, up to 14.
Response lifecycle
Task status, terminal states, and result response examples.
Response lifecycle
Task status, terminal states, and result response examples.
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "image.task",
"model": "Nano Banana 2",
"status": "queued"
}{
"created": 1720000000,
"data": [
{
"url": "https://media.example/result.png"
}
]
}Waiting
queued · submitted · in_progress · processing
Success
completed · succeeded · success
Failure
failed · failure · cancelled · canceled
Errors and production
Retry rules, idempotency, and the minimum production checklist.
Errors and production
Retry rules, idempotency, and the minimum production checklist.
400 / 422Fix the request fields or unsupported option; do not retry unchanged.
401Check that the API key is present, active, and sent as a Bearer token.
402The account balance is insufficient.
409The Idempotency-Key is processing or was reused with another body.
429Back off according to Retry-After before retrying.
5xxRetry with exponential backoff and keep the original Idempotency-Key.
- Keep API keys on your server for public mobile and browser applications.
- Set a unique Idempotency-Key for every billable async operation.
- Persist task_id so polling can resume after a restart.
- Use a timeout for every HTTP request and surface the request ID in support reports.
- Read live model metadata instead of hard-coding prices and supported options.
Price and tiers
save 81% vs officialRequest price
$0.013/ call
$0.067
Tiered pricing
Base price $0.013
Tier pricing — the final price depends on the options you request. Unlisted tiers bill at the base price.
- 16:9×1$0.013
- 1:1×1$0.013
- 1:4×1$0.013
- 1:8×1$0.013
- 21:9×1$0.013
- 2:3×1$0.013
- 3:2×1$0.013
- 3:4×1$0.013
- 4:1×1$0.013
- 4:3×1$0.013
- 4:5×1$0.013
- 5:4×1$0.013
- 8:1×1$0.013
- 9:16×1$0.013
- auto×1$0.013
- 1k×1$0.013
- 2k×1.166666666667$0.015167
- 0.5k×1.25$0.01625
- 4k×1.5$0.0195
The price shown here is exactly what you are billed — failed calls are refunded automatically.
Related models