Claude API 413 request_too_large : la limite passe à 128 Mo — limites Bedrock et passerelles tierces, envoyer de gros PDF et des captures

La limite des requêtes Messages de l'API Claude passe de 32 Mo à 128 Mo, mais Bedrock reste à 20 Mo, Vertex géré par Google à 30 Mo, et les passerelles tierces ont leurs propres plafonds. Reconnaître l'erreur 413 request_too_large, tableau des limites par plateforme, compresser les images, envoyer les PDF par file_id, alléger les longues sessions computer use et Claude Code, et notre test de 10 Mo à 130 Mo.

7 分钟阅读
Claude API 413 request_too_large : la limite passe à 128 Mo — limites Bedrock et passerelles tierces, envoyer de gros PDF et des captures

En bref : selon la documentation Claude, l'API Claude de premier niveau accepte désormais des requêtes Messages et Token Counting jusqu'à 128 Mo (contre 32 Mo). Batch monte à 256 Mo et la Files API à 500 Mo. Cela ne concerne que l'API d'Anthropic : Amazon Bedrock reste à 20 Mo, Claude sur Vertex géré par Google à 30 Mo, et Claude Platform on AWS, Google Cloud géré par Anthropic et Microsoft Foundry à 32 Mo. Les passerelles tierces fixent aussi leurs plafonds.

Nous avons testé des requêtes Messages de 10 Mo à 130 Mo avec notre propre clé :

  • jusqu'à environ 50 Mo, tout a répondu 200 en 5 à 9 secondes ;
  • à partir d'environ 54 Mo, nous avons reçu 413, et les plus grosses requêtes étaient refusées en 1 seconde environ.

Face à une 413, ne changez pas de modèle : mesurez le corps de la requête, puis réduisez les images, découpez les PDF et retirez les anciennes captures. La fenêtre de contexte n'a pas grandi : tenir dans 128 Mo ne veut pas dire tenir en tokens.

Créer une API Key et utiliser Claude dans Claude Code →

Reconnaître 413 request_too_large

L'API officielle renvoie HTTP 413 avec le type d'erreur request_too_large :

json
{
  "type": "error",
  "error": {
    "type": "request_too_large",
    "message": "Request exceeds the maximum allowed number of bytes."
  }
}

Selon la page officielle des erreurs, sur l'API Claude de premier niveau cette erreur est renvoyée par Cloudflare avant que la requête n'atteigne les serveurs de l'API. Donc :

  • la requête n'a jamais atteint le modèle, aucune sortie, aucun token consommé ;
  • relancer la même requête ne sert à rien, il faut réduire le corps ;
  • c'est un autre problème que 400 invalid_request_error (format), 429 (limite de débit) ou 529 (surcharge).

Via une passerelle tierce, le corps de la 413 change. Nous en avons vu deux formes : le message propre à la passerelle (en chinois, « corps de requête trop volumineux, réduisez le contenu et réessayez ») et bad response status code 413, qui signifie que l'amont a renvoyé 413. Traitez les deux comme « requête trop grosse ». Pour les autres erreurs, voir le dépannage des erreurs Claude Haiku 5.5.

Mesurez d'abord votre requête :

python
import json
body = json.dumps(payload).encode()
print(f"{len(body) / 1024 / 1024:.1f} MB")

Limites par plateforme

AccèsTaille max. de requête
API Claude : Messages, Token Counting128 Mo
API Claude : Message Batches256 Mo
API Claude : envoi Files API500 Mo
API Claude : Sessions, Agents, Environments32 Mo
Claude Platform on AWS32 Mo
Claude sur Google Cloud (géré par Anthropic)32 Mo
Microsoft Foundry32 Mo
Claude sur Google Cloud (géré par Google, Vertex)30 Mo
Amazon Bedrock20 Mo
Notre passerelle (notre test)passe jusqu'à environ 50 Mo, 413 dès environ 54 Mo

Chiffres tirés de la vue d'ensemble officielle de l'API ; la documentation précise que celle de chaque plateforme cloud fait foi. Selon AlphaSignal, la hausse vise les requêtes chargées en images.

