> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bettertoken.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# API Gemini de génération par texte

> Générez des images Nano Banana avec l’API Gemini de BetterToken. Choisissez modèle, description, résolution et proportions, puis testez la requête dans le panneau.

Générez une image par texte avec Nano Banana Pro, 2 ou 2.1.

`POST /v1beta/models/{model}:generateContent`

La génération par texte et la retouche utilisent le même endpoint. La retouche ajoute une image de référence à la requête.

## Tester une requête

Saisissez votre BetterToken API Key dans **x-goog-api-key**, choisissez **model** et modifiez le texte dans **contents**. Commencez avec `1K` et `1:1`, puis cliquez sur **Send**.

<Note>
  Cliquer sur **Send** envoie une véritable requête de génération susceptible d’être facturée. Attendez la réponse synchrone. Après une expiration ou une déconnexion, vérifiez la consommation et le résultat avant de renvoyer la requête.
</Note>

Les trois proposent `1K`, `2K` et `4K`. Nano Banana 2 et 2.1 prennent en charge 14 proportions, Pro en propose 10. `X-BetterToken-Max-Images` plafonne les images livrées et facturées sans en garantir le nombre. [Proportions](/fr/api-reference/nano-banana#aspect-ratios)

<Warning>
  BetterToken API ne prend pas en charge la génération avec recherche, y compris Google Web Search et Image Search grounding. N’ajoutez pas d’outils de recherche.
</Warning>

Une description suffit pour générer une image ; aucune référence n’est nécessaire. Utilisez `generateContent` sans streaming. Files, Batch, Interactions et le streaming ne sont pas pris en charge.

## Lire la réponse

Les images figurent dans `candidates[].content.parts[].inlineData`. Parcourez les éléments, ignorez `thought: true`, décodez `data` et choisissez l’extension selon `mimeType`. L’image n’est pas forcément le premier élément ni toujours au format PNG.

## Guides associés

* [Retouche d’images](/fr/api-reference/gemini-images-edits)
* [SDK, sauvegarde et retouches successives](/fr/api-reference/nano-banana)
* [Présentation des modèles](/fr/model-updates/nano-banana)
* <a href={"https://bettertoken.ai/pricing"}>Catalogue de modèles</a>


## OpenAPI

````yaml api-reference/gemini-images-generations.fr.json POST /v1beta/models/{model}:generateContent
openapi: 3.1.0
info:
  title: API Gemini de génération par texte
  description: >-
    Générez des images Nano Banana avec l’API Gemini de BetterToken. Choisissez
    modèle, description, résolution et proportions, puis testez la requête dans
    le panneau.
  version: 1.0.0
servers:
  - url: https://bettertoken.ai
security:
  - geminiApiKey: []
paths:
  /v1beta/models/{model}:generateContent:
    post:
      summary: API Gemini de génération par texte
      description: >-
        Générez une image par texte avec Nano Banana Pro, 2 ou 2.1. BetterToken
        API ne prend pas en charge la génération avec recherche, y compris
        Google Web Search et Image Search grounding. N’ajoutez pas d’outils de
        recherche.
      operationId: generateGeminiImage_fr
      parameters:
        - name: model
          in: path
          required: true
          description: Model ID BetterToken. Choisissez un des trois modèles Nano Banana.
          schema:
            type: string
            enum:
              - nano-banana-pro
              - nano-banana-2
              - nano-banana-2.1
            default: nano-banana-2.1
        - name: X-BetterToken-Max-Images
          in: header
          description: >-
            Plafond d’images livrées et facturées, pas un nombre garanti. Valeur
            par défaut : 1.
          schema:
            type: integer
            minimum: 1
            maximum: 4
            default: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - contents
              properties:
                contents:
                  type: array
                  description: >-
                    Historique. Conservez le content complet du modèle et
                    thoughtSignature pour les retouches suivantes.
                  minItems: 1
                  items:
                    type: object
                    required:
                      - parts
                    properties:
                      role:
                        type: string
                        description: >-
                          user pour une nouvelle requête ; model pour les
                          réponses précédentes de l’historique.
                        enum:
                          - user
                          - model
                        default: user
                      parts:
                        type: array
                        description: >-
                          Texte et images. Séparez text et inlineData dans des
                          éléments distincts.
                        minItems: 1
                        items:
                          anyOf:
                            - type: object
                              required:
                                - text
                              properties:
                                text:
                                  type: string
                                  description: Description ou consigne de retouche.
                                  example: >-
                                    Photographie de studio d’une tasse en
                                    céramique bleue sur une table blanche.
                              additionalProperties: true
                            - type: object
                              required:
                                - inlineData
                              properties:
                                inlineData:
                                  type: object
                                  description: Référence intégrée en base64.
                                  required:
                                    - mimeType
                                    - data
                                  properties:
                                    mimeType:
                                      type: string
                                      description: Type MIME de la référence.
                                      enum:
                                        - image/png
                                        - image/jpeg
                                      example: image/png
                                    data:
                                      type: string
                                      description: >-
                                        Octets de l’image en base64 sans préfixe
                                        Data URL.
                                      contentEncoding: base64
                                      example: REPLACE_WITH_IMAGE_BASE64
                                  additionalProperties: false
                              additionalProperties: true
                    additionalProperties: false
                generationConfig:
                  type: object
                  description: Paramètres de génération.
                  properties:
                    responseModalities:
                      type: array
                      description: Demandez explicitement une sortie image.
                      items:
                        type: string
                        enum:
                          - IMAGE
                      default:
                        - IMAGE
                    candidateCount:
                      type: integer
                      enum:
                        - 1
                      default: 1
                      description: >-
                        Omettez ou utilisez l’entier 1. Ne transmettez pas n à
                        la racine.
                    imageConfig:
                      type: object
                      description: Paramètres de l’image produite.
                      properties:
                        imageSize:
                          type: string
                          description: Résolution. Utilisez K majuscule.
                          enum:
                            - 1K
                            - 2K
                            - 4K
                          default: 1K
                        aspectRatio:
                          type: string
                          description: >-
                            Proportions. Pro en accepte 10 ; 2 et 2.1 acceptent
                            aussi 1:4, 4:1, 1:8 et 8:1.
                          enum:
                            - '1:1'
                            - '1:4'
                            - '1:8'
                            - '2:3'
                            - '3:2'
                            - '3:4'
                            - '4:1'
                            - '4:3'
                            - '4:5'
                            - '5:4'
                            - '8:1'
                            - '9:16'
                            - '16:9'
                            - '21:9'
                          default: '1:1'
                      additionalProperties: false
                  additionalProperties: false
              additionalProperties: false
            example:
              contents:
                - role: user
                  parts:
                    - text: >-
                        Photographie de studio d’une tasse en céramique bleue
                        sur une table blanche.
              generationConfig:
                responseModalities:
                  - IMAGE
                candidateCount: 1
                imageConfig:
                  imageSize: 1K
                  aspectRatio: '1:1'
      responses:
        '200':
          description: Résultat. Vérifiez les images finales et finishReason.
          content:
            application/json:
              schema:
                type: object
                properties:
                  candidates:
                    type: array
                    items:
                      type: object
                      properties:
                        content:
                          type: object
                          properties:
                            role:
                              type: string
                            parts:
                              type: array
                              items:
                                type: object
                                properties:
                                  text:
                                    type: string
                                  thought:
                                    type: boolean
                                  thoughtSignature:
                                    type: string
                                  inlineData:
                                    type: object
                                    properties:
                                      mimeType:
                                        type: string
                                      data:
                                        type: string
                                        contentEncoding: base64
                        finishReason:
                          type: string
                  promptFeedback:
                    type: object
                    additionalProperties: true
                  usageMetadata:
                    type: object
                    additionalProperties: true
              example:
                candidates:
                  - content:
                      role: model
                      parts:
                        - inlineData:
                            mimeType: image/png
                            data: BASE64_IMAGE_DATA
                    finishReason: STOP
        '400':
          description: Paramètres invalides ou fonction non prise en charge.
        '401':
          description: API Key absente ou invalide.
        '402':
          description: Solde insuffisant.
        '429':
          description: Limite de requêtes ou service occupé.
        '500':
          description: Erreur de génération. Vérifiez le résultat avant de réessayer.
components:
  securitySchemes:
    geminiApiKey:
      type: apiKey
      in: header
      name: x-goog-api-key
      description: BetterToken API Key.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.