Essentiel
Référence de l'API
Référence complète pour l'API TokenLab
Aperçu
TokenLab est native-first et compatible OpenAI. Utilisez des routes natives fournisseur comme POST /v1/messages pour Anthropic et /v1beta/models/...:generateContent pour Gemini lorsque vous avez besoin du comportement natif, et les endpoints /v1 compatibles OpenAI lorsque vous migrez des SDKs ou outils de style OpenAI. POST /v1/responses reste une route avancée optionnelle pour le comportement propre à Responses.
URL de base
https://api.tokenlab.shAuthentification
Les requêtes de modèle utilisent une clé API TokenLab. L’en-tête d’authentification standard est :
Authorization: Bearer sk-your-api-keyGET /v1/models, GET /v1/models/{model} et GET /v1/pricing sont publics et ne nécessitent pas de clé. Anthropic Messages accepte aussi x-api-key ; Gemini accepte x-goog-api-key ou ?key= en plus de Bearer. /v1/management/* exige un jeton de gestion (mt-...).
Récupérez votre clé API depuis le Dashboard.
Les requêtes de génération acceptent X-TokenLab-Delivery-Policy: auto | verified | official. L’en-tête prime sur le réglage de la clé API, puis sur celui de l’espace de travail. auto privilégie TokenLab Verified, puis Official si nécessaire ; la facturation dépend du mode ayant terminé la requête. verified utilise les prix TokenLab ; official repose sur les prix publics du fabricant, au tarif affiché par TokenLab. Realtime utilise le réglage de la clé ou de l’espace de travail, sans remplacement par paramètre de requête. Un en-tête invalide renvoie 400 ; un mode indisponible renvoie 503 delivery_tier_unavailable et un identifiant de requête.
À propos du Playground interactif : le playground de ce site de documentation est uniquement à des fins de démonstration et ne permet pas la saisie de clés API. Pour tester l'API, veuillez utiliser :
- cURL - Copiez les commandes d'exemple et remplacez
sk-your-api-keypar votre clé réelle - Postman - Importez notre OpenAPI spec
- SDK - Utilisez le SDK OpenAI/Anthropic avec notre URL de base
Points de terminaison pris en charge
Chat et génération de texte
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/chat/completions | POST | Complétions de chat compatibles OpenAI |
/v1/messages | POST | API de messages compatible Anthropic |
/v1/responses | POST | API de réponses OpenAI |
Embeddings et rerank
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/embeddings | POST | Créer des embeddings textuels |
/v1/rerank | POST | Réordonnancer des documents |
Images
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/images/generations | POST | Générer des images à partir de texte |
/v1/images/edits | POST | Modifier des images |
/v1/images/generations/{id} | GET | Chemin de statut de tâche pour les réponses d'image basées sur des tâches |
Les modèles d’image peuvent renvoyer une image terminée ou une tâche asynchrone. Si la réponse contient poll_url, utilisez cette URL pour consulter la tâche.
Audio
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/audio/speech | POST | Synthèse vocale (TTS) |
/v1/audio/transcriptions | POST | Transcription (STT) |
Temps réel
| Endpoint | Méthode | Description |
|---|---|---|
/v1/realtime?model={model} | WS | Sessions WebSocket temps réel |
Utilisez /v1/realtime pour les requêtes d’upgrade WebSocket. Un simple GET /v1/realtime renvoie les métadonnées de l’endpoint pour les clients qui ne peuvent pas inspecter directement les routes WebSocket. Ce n’est pas la surface REST OpenAI Realtime ; les endpoints client secret, translation client secret, Calls et legacy beta session ne sont pas exposés actuellement.
Vidéo
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/videos/generations | POST | Créer une tâche de génération vidéo |
/v1/tasks/{id} | GET | Obtenir le statut de tâche asynchrone pour les jobs vidéo |
/v1/videos/generations/{id} | GET | Chemin de statut de tâche compatible legacy pour la vidéo |
Pour les nouveaux clients, privilégiez /v1/tasks/{id} et suivez le poll_url retourné par les réponses de création. Conservez /v1/videos/generations/{id} uniquement pour la rétrocompatibilité.
Tâches asynchrones
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/tasks/{id} | GET | Point de terminaison unifié de statut de tâche asynchrone. Recommandé lorsqu'on suit un poll_url retourné |
Ce point de terminaison n'est pas limité à la vidéo, à la musique et au 3D. Certaines tâches d'image peuvent également utiliser /v1/tasks/{id} comme chemin canonique de polling.
Musique
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/music/generations | POST | Créer une tâche de génération musicale |
/v1/music/generations/{id} | GET | Chemin de statut spécifique à la musique |
Pour les nouveaux clients, privilégiez d'abord le poll_url retourné. Si vous avez besoin d'un point de terminaison fixe pour le statut des tâches, utilisez /v1/tasks/{id} ; conservez /v1/music/generations/{id} pour les chemins de compatibilité spécifiques à la musique.
Génération 3D
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/3d/generations | POST | Créer une tâche de génération de modèle 3D |
/v1/3d/generations/{id} | GET | Chemin de statut spécifique au 3D |
Pour les nouveaux clients, privilégiez d'abord le poll_url retourné. Si vous avez besoin d'un point de terminaison fixe pour le statut des tâches, utilisez /v1/tasks/{id} ; conservez /v1/3d/generations/{id} pour les chemins de compatibilité spécifiques au 3D.
Modèles
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1/models | GET | Lister tous les modèles disponibles |
/v1/models/{model} | GET | Obtenir les informations d'un modèle spécifique |
Gemini (v1beta)
Prise en charge du format API Google Gemini natif :
| Point de terminaison | Méthode | Description |
|---|---|---|
/v1beta/models/{model}:generateContent | POST | Générer du contenu (format Gemini) |
/v1beta/models/{model}:streamGenerateContent | POST | Génération de contenu en streaming (format Gemini) |
Les endpoints Gemini supportent l'authentification par paramètre de requête ?key= en plus du token Bearer standard.
Format des réponses
Chaque endpoint conserve son format API. Les exemples de succès et d’erreur ci-dessous utilisent le format Chat Completions.
Réponse de succès
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1234567890,
"model": "gpt-5.6-terra",
"choices": [{"index": 0, "message": {"role": "assistant", "content": "Hello!"}, "finish_reason": "stop"}],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}Transparence du routage
TokenLab n'expose pas les détails de fournisseur, de canal, de politique ou d'identifiants dans les corps de réponse publics. Ne dépendez pas de _routing ni d'autres champs de routage internes comme faisant partie du contrat d'API public.
Pour le débogage et le support, utilisez les en-têtes de réponse publics lorsqu'ils sont présents :
| En-tête | Description |
|---|---|
X-Routing-Time-MS | Temps de sélection de route, lorsqu'il est disponible |
X-Request-ID | Identifiant de requête pour le support et le débogage, lorsqu'il est disponible |
X-Task-ID | Identifiant public de tâche asynchrone pour les réponses basées sur des tâches, lorsqu'il est disponible |
X-Billing-Transaction-ID | Identifiant de transaction de facturation après la facturation finale, lorsqu'il est disponible |
Réponse d'erreur
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_api_key",
"code": "invalid_api_key"
}
}Limites de taux
Les limites de taux sont basées sur les rôles et configurables par les administrateurs. Valeurs par défaut :
| Rôle | Requêtes/min |
|---|---|
| User | 1,000 |
| Partner | 10,000 |
| VIP | 10,000 |
Contactez le support pour des limites de taux personnalisées. Les valeurs exactes peuvent varier selon la configuration du compte.
Lorsque les limites de taux sont dépassées, l'API renvoie un code d'état 429 avec un en-tête Retry-After indiquant la durée à attendre.
Spécification OpenAPI
Spécification OpenAPI
Téléchargez la spécification complète OpenAPI 3.1