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

# Interfaz de todos los modelos Gemini - Inicio rápido de API nativa

> - Llama al modelo de texto Gemini usando el formato de API nativa de Google
- Selecciona el modelo específico mediante `{model}` en la ruta (consulta el parámetro `model` para ver todos los valores posibles)
- Modo de procesamiento síncrono, parámetros mínimos, inicio rápido
- 💡 ¿Necesitas más funciones? Consulta la [documentación completa de parámetros](./native-api-reference)

<Tip>
  **Streaming**: Reemplace `generateContent` por `streamGenerateContent` en la URL para habilitar respuestas en streaming y recibir contenido en tiempo real por bloques.
</Tip>

<Note>
  **BaseURL**: La BaseURL predeterminada es `https://direct.evolink.ai`, que ofrece mejor compatibilidad con modelos de texto y admite conexiones persistentes. `https://api.evolink.ai` es el endpoint principal para servicios multimodales y actúa como dirección de respaldo para los modelos de texto.
</Note>


## OpenAPI

````yaml es/api-manual/language-series/gemini/native-api/native-api-quickstart.json POST /v1beta/models/{model}:generateContent
openapi: 3.1.0
info:
  title: Interfaz de todos los modelos Gemini - Inicio rápido de API nativa
  description: >-
    Ejemplo de inicio rápido de la interfaz nativa unificada para toda la serie
    de modelos de texto Gemini.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Producción (recomendado)
  - url: https://api.evolink.ai
    description: URL alternativa
security:
  - bearerAuth: []
tags:
  - name: Generación de contenido
    description: APIs de generación de contenido de Gemini AI
paths:
  /v1beta/models/{model}:generateContent:
    post:
      tags:
        - Generación de contenido
      summary: Conversación rápida Gemini (todos los modelos)
      description: >-
        - Llama al modelo de texto Gemini usando el formato de API nativa de
        Google

        - Selecciona el modelo específico mediante `{model}` en la ruta
        (consulta el parámetro `model` para ver todos los valores posibles)

        - Modo de procesamiento síncrono, parámetros mínimos, inicio rápido

        - 💡 ¿Necesitas más funciones? Consulta la [documentación completa de
        parámetros](./native-api-reference)
      operationId: geminiGenerateContentQuick
      parameters:
        - name: model
          in: path
          required: true
          description: >-
            Selecciona el modelo de texto Gemini que deseas invocar:


            | ID del modelo | Serie | Posicionamiento |

            |---|---|---|

            | `gemini-3.6-flash` | 3.6 Flash | Orquestación multipaso /
            refactorización de código / razonamiento general |

            | `gemini-3.5-flash` | 3.5 Flash | Flash general |

            | `gemini-3.5-flash-lite` | 3.5 Flash-Lite | Bajo costo / alto
            rendimiento / agente ligero |

            | `gemini-3.1-pro-preview` | 3.1 Pro (Preview) | Razonamiento
            avanzado |

            | `gemini-3.1-pro-preview-customtools` | 3.1 Pro · CustomTools |
            Razonamiento avanzado + herramientas personalizadas |

            | `gemini-3.1-flash-lite-preview` | 3.1 Flash-Lite (Preview) | Bajo
            costo |

            | `gemini-3-pro-preview` | 3.0 Pro (Preview) | Razonamiento avanzado
            |

            | `gemini-3-flash-preview` | 3.0 Flash (Preview) | Flash general |

            | `gemini-2.5-pro` | 2.5 Pro | Razonamiento avanzado |

            | `gemini-2.5-flash` | 2.5 Flash | Flash general |

            | `gemini-2.5-flash-lite` | 2.5 Flash-Lite | Bajo costo |
          schema:
            type: string
            enum:
              - gemini-3.6-flash
              - gemini-3.5-flash
              - gemini-3.5-flash-lite
              - gemini-3.1-pro-preview
              - gemini-3.1-pro-preview-customtools
              - gemini-3.1-flash-lite-preview
              - gemini-3-pro-preview
              - gemini-3-flash-preview
              - gemini-2.5-pro
              - gemini-2.5-flash
              - gemini-2.5-flash-lite
            example: gemini-3.6-flash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateContentQuickRequest'
      responses:
        '200':
          description: Contenido generado exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateContentResponse'
        '400':
          description: Parámetros de solicitud inválidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 400
                  message: Parámetros de solicitud inválidos
                  type: invalid_request_error
        '401':
          description: No autenticado, token inválido o expirado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 401
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Cuota insuficiente, se requiere recarga
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Cuota insuficiente
                  type: insufficient_quota_error
                  fallback_suggestion: https://evolink.ai/dashboard/billing
        '403':
          description: Acceso denegado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 403
                  message: Access denied for this model
                  type: permission_error
        '404':
          description: Recurso no encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 404
                  message: Model not found
                  type: not_found_error
        '429':
          description: >-
            Semilla aleatoria, rango `[1, 2147483647]`


            **Nota:**

            - Usar el mismo valor de semilla puede mantener resultados de
            generación consistentes

            - Dejar vacío para semilla aleatoria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: >-
                    Semilla aleatoria, rango `[1, 2147483647]`


                    **Nota:**

                    - Usar el mismo valor de semilla puede mantener resultados
                    de generación consistentes

                    - Dejar vacío para semilla aleatoria
                  type: rate_limit_error
                  fallback_suggestion: retry after 60 seconds
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Error interno del servidor
                  type: internal_server_error
                  fallback_suggestion: try again later
        '502':
          description: Error del servicio upstream
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 502
                  message: Upstream AI service unavailable
                  type: upstream_error
                  fallback_suggestion: try again later
        '503':
          description: Servicio temporalmente no disponible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 503
                  message: Servicio temporalmente no disponible
                  type: service_unavailable_error
                  fallback_suggestion: retry after 30 seconds
