En resumen: según la documentación de Claude, la API de Claude de primera parte acepta ahora peticiones Messages y Token Counting de hasta 128 MB (antes 32 MB). Batch llega a 256 MB y la Files API a 500 MB. Eso solo aplica a la API de Anthropic: Amazon Bedrock sigue en 20 MB, Claude en Vertex gestionado por Google en 30 MB, y Claude Platform on AWS, Google Cloud gestionado por Anthropic y Microsoft Foundry en 32 MB. Las pasarelas de terceros también fijan sus propios topes.
Probamos peticiones Messages de 10 MB a 130 MB con nuestra propia clave:
- hasta unos 50 MB todo devolvió 200 en 5 a 9 segundos;
- desde unos 54 MB recibimos 413, y las peticiones más grandes se rechazaron en 1 segundo aproximadamente.
Ante un 413, no cambies de modelo: mide el cuerpo de la petición, reduce imágenes, divide los PDF y elimina capturas antiguas. La ventana de contexto no creció: caber en 128 MB no significa caber en tokens.
Crear API Key y usar Claude en Claude Code →
Cómo reconocer 413 request_too_large
La API oficial devuelve HTTP 413 con el tipo de error request_too_large:
{
"type": "error",
"error": {
"type": "request_too_large",
"message": "Request exceeds the maximum allowed number of bytes."
}
}
Según la página oficial de errores, en la API de Claude de primera parte este error lo devuelve Cloudflare antes de que la petición llegue a los servidores de la API. Es decir:
- la petición nunca llegó al modelo, no hubo salida ni consumo de tokens;
- reenviar la misma petición no sirve, hay que reducir el cuerpo;
- es un problema distinto de 400
invalid_request_error(formato), 429 (límite de frecuencia) y 529 (sobrecarga).
A través de una pasarela de terceros, el cuerpo del 413 cambia. En nuestra prueba vimos dos formas: el mensaje propio de la pasarela (en chino, «cuerpo de la petición demasiado grande, reduce el contenido y reintenta») y bad response status code 413, que indica que el servicio de origen devolvió 413. Trata ambos como «petición demasiado grande». Para otros errores, consulta la solución de errores de la API de Claude Haiku 5.5.
Primero mide tu petición:
import json
body = json.dumps(payload).encode()
print(f"{len(body) / 1024 / 1024:.1f} MB")
Límites por plataforma
| Acceso | Tamaño máximo de petición |
|---|---|
| API de Claude: Messages, Token Counting | 128 MB |
| API de Claude: Message Batches | 256 MB |
| API de Claude: subida a Files API | 500 MB |
| API de Claude: Sessions, Agents, Environments | 32 MB |
| Claude Platform on AWS | 32 MB |
| Claude en Google Cloud (gestionado por Anthropic) | 32 MB |
| Microsoft Foundry | 32 MB |
| Claude en Google Cloud (gestionado por Google, Vertex) | 30 MB |
| Amazon Bedrock | 20 MB |
| Nuestra pasarela (nuestra prueba) | pasa hasta unos 50 MB, 413 desde unos 54 MB |
Cifras según la visión general oficial de la API; la documentación indica que manda la de cada plataforma cloud. Según AlphaSignal, la subida apunta a peticiones con muchas imágenes.
Otros límites se aplican junto al tamaño (según la documentación de Vision y la de PDF):
- cada imagen admite como máximo 8000×8000 px; con más de 20 imágenes en una petición, el lado largo de cada imagen debe ser de 3000 px o menos (antes 2000 px, según AlphaSignal), si no,
invalid_request_errorcon mención a many-image requests; - hasta 600 imágenes por petición, 100 en modelos con contexto de 200K;
- PDF de hasta 600 páginas por petición, 100 si la ventana de contexto es menor de 1M tokens;
- base64 añade cerca de un tercio: un PNG de 3 MB pasa a unos 4 MB.
Solución 1: comprimir y reducir imágenes
El modelo no usa tu resolución completa. Según la documentación, Claude 4.7 y modelos posteriores reducen el lado largo a 2576 px y el resto a 1568 px. Enviar capturas 4K solo multiplica los bytes. Redimensiona antes de enviar:
from PIL import Image
import base64, io
def shrink(path, max_side=1568, quality=80):
im = Image.open(path).convert("RGB")
im.thumbnail((max_side, max_side))
buf = io.BytesIO()
im.save(buf, "JPEG", quality=quality, optimize=True)
return base64.b64encode(buf.getvalue()).decode()
Reglas prácticas:
- guarda las capturas en JPEG (calidad 75 a 85), mucho más ligero que PNG;
- lado largo en 1568 px, 2576 px solo para texto pequeño;
- con más de 20 imágenes, siempre por debajo de 3000 px;
- envía cada imagen una sola vez en la conversación y luego refiérete a ella en texto.
Solución 2: PDF grandes con file_id de la Files API
En la API oficial, sube los archivos grandes a la Files API (500 MB por archivo) y referencia el file_id en Messages; el cuerpo solo lleva un ID:
curl https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-F "file=@report.pdf"
# -> {"id": "file_011C...", ...}
{"type": "document", "source": {"type": "file", "file_id": "file_011C..."}}
Según la documentación, las conversaciones de varios turnos y los agentes reenvían todo el historial en cada turno, así que las imágenes base64 viajan cada vez; con file_id el cuerpo sigue pequeño.
Si tu pasarela no admite la Files API (en esta prueba, la llamada de subida a nuestra pasarela devolvió 400), divide el PDF en partes de 100 páginas como máximo y dentro del límite de petición:
qpdf report.pdf --pages . 1-100 -- part1.pdf
qpdf report.pdf --pages . 101-200 -- part2.pdf
Cada página de PDF se procesa como imagen; en PDF escaneados, bajar la resolución de las imágenes incrustadas los reduce mucho.
Solución 3: en sesiones largas de computer use y Claude Code, elimina capturas antiguas
Computer use y los agentes con muchas capturas son los que más chocan con el 413: cada paso añade una captura en tool_result, cada turno reenvía todo el historial, y tras unas decenas de pasos el cuerpo supera los 100 MB. Según la documentación, las capturas dentro de tool_result también cuentan para el umbral de 20 imágenes.
Qué hacer:
- conserva solo las últimas capturas y sustituye las antiguas por una línea de texto («paso 12: ajustes abiertos»);
- en tu propio bucle de agente, resume el historial cada N pasos;
- en Claude Code, ejecuta
/compacto abre una sesión nueva para tareas largas. Para saber cuándo compacta Claude Code, consulta la compactación automática de Claude Code.
Para conectar Claude Code a un endpoint de terceros, la configuración global va en ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
"ANTHROPIC_AUTH_TOKEN": "TU_API_KEY"
},
"model": "claude-sonnet-5-5"
}
La dirección es https://api.aicodewith.ai, sin /v1. Pasos completos: configurar una API de terceros en Claude Code; para los cambios de versión de API y SDK del 21 de octubre, consulta la migración Claude API 2026-10-21.
Prueba: qué tamaño acepta nuestra pasarela
Método: claude-sonnet-5-5, max_tokens 16, una petición Messages con varias imágenes base64 (imágenes de 16×16 px con bytes de relleno para mantener pocos tokens), de 10 MB a 130 MB, enviada por POST a https://api.aicodewith.ai/v1/messages.
| Tamaño del cuerpo | Estado | Tiempo |
|---|---|---|
| 4,8 MB | 200 | unos 14 s |
| 10,1 MB | 200 | unos 5 s |
| 40,3 MB | 200 | unos 6 s |
| 50,3 MB | 200 | unos 9 s |
| 52,0 MB | 200 | unos 9 s |
| 53,7 MB | 413 | unos 6 s |
| 60,4 MB | 413 | unos 10 s |
| 75,5 MB | 413 | unos 1 s |
| 98,8 MB | 413 | unos 4 s |
| 129,6 MB | 413 | unos 1 s |
Resultado: en nuestra prueba, las peticiones Messages a través de nuestra pasarela devolvieron 200 hasta unos 52 MB y 413 desde unos 54 MB, por debajo de los 128 MB oficiales. Una conversación con algunas imágenes, unas capturas o un PDF de unas decenas de páginas queda muy lejos; si de verdad necesitas enviar decenas de MB, las tres soluciones anteriores son el camino más seguro. Algunas peticiones perdieron la conexión durante la subida y funcionaron al reenviarlas. Después borramos el script y los archivos de prueba.
Crear API Key y conectar Claude a Claude Code →
Preguntas frecuentes
Con 128 MB, ¿puedo enviar más contenido?
Creció el límite de bytes, no la ventana de contexto. Una imagen grande reducida a la resolución de trabajo del modelo tiene un número fijo de tokens; los bytes de más son ancho de banda desperdiciado. El texto suele chocar con la ventana de contexto mucho antes de 128 MB.
¿Qué diferencia hay entre 413 y 400 «prompt is too long»?
413 significa demasiados bytes y la petición se detiene antes del modelo; prompt is too long significa demasiados tokens para la ventana de contexto y la petición sí llegó a la API. En el primero reduce bytes; en el segundo, quita contenido o compacta el historial.
¿Por qué sigo viendo 413 en Bedrock?
Bedrock admite 20 MB y Vertex gestionado por Google 30 MB; los 128 MB solo aplican a la API de Claude de primera parte. Comprime según el límite de la plataforma.
¿Batch admite peticiones más grandes?
Un lote completo puede ocupar 256 MB, pero cada elemento sigue siendo una petición Messages. Batch sirve para muchas tareas offline, no para saltarse el tamaño por petición.
¿Reenviar soluciona el 413?
No. El mismo cuerpo se rechaza siempre; redúcelo primero.



