Skip to main content
POST
Streaming: sustituye generateContent por streamGenerateContent en la URL. Mantén el cuerpo de la solicitud; las respuestas llegan por fragmentos. Añade ?alt=sse para solicitar el formato SSE.
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.

Continuación de salidas largas (Gemini 4 Argon)

Una solicitud de gemini-4-argon devuelve como máximo 65,536 tokens con streaming o 32,768 sin streaming; ambos límites incluyen razonamiento y respuesta. Para salidas más largas, usa varias solicitudes de continuación. La entrada, el razonamiento y la respuesta comparten un contexto de 1,048,576 tokens, por lo que el razonamiento y la respuesta acumulados solo pueden usar el espacio restante después de la entrada. Solo la API nativa admite continuación; el formato compatible con OpenAI no la admite. Para respuestas largas, configura el tiempo de espera de lectura del cliente en 1,200 segundos (20 minutos). Es una recomendación para el cliente, no una garantía de la duración de las solicitudes en el servidor. Procedimiento:
  1. Establece generationConfig.maxOutputTokens por encima del límite por solicitud: más de 65,536 con streaming o de 32,768 sin streaming. El parámetro acepta hasta 1,048,576, pero la salida real sigue limitada por el contexto compartido. Este valor es el presupuesto acumulado de razonamiento y respuesta para todas las solicitudes de continuación.
  2. Si candidates[0].finishReason es CONTINUATION, la generación aún no ha terminado. El mismo candidato incluye un continuationToken.
  3. Reenvía la solicitud original manteniendo los mismos contents, systemInstruction, tools y generationConfig. Añade únicamente continuationToken en el nivel superior, con el último valor recibido, sin modificarlo.
  4. Repite el paso 3 solo mientras finishReason sea CONTINUATION; detente con cualquier otro motivo. STOP indica finalización normal y MAX_TOKENS que se agotó el presupuesto acumulado. Cada respuesta contiene solo el contenido nuevo; concatena las respuestas en orden.
  • No añadas la salida parcial a contents ni envíes una instrucción nueva como «continúa».
  • Una solicitud puede dedicar toda su generación al razonamiento y devolver un texto de respuesta vacío. Continúa si el motivo de finalización es CONTINUATION.
  • MAX_TOKENS también puede incluir un continuationToken. Para reanudar, aumenta manualmente maxOutputTokens y reenvía la solicitud original con el último token. Mantener el presupuesto agotado devuelve 400. Consulta «Reanudar tras agotar el presupuesto» más abajo.
  • En conversaciones de varios turnos, espera a STOP y añade después la respuesta completa concatenada al historial como un único mensaje model.

Ejemplos

Primera solicitud:
Si se alcanza el límite por solicitud y queda presupuesto acumulado, la respuesta puede ser como esta (solo se muestran los campos de continuación):
Si la respuesta anterior terminó con CONTINUATION, reenvía la misma solicitud añadiendo continuationToken en el nivel superior:
Esta función de Python procesa CONTINUATION automáticamente y devuelve el resultado al finalizar o agotar el presupuesto. Conserva el último token y no aumenta automáticamente el presupuesto ante MAX_TOKENS:

Reanudar tras agotar el presupuesto

Este ejemplo reutiliza generate_with_continuation, URL y HEADERS de arriba. Genera una lista de números con un presupuesto pequeño y luego aumenta explícitamente el presupuesto total de 64 a 2,048. Mantén los contents originales y los demás ajustes; añade el token y aumenta el presupuesto para reanudar desde el punto de corte.
Con streaming, lee el último fragmento que incluya finishReason: ante CONTINUATION, reenvía el último token con los mismos ajustes; ante MAX_TOKENS, aumenta manualmente el presupuesto acumulado si quieres reanudar; STOP indica finalización normal.