D'autres limites s'ajoutent à la taille (selon la doc Vision et la doc PDF) :

  • chaque image fait au plus 8000×8000 px ; au-delà de 20 images dans une requête, le grand côté de chaque image doit rester sous 3000 px (2000 px auparavant, selon AlphaSignal), sinon invalid_request_error mentionnant many-image requests ;
  • jusqu'à 600 images par requête, 100 pour les modèles à contexte de 200K ;
  • 600 pages de PDF par requête, 100 si la fenêtre de contexte est inférieure à 1M tokens ;
  • le base64 ajoute environ un tiers : un PNG de 3 Mo devient environ 4 Mo.

Solution 1 : compresser et sous-échantillonner les images

Le modèle ne lit pas votre pleine résolution. Selon la documentation, Claude 4.7 et les modèles suivants ramènent le grand côté à 2576 px, les autres à 1568 px. Envoyer des captures 4K multiplie seulement les octets. Redimensionnez avant l'envoi :

python
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()

Repères :

  • convertir les captures en JPEG (qualité 75 à 85), bien plus léger que le PNG ;
  • grand côté à 1568 px, 2576 px seulement pour du petit texte ;
  • au-delà de 20 images, toujours sous 3000 px ;
  • envoyer une image une seule fois dans la conversation, puis y faire référence en texte.

Solution 2 : envoyer les gros PDF par file_id de la Files API

Sur l'API officielle, envoyez le fichier à la Files API (500 Mo par fichier), puis référencez le file_id dans Messages : le corps ne contient plus qu'un identifiant.

bash
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...", ...}
json
{"type": "document", "source": {"type": "file", "file_id": "file_011C..."}}

Selon la documentation, les conversations multi-tours et les agents renvoient tout l'historique à chaque tour, donc les images base64 repartent à chaque fois ; avec file_id, le corps reste léger.

Si votre passerelle ne prend pas en charge la Files API (l'appel d'envoi sur notre passerelle a renvoyé 400 lors de ce test), découpez le PDF en parties de 100 pages au plus, sous la limite de requête :

bash
qpdf report.pdf --pages . 1-100 -- part1.pdf
qpdf report.pdf --pages . 101-200 -- part2.pdf

Chaque page de PDF est traitée comme une image : baisser la résolution des images d'un PDF scanné le réduit beaucoup.

Solution 3 : sessions computer use et Claude Code longues, retirer les anciennes captures

Computer use et les agents à captures tombent le plus souvent sur la 413 : chaque étape ajoute une capture dans tool_result, chaque tour renvoie tout l'historique, et après quelques dizaines d'étapes le corps dépasse 100 Mo. Selon la documentation, les captures dans tool_result comptent aussi dans le seuil des 20 images.

À faire :

  • ne garder que les dernières captures et remplacer les anciennes par une ligne de texte (« étape 12 : page des réglages ouverte ») ;
  • dans votre propre boucle d'agent, résumer l'historique toutes les N étapes ;
  • dans Claude Code, lancer /compact ou ouvrir une nouvelle session pour les tâches longues. Pour le déclenchement de la compaction, voir la compaction automatique de Claude Code.

Pour brancher Claude Code sur un point d'accès tiers, la configuration globale va dans ~/.claude/settings.json :

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "VOTRE_API_KEY"
  },
  "model": "claude-sonnet-5-5"
}

L'adresse est https://api.aicodewith.ai, sans /v1. Étapes complètes : configurer une API tierce dans Claude Code ; pour les changements de version d'API et de SDK du 21 octobre, voir la migration Claude API 2026-10-21.

Test : quelle taille accepte notre passerelle

