Native Gemini format
POST
/v1beta/models/{model}:generateContent
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.mirapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent"
payload := strings.NewReader("{ \"contents\": [ { \"role\": \"user\", \"parts\": [ { \"text\": \"draw a cat\" } ] } ], \"generationConfig\": { \"responseModalities\": [ \"TEXT\", \"IMAGE\" ], \"imageConfig\": { \"aspectRatio\": \"16:9\", \"imageSize\": \"4K\" } } }")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.mirapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"contents":[{"role":"user","parts":[{"text":"draw a cat"}]}],"generationConfig":{"responseModalities":["TEXT","IMAGE"],"imageConfig":{"aspectRatio":"16:9","imageSize":"4K"}}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.mirapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "contents": [ { "role": "user", "parts": [ { "text": "draw a cat" } ] } ], "generationConfig": { "responseModalities": [ "TEXT", "IMAGE" ], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } } }'Gemini image generation
Calling through the OpenAI chat endpoint: the Nano Banana model family can also be called via POST /v1/chat/completions (OpenAI format), with image parameters in extra_body.google.image_config (aspect_ratio, image_size).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”model
required
string
Model name
Example
gemini-3-pro-image-previewRequest Body
Section titled “Request Body”Media typeapplication/json
object
contents
required
Array<object>
object
role
string
parts
Array<object>
object
text
string
generationConfig
required
object
thinkingConfig
object
includeThoughts
required
Whether to return thinking content
boolean
responseModalities
required
Array<string>
imageConfig
required
object
aspectRatio
required
string
imageSize
required
string
Examples
Drawing
{ "contents": [ { "role": "user", "parts": [ { "text": "draw a cat" } ] } ], "generationConfig": { "responseModalities": [ "TEXT", "IMAGE" ], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } }}Return thinking content
{ "contents": [ { "role": "user", "parts": [ { "text": "draw a cat" } ] } ], "generationConfig": { "thinkingConfig": { "includeThoughts": true }, "responseModalities": [ "TEXT", "IMAGE" ], "imageConfig": { "aspectRatio": "16:9", "imageSize": "4K" } }}Responses
Section titled “Responses”Success
Media typeapplication/json
object
candidates
Array<object>
object
content
object
role
string
parts
Array<object>
object
finishReason
string
safetyRatings
Array<object>
object
usageMetadata
object
promptTokenCount
integer
candidatesTokenCount
integer
totalTokenCount
integer
Examplegenerated
{ "candidates": [ { "content": { "role": "example", "parts": [ {} ] }, "finishReason": "example", "safetyRatings": [ {} ] } ], "usageMetadata": { "promptTokenCount": 1, "candidatesTokenCount": 1, "totalTokenCount": 1 }}