---
title: "API Messages compatible Anthropic · hébergée en Europe"
description: "Appelez des modèles open-weight au format Messages d'Anthropic sur inference.eu. Compatible avec les SDK Anthropic et Claude Code, traité dans l'UE."
canonical: "https://inference.eu/fr/api/messages/"
language: "fr"
---

POST /v1/messages

# API Messages : requêtes au format Anthropic, traitées dans l'UE

L'API inference.eu comprend aussi le format Messages d'Anthropic. Les outils et SDK conçus pour Anthropic, y compris des agents de code comme Claude Code, envoient leurs requêtes à des modèles open-weight hébergés dans des centres de données européens, sans couche de traduction. Le corps de requête, les en-têtes et les événements de streaming restent les mêmes : seuls l'URL de base, la clé et le nom du modèle changent.

[Contacter l'équipe](https://inference.eu/fr/contact/)[Exemple de requête](#example)

1.  01Format d'API: Anthropic Messages
2.  02Centres de données dans l'UE
3.  03Couvert par un seul DPA

POST /v1/messages

```
curl https://api.inference.eu/v1/messages \
  -H "x-api-key: $INFERENCE_EU_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-oss-120b",
    "max_tokens": 1024,
    "system": "You review pull requests for a Python codebase. Be specific and brief.",
    "messages": [
      {"role": "user", "content": "Is it safe to use a mutable default argument like def add(item, items=[])?"}
    ]
  }'
```

## Ce que fait le point de terminaison

`POST /v1/messages` reçoit une liste `messages` qui alterne entre `user` et `assistant`, avec un prompt système facultatif dans le champ `system`, et renvoie la réponse suivante de l'assistant. Contrairement au format OpenAI, le prompt système n'est pas un message mais un champ distinct, et `max_tokens` est obligatoire à chaque requête.

L'authentification passe par l'en-tête `x-api-key` avec votre clé inference.eu ; l'en-tête `anthropic-version` est accepté tel que l'envoient les clients Anthropic. Les SDK officiels Python et TypeScript fonctionnent dès que vous changez l'URL de base. Comme ils ajoutent eux-mêmes `/v1/messages`, indiquez l'hôte sans le suffixe `/v1`.

## Blocs de contenu et structure de la réponse

`content` peut être une chaîne ou une liste de blocs : `text`, `image` (base64 ou URL) pour les modèles de vision, `tool_use` et `tool_result`. La réponse est un objet message avec `id`, `role: "assistant"`, le `model` et un tableau `content`. Une réponse simple contient un bloc `text` ; un modèle de raisonnement peut le précéder d'un bloc `thinking`.

`stop_reason` vaut `end_turn` en fin normale, `max_tokens` quand la place manque, `stop_sequence` quand l'une de vos `stop_sequences` est rencontrée, et `tool_use` quand le modèle veut appeler un outil. `usage` indique `input_tokens` et `output_tokens`.

## Outils et agents au format Anthropic

Les outils se déclarent dans un tableau `tools`, chacun avec `name`, `description` et un `input_schema` en JSON Schema. Quand le modèle veut s'en servir, la réponse se termine par `stop_reason: "tool_use"` et contient un bloc `tool_use` avec un `id` et un `input`. Vous exécutez l'outil, puis renvoyez un message `user` contenant un bloc `tool_result` qui reprend le même `tool_use_id`.

C'est la boucle qu'un agent de code répète sans cesse : lire un fichier, le modifier, lancer les tests. En le pointant vers inference.eu, votre code source reste dans des centres de données européens. Choisissez un modèle à l'aise avec les longues chaînes d'outils et prévoyez un `max_tokens` large.

## Erreurs et cas particuliers

Les erreurs suivent le format d'Anthropic, `{"type": "error", "error": {"type": "...", "message": "..."}}`, avec le statut HTTP correspondant. Attendez-vous à `invalid_request_error` (400) si `max_tokens` manque ou si les messages n'alternent pas correctement, `authentication_error` (401) pour une clé invalide, `not_found_error` (404) pour un modèle inconnu et `rate_limit_error` (429) lorsqu'une limite de votre offre est atteinte.

Les noms de modèles Anthropic comme Claude ne sont pas disponibles ici : envoyez un identifiant de modèle ouvert. La plupart des clients le permettent via une variable d'environnement ou un réglage. Les fonctions liées aux modèles d'Anthropic peuvent être acceptées sans produire d'effet.

## Messages (Anthropic format)

Endpoint

POST /v1/messages

Catégorie

Endpoints

Format d'API

Anthropic Messages

Base URL

api.inference.eu/v1

Traitement

Centres de données dans l'UE

Entraînement sur vos données

Jamais

## Messages (Anthropic format) : questions fréquentes

Les questions que nous posent le plus les achats, les développeurs et les juristes. Il en manque une ? Posez-la-nous directement.

Oui. Créez le client avec votre clé inference.eu et réglez \`base\_url\` (Python) ou \`baseURL\` (TypeScript) sur l'hôte de l'API, sans le \`/v1\` final, car le SDK ajoute lui-même le chemin. Appelez ensuite \`messages.create\` avec un identifiant de modèle ouvert comme \`gpt-oss-120b\`.

Claude Code lit \`ANTHROPIC\_BASE\_URL\` ainsi que \`ANTHROPIC\_AUTH\_TOKEN\` ou \`ANTHROPIC\_API\_KEY\` dans l'environnement. Renseignez l'hôte d'inference.eu et votre clé, puis choisissez un identifiant de modèle ouvert. Vos requêtes, code source compris, sont alors traitées dans des centres de données de l'UE.

Non. Le point de terminaison accepte le format de requête d'Anthropic, mais les modèles derrière sont des modèles open-weight que nous exécutons dans des centres de données européens. Choisissez un identifiant dans \`GET /v1/models\`. Un code qui fixe un nom de modèle Claude n'a que cette chaîne à modifier.

Le format d'Anthropic impose \`max\_tokens\`, et nous gardons cette règle pour que les clients se comportent ici comme ailleurs. Choisissez une valeur suffisante pour la réponse la plus longue que vous attendez. Avec un modèle de raisonnement, prévoyez aussi de la place pour la réflexion, pas seulement pour la réponse visible.

Oui. Avec \`stream: true\`, vous recevez la séquence d'événements d'Anthropic : \`message\_start\`, \`content\_block\_start\`, \`content\_block\_delta\` avec le texte ou les entrées d'outil, \`content\_block\_stop\`, \`message\_delta\` avec le motif d'arrêt et la consommation, puis \`message\_stop\`. Les SDK Anthropic gèrent ces événements pour vous.

Envoyez votre clé inference.eu dans l'en-tête \`x-api-key\`, comme le font les clients Anthropic. Vous pouvez joindre \`anthropic-version: 2023-06-01\` : il est accepté et ne modifie pas le comportement du modèle. Ne placez jamais la clé dans du code exécuté dans le navigateur.

Oui. \`POST /v1/messages/count\_tokens\` accepte les mêmes champs \`model\`, \`system\`, \`messages\` et \`tools\` qu'une requête Messages et renvoie \`input\_tokens\` sans rien générer. Utilisez-le pour vérifier qu'un long prompt tient dans la fenêtre de contexte ou pour estimer le coût d'un traitement par lots.

Dans les mêmes centres de données européens que toutes les autres requêtes de l'API inference.eu. Le format vient d'Anthropic, le traitement est assuré par nous, dans l'UE. Prompts, code et réponses servent uniquement à répondre à la requête et ne sont jamais utilisés pour entraîner des modèles.

[Poser une question](https://inference.eu/fr/contact/)

## Pages liées

[Présentation de l'API](https://inference.eu/fr/api/)

-   [Count tokensComptez les tokens d'entrée d'une requête Messages avant de l'envoyer. Point de terminaison count\_tokens compatible Anthropic sur inference.eu, traité dans l'UE.Endpoints](https://inference.eu/fr/api/count-tokens/)
-   [Tool callingLaissez des modèles ouverts appeler vos fonctions et vos API grâce à l'appel d'outils compatible OpenAI. Définir les outils, gérer la boucle, dans l'UE.Guides](https://inference.eu/fr/api/tool-calling/)
-   [StreamingRecevez les tokens des modèles ouverts au fil de la génération, en server-sent events aux formats OpenAI et Anthropic. Exemples, fragments et erreurs.Guides](https://inference.eu/fr/api/streaming/)
-   [Chat completionsEnvoyez vos messages à des modèles open-weight au format chat completions d'OpenAI. Traitement dans des centres de données de l'UE, sans entraînement.Endpoints](https://inference.eu/fr/api/chat-completions/)

## Faites passer vos charges IA sur une infrastructure européenne

Dites-nous quels modèles vous utilisez et votre volume approximatif. Nous répondons sous un jour ouvré avec un tarif et la suite.

-   Réponse sous un jour ouvré
-   Tarif adapté à votre volume
-   DPA prêt à signer
