Test d’API
Saisissez votre clé API, choisissez un type de point d’accès et un modèle, écrivez le message à envoyer : les cinq extraits ci-dessous se mettent à jour ensemble. Copiez-en un et exécutez-le, ou cliquez sur Envoyer la requête — votre navigateur appelle la passerelle directement, ni la clé ni la réponse ne transitent par le site de documentation. Aucune URL de base à saisir : le site de documentation est servi par la passerelle elle-même, et les exemples pointent déjà vers elle.
« Envoyer la requête » est un appel réel : il consomme les tokens de votre compte et vous est facturé à l’usage. Copier le code ne coûte rien.
Votre clé reste dans cet onglet, disparaît à sa fermeture et n’est jamais envoyée au site de documentation.
curl https://llm.usmm.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}'curl https://llm.usmm.cn/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API."
}'curl https://llm.usmm.cn/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}'curl https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:generateContent \
-H "Content-Type: application/json" \
-H "x-goog-api-key: YOUR_API_KEY" \
-d '{
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}'curl --no-buffer https://llm.usmm.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}'curl --no-buffer https://llm.usmm.cn/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API.",
"stream": true
}'curl --no-buffer https://llm.usmm.cn/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}'curl --no-buffer https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:streamGenerateContent?alt=sse \
-H "Content-Type: application/json" \
-H "x-goog-api-key: YOUR_API_KEY" \
-d '{
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}' import requests
response = requests.post(
"https://llm.usmm.cn/v1/chat/completions",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
},
timeout=60,
)
response.raise_for_status()
print(response.json())import requests
response = requests.post(
"https://llm.usmm.cn/v1/responses",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API."
},
timeout=60,
)
response.raise_for_status()
print(response.json())import requests
response = requests.post(
"https://llm.usmm.cn/v1/messages",
headers={
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
"anthropic-version": "2023-06-01",
},
json={
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
},
timeout=60,
)
response.raise_for_status()
print(response.json())import requests
response = requests.post(
"https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:generateContent",
headers={
"Content-Type": "application/json",
"x-goog-api-key": "YOUR_API_KEY",
},
json={
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
},
timeout=60,
)
response.raise_for_status()
print(response.json())import requests
with requests.post(
"https://llm.usmm.cn/v1/chat/completions",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": True
},
stream=True,
timeout=60,
) as response:
response.raise_for_status()
for line in response.iter_lines():
if line:
print(line.decode())import requests
with requests.post(
"https://llm.usmm.cn/v1/responses",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API.",
"stream": True
},
stream=True,
timeout=60,
) as response:
response.raise_for_status()
for line in response.iter_lines():
if line:
print(line.decode())import requests
with requests.post(
"https://llm.usmm.cn/v1/messages",
headers={
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
"anthropic-version": "2023-06-01",
},
json={
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": True
},
stream=True,
timeout=60,
) as response:
response.raise_for_status()
for line in response.iter_lines():
if line:
print(line.decode())import requests
with requests.post(
"https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:streamGenerateContent?alt=sse",
headers={
"Content-Type": "application/json",
"x-goog-api-key": "YOUR_API_KEY",
},
json={
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
},
stream=True,
timeout=60,
) as response:
response.raise_for_status()
for line in response.iter_lines():
if line:
print(line.decode()) const response = await fetch("https://llm.usmm.cn/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}),
});
console.log(await response.json());const response = await fetch("https://llm.usmm.cn/v1/responses", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API."
}),
});
console.log(await response.json());const response = await fetch("https://llm.usmm.cn/v1/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
"anthropic-version": "2023-06-01",
},
body: JSON.stringify({
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}),
});
console.log(await response.json());const response = await fetch("https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:generateContent", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": "YOUR_API_KEY",
},
body: JSON.stringify({
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}),
});
console.log(await response.json());const response = await fetch("https://llm.usmm.cn/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}),
});
const decoder = new TextDecoder();
for await (const chunk of response.body) {
process.stdout.write(decoder.decode(chunk, { stream: true }));
}const response = await fetch("https://llm.usmm.cn/v1/responses", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API.",
"stream": true
}),
});
const decoder = new TextDecoder();
for await (const chunk of response.body) {
process.stdout.write(decoder.decode(chunk, { stream: true }));
}const response = await fetch("https://llm.usmm.cn/v1/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
"anthropic-version": "2023-06-01",
},
body: JSON.stringify({
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}),
});
const decoder = new TextDecoder();
for await (const chunk of response.body) {
process.stdout.write(decoder.decode(chunk, { stream: true }));
}const response = await fetch("https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:streamGenerateContent?alt=sse", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": "YOUR_API_KEY",
},
body: JSON.stringify({
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}),
});
const decoder = new TextDecoder();
for await (const chunk of response.body) {
process.stdout.write(decoder.decode(chunk, { stream: true }));
} package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := `{
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1/chat/completions", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(out))
}package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := `{
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API."
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1/responses", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(out))
}package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := `{
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1/messages", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", "YOUR_API_KEY")
req.Header.Set("anthropic-version", "2023-06-01")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(out))
}package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
payload := `{
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:generateContent", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-goog-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(out))
}package main
import (
"bufio"
"fmt"
"net/http"
"strings"
)
func main() {
payload := `{
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1/chat/completions", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}package main
import (
"bufio"
"fmt"
"net/http"
"strings"
)
func main() {
payload := `{
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API.",
"stream": true
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1/responses", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}package main
import (
"bufio"
"fmt"
"net/http"
"strings"
)
func main() {
payload := `{
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1/messages", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", "YOUR_API_KEY")
req.Header.Set("anthropic-version", "2023-06-01")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}package main
import (
"bufio"
"fmt"
"net/http"
"strings"
)
func main() {
payload := `{
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}`
req, err := http.NewRequest(http.MethodPost, "https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:streamGenerateContent?alt=sse", strings.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-goog-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
} import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1/chat/completions"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer YOUR_API_KEY")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API."
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1/responses"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer YOUR_API_KEY")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }]
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1/messages"))
.header("Content-Type", "application/json")
.header("x-api-key", "YOUR_API_KEY")
.header("anthropic-version", "2023-06-01")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:generateContent"))
.header("Content-Type", "application/json")
.header("x-goog-api-key", "YOUR_API_KEY")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"model": "deepseek-v4.1-flash",
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1/chat/completions"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer YOUR_API_KEY")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofLines())
.body()
.forEach(System.out::println);import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"model": "deepseek-v4.1-flash",
"input": "Explique en une phrase ce qu’est une passerelle d’API.",
"stream": true
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1/responses"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer YOUR_API_KEY")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofLines())
.body()
.forEach(System.out::println);import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"model": "deepseek-v4.1-flash",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explique en une phrase ce qu’est une passerelle d’API." }],
"stream": true
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1/messages"))
.header("Content-Type", "application/json")
.header("x-api-key", "YOUR_API_KEY")
.header("anthropic-version", "2023-06-01")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofLines())
.body()
.forEach(System.out::println);import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var payload = """
{
"contents": [{ "parts": [{ "text": "Explique en une phrase ce qu’est une passerelle d’API." }] }]
}
""";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://llm.usmm.cn/v1beta/models/deepseek-v4.1-flash:streamGenerateContent?alt=sse"))
.header("Content-Type", "application/json")
.header("x-goog-api-key", "YOUR_API_KEY")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofLines())
.body()
.forEach(System.out::println); Réponse
Aucune requête envoyée. Copiez le code ci-dessus pour l’exécuter, ou envoyez la requête d’ici pour lire la vraie réponse.
Documentation complète de l’API
Section intitulée « Documentation complète de l’API »Les quatre types de point d’accès ci-dessus couvrent les dialectes que parle la passerelle. Ils diffèrent sur deux points :
- L’en-tête d’authentification. Chat et Responses utilisent
Authorization, Claude utilisex-api-key, Gemini utilisex-goog-api-key. C’est ce qui pose problème quand on change de dialecte. - La façon d’exprimer le streaming. Les trois premiers mettent
"stream": truedans le corps de la requête ; le format natif de Gemini change l’action dans l’URL (:streamGenerateContent).
La passerelle en propose bien d’autres. La liste complète figure ci-dessous, avec les paramètres, la structure des corps de requête et des exemples de réponse, et chaque appel est testable ici même. La version rédigée du même contenu se trouve dans Utiliser l’API et le Playground, plus agréable à lire d’une traite.
Chargement de la documentation de l’API…