Aller au contenu

Mettre à jour une API Key

PATCH /api/open/v1/keys/:id

Seuls les champs présents dans le corps de la requête sont mis à jour ; les champs omis restent inchangés. Au moins un champ modifiable est requis : un corps vide, null ou {} retourne 400.

ParamètreEmplacementTypeRequisDescription
idpathintegerOuiID de la Key, entier positif
namebodystringNonNom ; ne doit pas être vide après suppression des espaces, jusqu’à 50 caractères (caractères, pas octets)
statusbodyintegerNon1 activer, 2 désactiver ; toute autre valeur retourne 400 (3 / 4 sont définis automatiquement)
expired_timebodyintegerNonDate d’expiration, secondes unix ; 0 / -1 signifie sans expiration
remain_amountbodynumberNonMontant disponible dans la devise du site, deux décimales ; ne doit pas être négatif ni dépasser le maximum
unlimitedbodybooleanNonIndique si la Key est illimitée
model_limits_enabledbodybooleanNonIndique s’il faut activer la liste blanche de modèles
model_limitsbodystringNonModèles autorisés, séparés par des virgules
allow_ipsbodystringNonIP autorisées, séparées par des retours à la ligne ; une chaîne vide signifie aucune restriction

status n’accepte que 1 (activer) ou 2 (désactiver). L’activation exige que la Key soit utilisable après cette mise à jour : non expirée (expired_time vaut -1 ou est dans le futur) et soit illimitée, soit avec remain_amount > 0 ; sinon 400. Vous pouvez envoyer les champs ensemble, par exemple {"status": 1, "expired_time": 1767225600}. La désactivation fonctionne quel que soit l’état actuel, et un status explicite l’emporte toujours sur la récupération automatique.

Recharger une Key épuisée (elle redevient automatiquement activée) :

Fenêtre de terminal
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \
-H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{"remain_amount": 20.00}'

Prolonger la date d’expiration :

Fenêtre de terminal
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \
-H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{"expired_time": 1767225600}'

Désactiver une Key (les requêtes qui l’utilisent sont refusées jusqu’à sa réactivation) :

Fenêtre de terminal
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \
-H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{"status": 2}'

Réactiver une Key, en prolongeant l’expiration dans la même requête pour garantir qu’elle soit utilisable :

Fenêtre de terminal
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \
-H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{"status": 1, "expired_time": 1767225600}'

Retourne l’objet Key mis à jour avec une key masquée :

{
"success": true,
"message": "",
"data": {
"id": 12,
"name": "bot",
"key": "sk-abcd**********wxyz",
"status": 1,
"created_time": 1729000000,
"accessed_time": 1729000000,
"expired_time": -1,
"remain_amount": 20.00,
"unlimited": false,
"used_amount": 10.00,
"model_limits_enabled": false,
"model_limits": "",
"allow_ips": ""
}
}

Pour la description des champs, voir Objet Key.

HTTPcodeScénario
400invalid_requestid n’est pas un entier positif, ou le corps n’est pas un JSON valide
400invalid_requestLe corps est vide, null, ou ne contient aucun champ modifiable
400invalid_requeststatus n’est ni 1 ni 2 (les états 3 / 4 sont définis automatiquement)
400invalid_requeststatus: 1 envoyé alors que la Key est encore expirée ou épuisée ; prolongez expired_time, rechargez remain_amount ou passez en illimité (champs envoyables dans la même requête)
400invalid_requestLe nom dépasse 50 caractères, ou remain_amount est négatif ou dépasse le maximum
400invalid_requestexpired_time n’est pas dans le futur (et ne vaut ni 0 ni -1), ou dépasse le 9999-12-31
400invalid_requestremain_amount envoyé seul pour une Key illimitée, ou une Key illimitée passée en limitée sans remain_amount
404not_foundLa Key n’existe pas ou ne vous appartient pas

Pour les autres codes d’erreur communs, voir Erreurs de l’API de la plateforme.

  • Envoi de remain_amount seul : prend effet directement sur une Key limitée ; retourne 400 sur une Key illimitée, pour laquelle vous devez aussi envoyer "unlimited": false.
  • "unlimited": false sans remain_amount : retourne 400 sur une Key illimitée (pour ne pas remettre le solde à zéro silencieusement) ; une Key déjà limitée conserve son solde actuel.
  • Une Key expirée (3) ou épuisée (4) redevient automatiquement activée (1) lorsque la mise à jour la rend de nouveau utilisable (expired_time prolongé, remain_amount positif ou unlimited). Cette récupération automatique ne s’applique que si status est omis.
  • 2 correspond à une désactivation manuelle. Elle ne se rétablit jamais automatiquement ; envoyez status: 1 pour réactiver. Tant qu’une Key n’est pas à 1, les appels de modèles qui l’utilisent sont refusés.
  • Tous les champs sont validés avant toute écriture : si un champ échoue à la validation, 400 est retourné et aucun champ n’est modifié.
  • La mise à jour d’une Key via l’API de la plateforme est enregistrée dans le journal d’audit.