Facturación y errores

  • Cada solicitud se factura por separado. En cada continuación, la entrada original y todo el contenido ya generado vuelven a contarse como entrada. Las partes que acierten en la caché implícita se facturan a la tarifa de caché.
  • El usageMetadata de cada respuesta cubre solo esa solicitud. Suma el uso entre solicitudes para obtener el total. Dentro de un mismo stream, los valores son acumulados: usa solo el último usageMetadata, sin sumar repetidamente los acumulados intermedios.
  • En la API nativa, la estimación de la reserva para la salida usa el menor valor entre maxOutputTokens y 65,536, también sin streaming; la entrada se estima por separado. El límite real sin streaming es de 32,768 tokens por solicitud, así que un presupuesto superior puede reservar más que una estimación basada en ese límite real. El cargo final se calcula según el uso de la respuesta.
  • Los tokens no válidos devuelven 400. Un token con formato correcto pero contenido no válido puede devolver Invalid continuation token.; un formato incorrecto puede producir otro error de parámetro. Los demás modelos ignoran continuationToken.
  • Reanudar tras MAX_TOKENS con un token sin aumentar el presupuesto maxOutputTokens agotado también devuelve 400.

Autorizaciones

Authorization
string
header
requerido

##Todas las APIs requieren autenticación Bearer Token##

Obtener API Key:

Visita la Página de gestión de API Key para obtener tu API Key

Agregar al encabezado de la solicitud:

Parámetros de ruta

model
enum<string>
requerido

Selecciona el modelo de texto Gemini que deseas invocar:

Opciones disponibles:
gemini-4-argon,
gemini-3.8-flash,
gemini-3.7-flash,
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
Ejemplo:

"gemini-3.6-flash"

Cuerpo

application/json
contents
object[]
requerido

List of conversation contents, supports multi-turn dialogue and multimodal input

Minimum array length: 1
systemInstruction
object

System instruction (optional), mainly text content

tools
object[]

Herramientas que puede invocar el modelo. Se admiten tres tipos:

  • functionDeclarations: llamadas a funciones
  • codeExecution: ejecución de código
  • googleSearch: búsqueda web con Google Search. Envíe {"googleSearch": {}} (camelCase; google_search devuelve HTTP 400). Disponible en todos los modelos de texto Gemini. La respuesta incluye consultas y fuentes en candidates[].groundingMetadata; se factura por llamada.
Ejemplo:
toolConfig
object

Tool calling configuration (optional)

safetySettings
object[]

Safety settings list (optional)

generationConfig
object

Generation configuration parameters (optional)

continuationToken
string

Token de continuación de salidas largas (solo gemini-4-argon). Copia el último candidates[0].continuationToken sin cambios en el nivel superior de la solicitud. Conserva los contents, systemInstruction y tools originales; no añadas la salida parcial.

  • CONTINUATION: mantén todos los ajustes de generación y reenvía el token.
  • MAX_TOKENS: también puede devolver un token; aumenta manualmente el presupuesto acumulado maxOutputTokens antes de reanudar, sin cambiar los demás ajustes. Mantener el presupuesto agotado devuelve 400.
  • Los tokens no válidos devuelven 400.
  • Los demás modelos ignoran este campo.

Consulta Referencia completa de la API nativa, sección «Continuación de salidas largas».

cachedContent
string

Cached content name, in the form cachedContents/{cachedContent}

Respuesta

Contenido generado exitosamente

Descripción del formato de respuesta:

  • Al usar el endpoint generateContent, devuelve GenerateContentResponse (devuelve la respuesta completa de una vez)
  • Al usar el endpoint streamGenerateContent, devuelve StreamGenerateContentResponse (respuesta en streaming, devuelve contenido en fragmentos)
candidates
object[]

List of candidate responses

promptFeedback
object
usageMetadata
object

Estadísticas de uso

modelVersion
string

Model version

Ejemplo:

"gemini-3.6-flash"

responseId
string

Response ID

Ejemplo:

"l-LoaPu0BPmo1dkP6ZPHiQc"