Méthode : claude-sonnet-5-5, max_tokens 16, une requête Messages avec plusieurs images base64 (images de 16×16 px complétées d'octets de remplissage pour limiter les tokens), de 10 Mo à 130 Mo, envoyée en POST à https://api.aicodewith.ai/v1/messages.

Taille du corpsStatutDurée
4,8 Mo200environ 14 s
10,1 Mo200environ 5 s
40,3 Mo200environ 6 s
50,3 Mo200environ 9 s
52,0 Mo200environ 9 s
53,7 Mo413environ 6 s
60,4 Mo413environ 10 s
75,5 Mo413environ 1 s
98,8 Mo413environ 4 s
129,6 Mo413environ 1 s

Résultat : lors de notre test, les requêtes Messages via notre passerelle ont renvoyé 200 jusqu'à environ 52 Mo et 413 dès environ 54 Mo, en dessous des 128 Mo officiels. Un échange avec quelques images, quelques captures ou un PDF de quelques dizaines de pages en est très loin ; pour envoyer des dizaines de Mo, les trois solutions ci-dessus sont plus sûres. Quelques requêtes ont perdu la connexion pendant l'envoi et sont passées au renvoi. Nous avons supprimé le script et les fichiers de test ensuite.

Créer une API Key et connecter Claude à Claude Code →

FAQ

Avec 128 Mo, puis-je envoyer plus de contenu ?

La limite en octets a grandi, pas la fenêtre de contexte. Une grande image ramenée à la résolution de travail du modèle a un nombre de tokens fixe : les octets en plus sont de la bande passante perdue. Le texte bute sur la fenêtre de contexte bien avant 128 Mo.

Quelle différence entre 413 et 400 « prompt is too long » ?

413 : trop d'octets, la requête est arrêtée avant le modèle. prompt is too long : trop de tokens pour la fenêtre de contexte, la requête a bien atteint l'API. Réduisez les octets dans le premier cas, le contenu ou l'historique dans le second.

Pourquoi encore une 413 sur Bedrock ?

Bedrock est limité à 20 Mo et Vertex géré par Google à 30 Mo ; les 128 Mo ne valent que pour l'API Claude de premier niveau. Compressez selon la limite de la plateforme.

Batch permet-il des requêtes plus grosses ?

Un lot entier peut faire 256 Mo, mais chaque élément reste une requête Messages. Batch sert aux traitements hors ligne en volume, pas à contourner la taille par requête.

Relancer corrige-t-il la 413 ?

Non. Le même corps est refusé à chaque fois ; réduisez-le d'abord.

相关文章

Extension Claude Code pour VS Code 2.1.313 piégée par une porte dérobée SSH : vérification et nettoyage en 5 minutes pour Cursor / VSCodium

Extension Claude Code pour VS Code 2.1.313 piégée par une porte dérobée SSH : vérification et nettoyage en 5 minutes pour Cursor / VSCodium

Selon OpenSourceMalware et Phorion, l’extension Claude Code 2.1.313 publiée sur Open VSX contenait un chargeur de 66 lignes ajouté en tête d’extension.js. Dès le chargement, il ajoute une clé de l’attaquant à ~/.ssh/authorized_keys, tente d’activer SSH, ouvre un tunnel inverse vers 134.209.82.225 et installe une persistance. Ce guide donne 5 étapes de vérification pour macOS, Linux et Windows, puis la conservation des preuves, le nettoyage et la rotation des identifiants.

Arrêt de Google Jules (31 décembre) : exporter vos données et migrer vers les agents en arrière-plan de Claude Code / Codex

Arrêt de Google Jules (31 décembre) : exporter vos données et migrer vers les agents en arrière-plan de Claude Code / Codex

Google arrête Jules le 31 décembre 2026, et le service passe en lecture seule après le 11 novembre. Ce guide suit l'export officiel (paramètres, variables d'environnement, tâches planifiées, dépôts, mémoires, scripts de setup, toutes les sessions et leurs patchs) puis place chaque élément dans Claude Code et Codex, avec les durées mesurées sur le même export dans les deux clients (Claude Code environ 15 s, Codex environ 44 s).

Pourquoi Claude bannit-il des comptes ? La théorie communautaire du « système de points » et Claude Code sans changer de compte

Pourquoi Claude bannit-il des comptes ? La théorie communautaire du « système de points » et Claude Code sans changer de compte

Depuis le 28 octobre, deux publications affirmant que « Claude bannit les comptes selon un système de points » ont cumulé environ 770 000 vues sur X. Nous séparons les affirmations de la communauté de ce qu'Anthropic publie réellement sur les bannissements et les recours, puis nous testons Claude Code 2.1.310 avec une API Key de notre site : les requêtes simples répondent en 1,4 à 1,7 seconde environ, et une petite tâche de correction de bug avec tests se termine en 8,5 secondes. Configuration de Codex et Cursor et dépannage 401/429 inclus.