Chat Completions vs Responses API : comparaison
Mis à jour le 30 juillet 2026
Deux endpoints, deux philosophies
xAI propose deux endpoints pour interagir avec les modèles Grok : Chat Completions (/v1/chat/completions) et l’API Responses (/v1/responses). Comprendre leurs différences est essentiel pour choisir le bon endpoint selon votre projet et planifier une éventuelle migration.
| Aspect | Chat Completions | API Responses |
|---|---|---|
| Statut | Legacy | Principal (recommandé) |
| Gestion de l'état | Stateless (renvoyer l'historique) | Stateful (previous_response_id) |
| Stockage serveur | Non | Oui (30 jours avec store: true) |
| Conversation | Tableau messages | Chaînée par ID |
| Outils serveur | Function calling uniquement | web_search, x_search, code_interpreter, functions |
| Raisonnement chiffré | Non | Oui (encrypted_content) |
| Nouvelles fonctionnalités | Non prioritaire | Prioritaire |
| Compatibilité OpenAI | Totale | Partielle |
Gestion de l’état : la différence fondamentale
Chat Completions : vous gérez l’historique
À chaque requête, vous devez renvoyer l’intégralité de la conversation :
# Chat Completions — tout renvoyer a chaque fois
response = client.chat.completions.create(
model="grok-4.20-0309-reasoning",
messages=[
{"role": "system", "content": "Tu es un assistant utile."},
{"role": "user", "content": "Bonjour, je m'appelle Alice."},
{"role": "assistant", "content": "Bonjour Alice ! Comment puis-je vous aider ?"},
{"role": "user", "content": "Quel est mon prénom ?"}
]
)
API Responses : le serveur gère l’historique
Avec l’API Responses, un simple identifiant suffit pour continuer une conversation :
# Responses API — juste l'ID de la réponse précédente
response1 = client.responses.create(
model="grok-4.20-0309-reasoning",
input="Bonjour, je m'appelle Alice."
)
response2 = client.responses.create(
model="grok-4.20-0309-reasoning",
input="Quel est mon prénom ?",
previous_response_id=response1.id
)
Le serveur conserve le contexte et reconstruit l’historique automatiquement. Vous ne payez pas moins de tokens (l’historique est toujours facture), mais vous simplifiez votre code et réduisez la taille de vos requêtes.
Outils et fonctionnalités exclusives
L’API Responses donne accès à des outils serveur que Chat Completions ne propose pas :
web_search: recherche sur le web en temps réelx_search: recherche dans les publications X (Twitter)code_interpreter: exécution de code Python côté serveur
Ces outils sont intégrés directement dans la requête :
response = client.responses.create(
model="grok-4.20-0309-reasoning",
input="Quelles sont les dernières nouvelles sur l'IA ?",
tools=[{"type": "web_search"}]
)
Chat Completions supporte le function calling (outils définis par le développeur), mais pas ces outils serveur managés par xAI.
Quand utiliser Chat Completions ?
Chat Completions reste le bon choix dans plusieurs scénarios :
- Migration depuis OpenAI : votre code existant fonctionne sans modification majeure
- Multi-fournisseurs : vous voulez pouvoir basculer entre OpenAI, Anthropic et xAI avec le même code
- Frameworks tiers : LangChain, LlamaIndex, Haystack et la plupart des frameworks utilisent le format Chat Completions
- Contrôle total : vous voulez gérer vous-même l’historique (resumage, filtrage, modification)
Quand utiliser l’API Responses ?
L’API Responses est préférable pour :
- Nouveaux projets : bénéficiez des dernières fonctionnalités dès le départ
- Outils serveur : besoin de recherche web, exécution de code ou recherche X
- Conversations longues : pas besoin de renvoyer l’historique à chaque requête
- Raisonnement chiffré : accès au contenu de raisonnement pour la continuité entre requêtes
Points clés à retenir
- Chat Completions est stateless (vous gérez l’historique), l’API Responses est stateful (le serveur gère)
- L’API Responses offre des outils serveur exclusifs : web_search, x_search, code_interpreter
- Chat Completions à une compatibilité OpenAI totale, l’API Responses est spécifique à xAI
- Les deux endpoints facturent l’historique complet de la conversation
- Utilisez Chat Completions pour la compatibilité, l’API Responses pour les nouvelles fonctionnalités