Au 26/10/2026, les notes de version de la plateforme Claude placent Claude Models on Google Cloud (Anthropic managed) au 22/10/2026 : endpoint opéré par Anthropic, permissions via Google Cloud IAM, facturation Marketplace. Bonne nouvelle : la doc indique que le corps de requête est identique à l'API Claude, et les sorties structurées figurent dans la liste des capacités. Le JSON Schema reste dans output_config.format. Ce qui change, c'est l'URL de base, le jeton Bearer et le workspace dans l'URL — pas l'emplacement du schéma. Pour l'API directe, voir à quel niveau écrire output_config ; pour Bedrock et le bloc text, voir sorties structurées sur Bedrock.
Si vous copiez une requête d'extraction depuis Bedrock ou api.anthropic.com vers GCP, trois erreurs reviennent souvent : garder x-api-key ; mettre le workspace seulement dans un en-tête ; supposer que l'en-tête de version 2026-10-21 du 21 octobre est déjà la valeur par défaut dans l'exemple GCP officiel. Le schéma lui-même change rarement de niveau.
Ce que le 22 octobre ouvre vraiment
Au 26/10/2026, d'après les notes de version et la documentation hébergement Anthropic :
- Endpoint :
https://claude.googleapis.com/v1/projects/{project}/locations/global/workspaces/{workspace}/invoke, chemin Messages :.../invoke/v1/messages. - Facturation : Google Cloud Marketplace ; activer le produit Claude API pour le projet et lier l'organisation côté Anthropic.
- Capacités : la doc GA inclut Structured outputs, Tool use (connecteur MCP inclus), Message Batches, Prompt caching, Fast mode (Opus 5.5), etc.
- Le même jour : la même note de version mentionne aussi Opus 5.5 Fast mode sur Google Cloud — sans conflit avec les sorties structurées, mais modèle de facturation et de latence différent.
Une phrase. Ce qui change, c'est comment vous vous connectez (URL + OAuth Google), pas où va le contrat (toujours output_config.format.schema).
URL de base, workspace et Bearer
Trois différences nettes par rapport à l'API Claude directe :
- L'URL de base utilise le chemin projet / workspace sur
claude.googleapis.com, pashttps://api.anthropic.com. - L'authentification passe par
Authorization: Bearer <google-access-token>— ne pas envoyerx-api-key. - L'ID de workspace est dans l'URL — ne pas envoyer l'en-tête
anthropic-workspace-id.
Le reste est identique à l'API Claude : anthropic-version, anthropic-beta, corps, streaming et forme de réponse. Le routage au niveau organisation (/v1/organizations/...) avec le préfixe claudeOrganization/invoke sans workspace peut attendre si vous ne faites qu'une extraction Messages ponctuelle.
anthropic-version : aligné sur l'API directe ?
Le 21/10/2026, l'API Claude directe est passée par défaut à anthropic-version: 2026-10-21 (voir la note du 21 octobre), ce qui interdit des champs comme temperature. L'exemple cURL officiel de l'hébergement Anthropic sur Google Cloud indique encore anthropic-version: 2023-06-01 ; la doc partenaire Google Cloud (dernière mise à jour 22/10/2026 UTC) aussi.
La doc dit seulement que « les en-têtes sont identiques à l'API Claude », sans imposer ni interdire 2026-10-21 sur GCP. En pratique :
- D'abord, suivre l'exemple officiel avec
2023-06-01pour une requête avecoutput_config. - Si vous voulez unifier l'en-tête de version dans l'entreprise, tester
2026-10-21dans un projet de test et vérifier les 400 sur les paramètres d'échantillonnage. - Ne pas appliquer les restrictions modèle / version de Bedrock (2026-10-21 seulement à partir de 4.7+) à l'hébergement Anthropic GCP — c'est une autre ligne.
Le schéma dans output_config ne change pas
La sortie structurée utilise toujours output_config.format, type vaut json_schema, le contrat est dans l'objet schema. La doc hébergement Anthropic liste Structured outputs parmi les fonctions prises en charge, avec la même sémantique que la page sorties structurées.
curl "https://claude.googleapis.com/v1/projects/$PROJECT/locations/global/workspaces/$WORKSPACE/invoke/v1/messages" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Extract ticket category and priority from the text."
}
],
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["billing", "technical", "other"] },
"priority": { "type": "string", "enum": ["low", "medium", "high", "urgent"] }
},
"required": ["category", "priority"],
"additionalProperties": false
}
}
}
}'
La réponse se parse toujours en JSON dans un bloc de contenu dont type vaut text, pas comme Bedrock Converse qui enferme le schéma dans une chaîne. Les limites du sous-ensemble (additionalProperties: false, pas de minimum, etc.) sont les mêmes que sur l'API Claude directe.
Dans la même requête, vous pouvez encore mettre strict: true sur un outil ; le connecteur MCP est listé, mais la liste d'outils et le schéma restent deux contrats JSON distincts.
Hébergement Anthropic vs hébergement Google
Sur Google Cloud, il y a deux lignes Claude ; les formes JSON diffèrent — ne pas mélanger les configs :
- Anthropic managed (cette note) : endpoint API Claude
/v1/messages;modeldans le corps JSON ;anthropic-versionen en-tête ; sortie structurée viaoutput_config. - Google managed (Agent Platform) : URL de prédiction avec le modèle ; corps avec
anthropic_version; streaming via:streamRawPredict. Les anciens ID de modèle snapshot utilisent@à la place du tiret de date (ex.claude-haiku-4-5@20251001).
Haiku 5.5 vaut claude-haiku-5-5 dans la doc API Claude ; la doc Google managed montre parfois des exemples 4.x avec @. En changeant de mode d'hébergement, corrigez d'abord la chaîne de modèle, puis l'emplacement du schéma.
Vérifier dans la boîte à outils
{
"ok_body": {
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Classify this ticket." }],
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"category": { "type": "string" },
"priority": { "type": "string" }
},
"required": ["category", "priority"],
"additionalProperties": false
}
}
}
},
"wrong_vertex_shape": {
"anthropic_version": "vertex-2023-10-16",
"messages": [{ "role": "user", "content": "Hi" }]
},
"ok_ticket": { "category": "billing", "priority": "urgent" },
"bad_ticket": { "category": "billing", "priority": "2" }
}
- Coller les quatre blocs dans le formatage JSON.
wrong_vertex_shapeest le style Google managed, pas le corps Messages de l'hébergement Anthropic. - Avec JSON → Schema, partir de
ok_ticketet confronterok_body.output_config.format.schema. - Validation de Schema :
ok_ticketpasse,bad_ticketest refusé (priorityhors enum). - Entrées d'outil : appels de fonction ; contrat de sortie : sortie structurée.
Questions fréquentes
Faut-il encore envoyer x-api-key sur l'hébergement Anthropic Google Cloud ?
Non. Utiliser le jeton Bearer Google.
Cette ligne doit-elle envoyer anthropic-version 2026-10-21 comme l'API directe ?
L'exemple officiel reste sur 2023-06-01. Tester sur GCP avant de monter de version.
Faut-il encore additionalProperties: false dans output_config.format.schema ?
Oui. Même sous-ensemble que l'API directe.
Est-ce le même endpoint que l'Agent Platform en hébergement Google ?
Non. URL et corps de requête diffèrent.
Comment se répartit le travail avec la note Bedrock ?
Celle-là : AWS Bedrock ; celle-ci : la connexion GCP Anthropic managed du 22/10/2026.
En bref
Au 26/10/2026, Claude on Google Cloud (Anthropic managed) est daté du 22/10/2026. Le JSON Schema de la sortie structurée reste dans output_config.format.schema. Passez à claude.googleapis.com, workspace dans l'URL, Bearer Google, sans x-api-key. L'exemple officiel garde anthropic-version: 2023-06-01, ce qui peut diverger du défaut direct 2026-10-21 — à valider séparément. Ne pas mélanger avec le corps anthropic_version de l'Agent Platform en hébergement Google. Prochaine étape : le même schéma sur un projet de test GCP, puis une politique d'en-tête de version unifiée.