components:
  schemas:
    GenerateContentQuickRequest:
      type: object
      required:
        - contents
      properties:
        contents:
          type: array
          description: Lista de contenido de conversación
          items:
            $ref: '#/components/schemas/ContentSimple'
          minItems: 1
          example:
            - role: user
              parts:
                - text: Hello, please introduce yourself
    GenerateContentResponse:
      type: object
      properties:
        candidates:
          type: array
          description: Lista de respuestas candidatas
          items:
            $ref: '#/components/schemas/Candidate'
        promptFeedback:
          $ref: '#/components/schemas/PromptFeedback'
        usageMetadata:
          $ref: '#/components/schemas/UsageMetadata'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: Código de error de estado HTTP
            message:
              type: string
              description: Mensaje de descripción del error
            type:
              type: string
              description: Tiempo estimado de finalización (segundos)
            fallback_suggestion:
              type: string
              description: Sugerencia alternativa en caso de error
    ContentSimple:
      type: object
      required:
        - role
        - parts
      properties:
        role:
          type: string
          description: Rol del contenido
          enum:
            - user
          example: user
        parts:
          type: array
          description: Lista de partes de contenido (texto plano)
          items:
            $ref: '#/components/schemas/TextPart'
          minItems: 1
    Candidate:
      type: object
      properties:
        content:
          $ref: '#/components/schemas/ContentResponse'
        finishReason:
          type: string
          description: >-
            Razón de finalización


            - `stop`: Finalización natural o secuencia de parada alcanzada

            - `length`: Límite máximo de tokens alcanzado

            - `content_filter`: Salida filtrada por política de seguridad

            - `tool_calls`: El modelo llamó a una herramienta

            - `insufficient_system_resource`: Restricciones de recursos del
            backend
          enum:
            - STOP
            - MAX_TOKENS
            - SAFETY
            - RECITATION
            - OTHER
          example: STOP
        index:
          type: integer
          description: Índice del candidato
          example: 0
        safetyRatings:
          type: array
          nullable: true
          description: Calificaciones de seguridad
          items:
            type: object
    PromptFeedback:
      type: object
      properties:
        safetyRatings:
          type: array
          nullable: true
          description: Calificaciones de seguridad del prompt
          items:
            type: object
    UsageMetadata:
      type: object
      description: Estadísticas de uso
      properties:
        promptTokenCount:
          type: integer
          description: Número de tokens en la entrada
          example: 4
        candidatesTokenCount:
          type: integer
          description: Número de tokens en la salida
          example: 611
        totalTokenCount:
          type: integer
          description: Número total de tokens
          example: 2422
        thoughtsTokenCount:
          type: integer
          description: Número de tokens de razonamiento
          example: 1807
        promptTokensDetails:
          type: array
          description: Información detallada de tokens de entrada (por modalidad)
          items:
            $ref: '#/components/schemas/TokenDetail'
    TextPart:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          description: Contenido de texto
          example: |-
            Hello! I'm glad to introduce myself.

            I'm a large language model trained and developed by Google...
    ContentResponse:
      type: object
      properties:
        role:
          type: string
          description: Rol de respuesta
          enum:
            - model
          example: model
        parts:
          type: array
          description: Partes de contenido de la respuesta
          items:
            $ref: '#/components/schemas/TextPart'
    TokenDetail:
      type: object
      description: Detalles de tokens (por modalidad)
      properties:
        modality:
          type: string
          description: Tipo de modalidad de contenido
          enum:
            - TEXT
            - IMAGE
            - AUDIO
            - VIDEO
          example: TEXT
        tokenCount:
          type: integer
          description: Número de tokens para esta modalidad
          example: 4
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Todas las APIs requieren autenticación Bearer Token##


        **Obtener API Key:**


        Visita la [Página de gestión de API
        Key](https://evolink.ai/dashboard/keys) para obtener tu API Key


        **Agregar al encabezado de la solicitud:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````