Google lanzó Gemini 3.7 Flash el 13 de agosto de 2026, tres semanas después de 3.6 Flash, y lo presenta como “nuestro modelo de caballo de batalla más inteligente”. Para desarrolladores, los puntos clave son: las puntuaciones de codificación agéntica aumentaron notablemente —DeepSWE v1.1 pasó de 49.0% a 65.3%—, el precio de introducción es la mitad del precio de lanzamiento de 3.6 Flash y la superficie de la API no cambió. Si ya consume Gemini, solo debe cambiar el ID del modelo. Si aún no lo usa, este es un punto de entrada económico para un modelo de esta capacidad.
Esta guía muestra cómo obtener una clave de API, hacer una primera llamada con cURL, migrarla a Python y Node.js, transmitir respuestas, ajustar generationConfig y probar prompts en Apidog antes de integrarlos en su aplicación. Según el anuncio oficial, el modelo ofrece 1 millón de tokens de contexto, 64k tokens de salida, entrada multimodal, llamada a funciones, búsqueda como herramienta y uso de computadora.
Si construyó con la generación anterior, la forma de la solicitud se mantiene desde nuestra guía de la API de vista previa de Gemini 3 Flash. Este artículo se centra en el flujo de trabajo de 3.7.
En resumen
-
ID del modelo:
gemini-3.7-flash - Endpoint síncrono:
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
-
Autenticación: encabezado
x-goog-api-key: <KEY>. - Precio de introducción: $0.75 por 1 millón de tokens de entrada y $3.75 por 1 millón de tokens de salida hasta el 31 de diciembre de 2026. Desde el 1 de enero de 2027, las tarifas pasan a $1.50 y $7.50.
- Límites: 1 millón de tokens de entrada y 64k tokens de salida.
- Entrada: texto, imagen, video, audio y PDF.
- Salida: texto.
-
Streaming: use
:streamGenerateContent?alt=sse. - Pruebas: valide las solicitudes en Apidog antes de escribir código de aplicación.
Para qué sirve Gemini 3.7 Flash
Los modelos Flash equilibran capacidad, velocidad y precio. Gemini 3.7 Flash reduce ese compromiso respecto a 3.6 Flash:
- DeepSWE v1.1: 49.0% → 65.3%
- FrontierCode 1.1 Main: 34.4% → 43.6%
- AutomationBench: 17.0% → 30.4%
- WebDev Arena Elo: 1538 → 1588
Use 3.7 Flash especialmente cuando:
- Ejecute bucles de agentes: AutomationBench casi duplicó su puntuación. Es adecuado para flujos de varios pasos y llamadas frecuentes a herramientas.
- Genere o depure código: las mejoras en DeepSWE y FrontierCode apuntan a mejores resultados en corrección de errores y generación de código desplegable.
- Procese documentos: GDP.pdf pasó de 22.0% a 34.0%, y PDF es un tipo de entrada de primera clase.
-
Necesite multimodalidad con presupuesto limitado: texto, imágenes, video, audio y PDF usan el mismo array
contents.
Para más detalles sobre capacidades, puntuaciones y salvaguardas, consulte novedades de Gemini 3.7 Flash. Como contexto, Gemini 3.5 Pro sigue retrasado y Axios informa que Google está enviando actualizaciones de Flash antes de su próximo modelo insignia.
Obtener una clave de API
Tiene dos rutas.
AI Studio: ruta rápida
- Abra aistudio.google.com/apikey.
- Haga clic en Obtener clave de API.
- Seleccione un proyecto de Google Cloud.
- Copie la clave generada.
La clave funciona con generativelanguage.googleapis.com. Gemini 3.7 Flash está disponible en más de 160 países.
Vertex AI: ruta de producción
Si su infraestructura está en GCP, use Vertex AI:
- Autenticación mediante OAuth, cuentas de servicio o tokens de corta duración.
- Endpoint bajo
aiplatform.googleapis.com. - IAM, registros de auditoría y endpoints regionales.
- Mismo ID de modelo y mismo cuerpo de solicitud; cambian la URL y el mecanismo de autenticación.
Use AI Studio para prototipos y migre a Vertex antes de enviar tráfico de producción.
Exporte la clave como variable de entorno:
export GEMINI_API_KEY="AIza..."
No codifique la clave en el repositorio ni la envíe como ?key= en producción. Las cadenas de consulta pueden quedar registradas en logs de servidores y proxies.
Endpoint y autenticación
Para una solicitud síncrona:
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
Para streaming mediante Server-Sent Events:
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse
Envíe la clave en el encabezado:
x-goog-api-key: $GEMINI_API_KEY
Primera solicitud con cURL
Pruebe primero una solicitud simple antes de integrar un SDK:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Revisa este SQL en busca de riesgo de inyección: SELECT * FROM orders WHERE id = ${orderId}"
}]
}],
"generationConfig": {
"temperature": 0.3,
"maxOutputTokens": 1024
}
}'
La respuesta contiene:
-
candidates: candidatos generados. -
candidates[].content.parts: texto o llamadas a funciones. -
candidates[].finishReason: motivo de finalización. -
usageMetadata: consumo de tokens.
Revise usageMetadata en cada llamada. Los tokens de salida cuestan cinco veces más que los tokens de entrada durante la tarifa introductoria.
Gemini usa
contents,roleyparts; no usa el formatomessagesde OpenAI. Si migra desde otro proveedor, adapte ese esquema antes de depurar prompts.
Inicio rápido con Python
Instale o actualice el SDK:
pip install --upgrade google-generativeai
Cree una llamada con instrucción de sistema y configuración de generación:
import os
import google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
model = genai.GenerativeModel(
model_name="gemini-3.7-flash",
system_instruction=(
"Eres un revisor de código. "
"Marca los problemas como bloqueantes o no bloqueantes."
),
generation_config={
"temperature": 0.3,
"max_output_tokens": 2048,
},
)
response = model.generate_content(
"Revisa esta ruta de Flask en busca de problemas de seguridad:\n\n"
"@app.route('/user/<id>')\n"
"def get_user(id):\n"
" return db.execute(f'SELECT * FROM users WHERE id = {id}')"
)
print(response.text)
print("tokens de entrada:", response.usage_metadata.prompt_token_count)
print("tokens de salida:", response.usage_metadata.candidates_token_count)
Enviar un PDF
La entrada multimodal usa el mismo array de contenido. Para enviar un PDF, súbalo mediante la API de Archivos y páselo como parte de la solicitud:
invoice = genai.upload_file("q3-invoice.pdf")
response = model.generate_content([
invoice,
"Extrae el número de factura, el total y la fecha de vencimiento como JSON.",
])
print(response.text)
Este patrón es útil para extracción estructurada de documentos complejos.
Inicio rápido con Node.js
Instale el SDK:
npm install @google/generative-ai
Use un esquema de respuesta para obtener JSON analizable:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-3.7-flash",
generationConfig: {
temperature: 0.3,
maxOutputTokens: 2048,
responseMimeType: "application/json",
responseSchema: {
type: "object",
properties: {
severity: {
type: "string",
enum: ["blocking", "non-blocking"],
},
issues: {
type: "array",
items: { type: "string" },
},
},
required: ["severity", "issues"],
},
},
});
const result = await model.generateContent(
"Revisa este manejador de Express: " +
"app.get('/search', (req, res) => res.send(eval(req.query.q)))"
);
console.log(JSON.parse(result.response.text()));
responseSchema solo funciona junto con:
responseMimeType: "application/json"
Use ambos para evitar que el código posterior tenga que procesar texto libre.
Streaming
Para interfaces de chat o respuestas visibles para el usuario, active streaming.
Python
stream = model.generate_content(
"Explica el problema de consulta N+1 con un ejemplo ORM concreto.",
stream=True,
)
for chunk in stream:
if chunk.text:
print(chunk.text, end="", flush=True)
flush=True permite imprimir cada fragmento inmediatamente.
HTTP con SSE
Use:
:streamGenerateContent?alt=sse
Cada línea data: contiene una carga parcial de candidates. El fragmento final incluye usageMetadata, por lo que el conteo de tokens solo es definitivo cuando termina la transmisión.
Ajustar generationConfig
| Parámetro | Tipo | Uso práctico |
|---|---|---|
maxOutputTokens |
entero | Limita la salida hasta el máximo de 64k. Es la principal palanca de coste. |
temperature |
número | De 0 a 2. Use 0.2 a 0.4 para código y extracción; 0.7+ para contenido creativo. |
responseMimeType |
cadena | Use application/json para solicitar JSON. |
responseSchema |
objeto | Impone una estructura de salida junto con MIME JSON. |
topP |
número | Corte de muestreo de núcleo. Mantenga el valor predeterminado salvo que ajuste deliberadamente el muestreo. |
stopSequences |
array | Detiene la generación al encontrar delimitadores definidos. |
No use 64k tokens de salida como valor predeterminado. Ajuste maxOutputTokens al tamaño real que necesita su caso de uso.
Para ejemplos de costes por carga de trabajo, consulte el desglose de precios de Gemini 3.7 Flash.
Además de generationConfig, el cuerpo admite:
tools- Declaraciones de funciones
- Búsqueda como herramienta
- Uso de computadora
-
toolConfigpara forzar llamadas a herramientas
Para implementar estos flujos, consulte el tutorial de llamada a funciones de Gemini 3.7 Flash.
Pruebe el endpoint en Apidog antes de escribir código de aplicación
Iterar prompts dentro de un script suele ser lento: editar, ejecutar, revisar logs y repetir. Además, cada ejecución consume tokens. Un flujo más eficiente es validar primero la solicitud en un cliente API y portar al SDK solo cuando la respuesta sea correcta.
Configure Gemini en Apidog:
- Cree un proyecto e importe la especificación OpenAPI desde la documentación de la API de Google.
-
Añada una variable de entorno llamada
GEMINI_API_KEY. -
Asigne la variable al encabezado
x-goog-api-key. - Guarde el modelo en una variable, por ejemplo:
GEMINI_MODEL=gemini-3.7-flash
-
Construya
contentsen el editor JSON y valide el cuerpo antes de enviarlo. - Pruebe el endpoint SSE para ver los fragmentos de streaming en vivo.
- Guarde respuestas correctas como ejemplos para reutilizarlas en pruebas sin llamar continuamente a la API real.
También puede crear escenarios de prueba con aserciones sobre:
finishReason- Esquema de respuesta
usageMetadata- Conteos de tokens
Este enfoque convierte una prueba manual en una suite de regresión para cambios de prompt. Consulte la guía de pruebas de API para ingenieros de QA para aplicar el mismo patrón.
Manejo de errores y límites de velocidad
La API devuelve un objeto error de nivel superior con code, status y message.
| Código | Estado | Significado | Acción recomendada |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
Cuerpo mal formado, rol incorrecto o contents vacío. |
Valide el JSON antes de enviar la solicitud. |
| 401 | UNAUTHENTICATED |
Clave faltante o revocada. | Exporte de nuevo GEMINI_API_KEY y confirme que sigue activa. |
| 403 | PERMISSION_DENIED |
El proyecto no tiene acceso o facturación. | Revise permisos, proyecto y estado de facturación. |
| 429 | RESOURCE_EXHAUSTED |
Se alcanzó un límite de velocidad o cuota. | Reintente con espera aleatoria, agrupe solicitudes o actualice el nivel. |
| 500 | INTERNAL |
Error transitorio del servidor. | Reintente con retroceso exponencial. |
| 503 | UNAVAILABLE |
Servicio sobrecargado. | Reintente después de unos segundos; en Vertex, pruebe otra región. |
Implemente reintentos para errores 429 y 5xx:
import random
import time
RETRYABLE_STATUS_CODES = {429, 500, 503}
def retry_with_backoff(call, max_attempts=5):
for attempt in range(max_attempts):
try:
return call()
except Exception as error:
status_code = getattr(error, "status_code", None)
if status_code not in RETRYABLE_STATUS_CODES:
raise
if attempt == max_attempts - 1:
raise
delay = min(2 ** attempt, 30) + random.uniform(0, 1)
time.sleep(delay)
Mantenga además estas prácticas:
- Configure alertas al 80% de la cuota.
- Consulte los límites actuales en la página de precios y límites de la API de Gemini.
- Guarde el ID del modelo en una variable de entorno para poder volver a
gemini-3.6-flashsin desplegar código.
Preguntas frecuentes
¿Es Gemini 3.7 Flash de uso gratuito?
AI Studio ofrece un nivel gratuito con cuota diaria para prototipos. La tarifa de introducción pagada es de $0.75 por 1 millón de tokens de entrada hasta el 31 de diciembre de 2026.
Para conocer los niveles y sus límites, consulte la guía de acceso gratuito a la API de Gemini.
¿Cuál es la diferencia entre AI Studio y Vertex AI?
El modelo y el cuerpo de solicitud son los mismos.
-
AI Studio: clave de API y
generativelanguage.googleapis.com. -
Vertex AI: OAuth,
aiplatform.googleapis.com, IAM, auditoría y endpoints regionales.
Empiece en AI Studio y migre a Vertex cuando tenga tráfico de producción.
¿Puedo enviar imágenes, audio y PDF?
Sí. Puede enviar texto, imagen, video, audio y PDF como partes del array contents, en línea como base64 o por referencia mediante la API de Archivos. La salida es texto.
¿Cuál es el tamaño de contexto y el límite de salida?
El modelo admite 1 millón de tokens de entrada y 64k de salida. Aunque la recuperación de contexto largo sea fiable, dividir entradas extensas puede reducir costes porque cada token de entrada se factura.
¿Debo actualizar desde Gemini 3.6 Flash?
Para agentes y cargas de trabajo de código, las mejoras de rendimiento justifican evaluar la actualización. El cambio básico es sustituir el ID del modelo.
Antes de enviar tráfico de producción, ejecute pruebas de regresión sobre sus prompts. Consulte la guía de migración de 3.6 a 3.7 Flash.
Dónde encaja 3.7 Flash en su pila
Gemini 3.7 Flash combina un precio de introducción inferior con mejoras en agentes, código y procesamiento documental. Una estrategia práctica es:
- Dirigir nuevas pruebas de agentes, código y extracción de documentos a
gemini-3.7-flash. - Limitar
maxOutputTokenspara controlar costes. - Validar prompts y respuestas en un cliente API.
- Crear pruebas de regresión para
finishReason, JSON estructurado y consumo de tokens. - Mantener
gemini-3.6-flashcomo valor de reversión mediante una variable de entorno.
Empiece con la solicitud cURL, valide el contrato de respuesta y luego porte la integración a Python o Node.js. Descargue Apidog para importar la especificación de Gemini, configurar la clave una vez y probar solicitudes síncronas, streaming y llamadas a herramientas desde un mismo espacio de trabajo.

Top comments (0)