Nano Banana API Examples
Since the nano-banana model is a multimodal model, the OpenAI SDK currently does not support direct access to this model. You need to use the request method to access the nano-banana model.
Basic Configuration
Before starting to use the API, please ensure you have obtained an API Key. If not, please refer to Create API Key.
⚠️ Important: Address Change Notice
The old address https://api.agentsflare.com/googleapi/google/v1/models/ will no longer be updated. Please migrate as soon as possible!
The new address https://api.agentsflare.com/google/v1/models/ offers the following advantages:
- ✅ Supports automatic channel switching on 429 errors, more stable
- ✅ Continuous updates and optimizations
- ✅ Better performance
Basic Information
- API Base URL:
https://api.agentsflare.com/google/v1/models/gemini-3-pro-image-preview:generateContent - Authentication Method: Bearer Token
- Content Type:
application/json
Request Examples
bash
curl -X POST "https://api.agentsflare.com/google/v1/models/gemini-3-pro-image-preview:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer API-KEY" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Generate a display image of a sports car."}]
}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K"
}
}
}'python
import requests
url = "https://api.agentsflare.com/google/v1/models/gemini-3-pro-image-preview:generateContent"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer API-KEY"
}
data = {
"contents": [{
"role": "user",
"parts": [{"text": "Generate a display image of a sports car."}]
}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K"
}
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Collections;
public class NanoBananaExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("https://api.agentsflare.com/google/v1/models/gemini-3-pro-image-preview:generateContent"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer API-KEY")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"contents": [{
"role": "user",
"parts": [{"text": "Generate a display image of a sports car."}]
}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K"
}
}
}
"""))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}javascript
const axios = require('axios');
const url = 'https://api.agentsflare.com/google/v1/models/gemini-3-pro-image-preview:generateContent';
const headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer API-KEY'
};
const data = {
"contents": [{
"role": "user",
"parts": [{"text": "Generate a display image of a sports car."}]
}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K"
}
}
};
axios.post(url, data, { headers })
.then(response => console.log(response.data))
.catch(error => console.error(error));go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
type RequestBody struct {
Contents []struct {
Role string `json:"role"`
Parts []struct {
Text string `json:"text"`
} `json:"parts"`
} `json:"contents"`
GenerationConfig struct {
ImageConfig struct {
AspectRatio string `json:"aspectRatio"`
ImageSize string `json:"imageSize"`
} `json:"imageConfig"`
} `json:"generationConfig"`
}
func main() {
url := "https://api.agentsflare.com/google/v1/models/gemini-3-pro-image-preview:generateContent"
requestBody := RequestBody{
Contents: []struct {
Parts []struct {
Text string `json:"text"`
} `json:"parts"`
}{
{
Parts: []struct {
Text string `json:"text"`
}{
{Text: "Generate a display image of a sports car."},
},
},
},
GenerationConfig: struct {
ImageConfig struct {
AspectRatio string `json:"aspectRatio"`
ImageSize string `json:"imageSize"`
} `json:"imageConfig"`
}{
ImageConfig: struct {
AspectRatio string `json:"aspectRatio"`
ImageSize string `json:"imageSize"`
}{
AspectRatio: "16:9",
ImageSize: "1K",
},
},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer API-KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}Response Example
Convert the data after "data" to base64 and then to an image.
json
{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/PoOcZyOaLe1tfs661unrf1P/Z"
},
"thoughtSignature": "EvzcWNXXAXOBvMMwZBfjm6U4n6io7E5K+3iawi5TnliFj8tlQmYhAxTh3sCGOdUCz7perrdCeV8NhgyYan"
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 21,
"candidatesTokenCount": 1234,
"totalTokenCount": 1420,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 21
}
],
"candidatesTokensDetails": [
{
"modality": "IMAGE",
"tokenCount": 1120
}
],
"thoughtsTokenCount": 165
},
"modelVersion": "gemini-3-pro-image-preview",
"responseId": "MK5kaf_nKdWU_uMPkciLkAY"
}Request Parameters
For detailed parameters, see Nano Banana image generation