Créer une clé API
Créez une clé API standard. Sauvegardez la clé en clair retournée par cette opération car elle n'est affichée qu'une seule fois.
Créez une clé API standard. Sauvegardez la clé en clair retournée par cette opération car elle n’est affichée qu’une seule fois.
Point de terminaison
- URL de base
https://runapi.ai- Version de l'API
v1- Authentification
Authorization: Bearer YOUR_MANAGEMENT_API_KEY
Requête
Envoyez les valeurs uniquement à l'emplacement de requête indiqué.
Corps JSON7 champs
allowed_modelsarray | nullListe blanche optionnelle d'identifiants de modèles.
credit_limit_centsinteger | nullPlafond de dépenses optionnel en centimes USD.
credit_limit_reset_intervalstring | nullCadence optionnelle de réinitialisation du plafond de dépenses de la clé.
Valeurs autorisées:daily, weekly, monthly
credit_limit_windowsobjectPlafonds de dépenses glissants indexés par 1h, 1d ou 7d ; chaque valeur contient un entier positif limit_cents.
enabledbooleanIndique si les requêtes utilisant cette clé sont acceptées.
Par défaut:true
guardrail_idstringID de préfixe optionnel du garde-fou à associer à la création.
namestringNom convivial de la clé API.
Réponse de succès
POST /api/v1/keys
{
"allowed_models": [
"gpt-5.4"
],
"created_at": "2026-07-27T10:00:00.000Z",
"credit_limit_cents": 1000,
"credit_limit_reset_interval": "daily",
"credit_limit_windows": {
"1d": {
"limit_cents": 500
},
"1h": {
"limit_cents": 100
},
"7d": {
"limit_cents": 2000
}
},
"enabled": true,
"guardrail_id": "guardrail_123",
"id": "token_123",
"key": "runapi_plaintext_example",
"last_used_at": null,
"masked_token": "runapi_abc...wxyz",
"name": "Production"
}
Réponse d'erreur (401)
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Authentication required"
}
Réponse d'erreur (403)
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Management API key required"
}
Réponse d'erreur (403)
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Account admin required"
}
Réponse d'erreur (400)
Schéma de réponse
{
"oneOf": [
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Résumé de validation lisible par l'humain.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Exemple de réponse
{
"error": "page must be an integer"
}
Réponse d'erreur (422)
Schéma de réponse
{
"properties": {
"error": {
"description": "Résumé de validation lisible par l'humain.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Validation failed",
"errors": {
"base": [
"Validation failed"
]
}
}
Exemple cURL
curl -X POST https://runapi.ai/api/v1/keys \
-H 'Authorization: Bearer YOUR_MANAGEMENT_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"Production","credit_limit_cents":1000,"credit_limit_reset_interval":"daily","credit_limit_windows":{"1h":{"limit_cents":100},"1d":{"limit_cents":500},"7d":{"limit_cents":2000}},"allowed_models":["gpt-5.4"],"guardrail_id":"guardrail_123"}'