Nano Banana 2.1
Nano Banana 2.1 asynchronous image generation and editing: 1-4 images per request, 1K/2K/4K output, auto or 14 aspect ratios, up to 14 reference images. The price shown is the 1K reservation; the final charge follows actual usage.
Price
$0.03/ 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.1",
"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-nano-banana-2.1promptInstruction describing the desired result.
sizeOutput aspect ratio. auto follows the reference image when one is given.
auto1:12:33:23:44:34:55:49:1616:921:91:44:11:88:1resolutionRequested output resolution.
1K2K4Kn1234imagesOptional reference images (URLs or data URIs), up to 14, 20 MB each.
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.1",
"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 11% vs officialRequest price
$0.03/ call
$0.0336
Tiered pricing
Base price $0.03
Tier pricing — the final price depends on the options you request. Unlisted tiers bill at the base price.
- 16:9×1$0.03
- 1:1×1$0.03
- 1:4×1$0.03
- 1:8×1$0.03
- 21:9×1$0.03
- 2:3×1$0.03
- 3:2×1$0.03
- 3:4×1$0.03
- 4:1×1$0.03
- 4:3×1$0.03
- 4:5×1$0.03
- 5:4×1$0.03
- 8:1×1$0.03
- 9:16×1$0.03
- auto×1$0.03
- 1k×1$0.03
- 2k×1.5$0.045
- 4k×3.375$0.10125
The price shown here is exactly what you are billed — failed calls are refunded automatically.
Related models