curl --request POST \
--url https://direct.evolink.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "grok-4.7",
"messages": [
{
"role": "user",
"content": "Explique la mise en cache des prompts en une phrase."
}
],
"reasoning_effort": "xhigh",
"max_tokens": 2048,
"prompt_cache_key": "grok-session-001"
}
'import requests
url = "https://direct.evolink.ai/v1/chat/completions"
payload = {
"model": "grok-4.7",
"messages": [
{
"role": "user",
"content": "Explique la mise en cache des prompts en une phrase."
}
],
"reasoning_effort": "xhigh",
"max_tokens": 2048,
"prompt_cache_key": "grok-session-001"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'grok-4.7',
messages: [
{role: 'user', content: 'Explique la mise en cache des prompts en une phrase.'}
],
reasoning_effort: 'xhigh',
max_tokens: 2048,
prompt_cache_key: 'grok-session-001'
})
};
fetch('https://direct.evolink.ai/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'grok-4.7',
'messages' => [
[
'role' => 'user',
'content' => 'Explique la mise en cache des prompts en une phrase.'
]
],
'reasoning_effort' => 'xhigh',
'max_tokens' => 2048,
'prompt_cache_key' => 'grok-session-001'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/chat/completions"
payload := strings.NewReader("{\n \"model\": \"grok-4.7\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explique la mise en cache des prompts en une phrase.\"\n }\n ],\n \"reasoning_effort\": \"xhigh\",\n \"max_tokens\": 2048,\n \"prompt_cache_key\": \"grok-session-001\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"grok-4.7\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explique la mise en cache des prompts en une phrase.\"\n }\n ],\n \"reasoning_effort\": \"xhigh\",\n \"max_tokens\": 2048,\n \"prompt_cache_key\": \"grok-session-001\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/chat/completions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"grok-4.7\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explique la mise en cache des prompts en une phrase.\"\n }\n ],\n \"reasoning_effort\": \"xhigh\",\n \"max_tokens\": 2048,\n \"prompt_cache_key\": \"grok-session-001\"\n}"
response = http.request(request)
puts response.read_body{
"id": "chatcmpl-20260812164515123456789AbCdEfGh",
"model": "grok-4.7",
"object": "chat.completion",
"created": 1786538000,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Prompt caching reuses previously processed prompt prefixes so repeated context is billed at a lower rate.",
"tool_calls": [
{}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 504,
"completion_tokens": 2,
"total_tokens": 526,
"prompt_tokens_details": {
"cached_tokens": 0
}
}
}{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Insufficient quota",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}
}{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Internal server error",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}API tous modèles Grok - Référence complète Chat Completions
- Point de terminaison Chat Completions compatible OpenAI pour les modèles de texte xAI Grok ; sélection du modèle via le paramètre
model(toutes les valeurs figurent dans le tableau du paramètremodel) - Fenêtre de contexte de 500K tokens ; à partir de 200K tokens dans le prompt, tous les types de tokens sont facturés au double du tarif
- La mise en cache du prompt est automatique : les tokens servis depuis le cache sont facturés au tarif d’entrée en cache, moins élevé
- Modes synchrone et streaming (SSE)
- Les appels
functionclassiques sont pris en charge ; pour les outils côté serveur comme la recherche web et la recherche X, utilisez de préférence la Responses API.
curl --request POST \
--url https://direct.evolink.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "grok-4.7",
"messages": [
{
"role": "user",
"content": "Explique la mise en cache des prompts en une phrase."
}
],
"reasoning_effort": "xhigh",
"max_tokens": 2048,
"prompt_cache_key": "grok-session-001"
}
'import requests
url = "https://direct.evolink.ai/v1/chat/completions"
payload = {
"model": "grok-4.7",
"messages": [
{
"role": "user",
"content": "Explique la mise en cache des prompts en une phrase."
}
],
"reasoning_effort": "xhigh",
"max_tokens": 2048,
"prompt_cache_key": "grok-session-001"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'grok-4.7',
messages: [
{role: 'user', content: 'Explique la mise en cache des prompts en une phrase.'}
],
reasoning_effort: 'xhigh',
max_tokens: 2048,
prompt_cache_key: 'grok-session-001'
})
};
fetch('https://direct.evolink.ai/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'grok-4.7',
'messages' => [
[
'role' => 'user',
'content' => 'Explique la mise en cache des prompts en une phrase.'
]
],
'reasoning_effort' => 'xhigh',
'max_tokens' => 2048,
'prompt_cache_key' => 'grok-session-001'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/chat/completions"
payload := strings.NewReader("{\n \"model\": \"grok-4.7\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explique la mise en cache des prompts en une phrase.\"\n }\n ],\n \"reasoning_effort\": \"xhigh\",\n \"max_tokens\": 2048,\n \"prompt_cache_key\": \"grok-session-001\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"grok-4.7\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explique la mise en cache des prompts en une phrase.\"\n }\n ],\n \"reasoning_effort\": \"xhigh\",\n \"max_tokens\": 2048,\n \"prompt_cache_key\": \"grok-session-001\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/chat/completions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"grok-4.7\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explique la mise en cache des prompts en une phrase.\"\n }\n ],\n \"reasoning_effort\": \"xhigh\",\n \"max_tokens\": 2048,\n \"prompt_cache_key\": \"grok-session-001\"\n}"
response = http.request(request)
puts response.read_body{
"id": "chatcmpl-20260812164515123456789AbCdEfGh",
"model": "grok-4.7",
"object": "chat.completion",
"created": 1786538000,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Prompt caching reuses previously processed prompt prefixes so repeated context is billed at a lower rate.",
"tool_calls": [
{}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 504,
"completion_tokens": 2,
"total_tokens": 526,
"prompt_tokens_details": {
"cached_tokens": 0
}
}
}{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Insufficient quota",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}
}{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Internal server error",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}https://direct.evolink.ai, qui offre une meilleure prise en charge des modèles de texte et des connexions persistantes. https://api.evolink.ai est le point d’accès principal pour les services multimodaux et sert d’adresse de secours pour les modèles de texte.function classiques. Pour les outils côté serveur (recherche web, recherche X, exécution de code, recherche de pièces jointes et de collections), utilisez de préférence la Responses API, qui présente leur configuration et leur facturation.Utiliser Grok 4.7
Définissezmodel sur grok-4.7 en conservant le format de requête messages. La fenêtre de contexte est de 500 000 tokens et les connaissances sont arrêtées à mai 2026.
Utilisez le paramètre de premier niveau reasoning_effort. Niveau de raisonnement : low / medium / high (par défaut) / xhigh. Le raisonnement ne peut pas être désactivé. grok-4.7 et grok-4.6 prennent en charge xhigh ; grok-4.5 accepte cette valeur mais la traite comme high. Les tokens de raisonnement sont facturés comme des tokens de sortie.
prompt_cache_key fournit une indication stable de routage du cache aux requêtes partageant le même préfixe de prompt ; il ne garantit pas une réutilisation du cache. Consultez usage.prompt_tokens_details.cached_tokens pour les résultats réels. Pour conserver le raisonnement chiffré entre les tours de conversation, utilisez la Responses API.Autorisations
##Toutes les API nécessitent une authentification Bearer Token##
Obtenir une clé API :
Visitez la Page de gestion des clés API pour obtenir votre clé API
Ajouter à l'en-tête de requête :
Authorization: Bearer YOUR_API_KEY
Corps
Modèle à appeler :
| ID du modèle | Positionnement |
|---|---|
grok-4.7 | Modèle xAI de raisonnement et d'appel d'outils ; contexte de 500K tokens ; prend en charge xhigh ; connaissances arrêtées à 2026-05 |
grok-4.6 | Modèle xAI de raisonnement et d'appel d'outils, fenêtre de contexte de 500K ; ajoute le niveau de raisonnement xhigh ; connaissances arrêtées au 2026-02-01 |
grok-4.5 | Modèle xAI de raisonnement et d'appel d'outils, fenêtre de contexte de 500K ; niveaux de raisonnement jusqu'à high (xhigh est accepté mais rétrogradé en high) |
grok-4.7, grok-4.6, grok-4.5 "grok-4.7"
Liste des messages de chat. Prend en charge les rôles system, user et assistant.
1Show child attributes
Show child attributes
[
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "Explain prompt caching in one sentence."
}
]
Indique s'il faut renvoyer une réponse en streaming (SSE, événements chat.completion.chunk). Par défaut false.
false
Nombre maximal de tokens à générer.
1024
Niveau de raisonnement : low / medium / high (par défaut) / xhigh. Le raisonnement ne peut pas être désactivé. grok-4.7 et grok-4.6 prennent en charge xhigh ; grok-4.5 accepte cette valeur mais la traite comme high. Les tokens de raisonnement sont facturés comme des tokens de sortie.
low, medium, high, xhigh Température d'échantillonnage (0-2). Des valeurs plus élevées produisent une sortie plus aléatoire.
0.7
Paramètre d'échantillonnage nucleus (0-1).
0.95
Cette page décrit les outils OpenAI classiques de type function (appels de fonctions côté client, sans frais d'appel d'outil côté serveur). Consultez la Responses API pour configurer les outils côté serveur, notamment les recherches web et X, et comprendre leur utilisation.
Show child attributes
Show child attributes
Contrôle la sélection de la fonction : "auto" / "none" / "required", ou un objet imposant une fonction précise.
auto, none, required Clé facultative de routage du cache. Une valeur stable pour une même conversation ou des requêtes partageant le même préfixe de prompt peut améliorer les chances de réutilisation du cache. Aucun résultat n'est garanti et les règles de facturation du cache restent inchangées. Consultez cached_tokens dans usage pour connaître les résultats réels.
"grok-session-001"
Réponse
Complétion de chat générée avec succès (objet JSON, ou flux SSE d'événements chat.completion.chunk lorsque stream=true)
Identifiant unique pour la complétion de chat
"chatcmpl-20260812164515123456789AbCdEfGh"
Nom du modèle réellement utilisé
"grok-4.7"
Type de réponse
chat.completion "chat.completion"
Horodatage de création
1786538000
Liste des choix de complétion de chat
Show child attributes
Show child attributes
Statistiques d'utilisation des tokens. À partir de 200K tokens dans le prompt, tous les types de tokens (entrée, entrée en cache, sortie) sont facturés au double.
Show child attributes
Show child attributes