L'API Coffrify expose deux familles d'endpoints pour surveiller vos consommations : /v1/quotas/check pour lire l'état actuel du plan (stockage, bande passante, transferts actifs) et /v1/alerts pour gérer des règles d'alerte qui déclenchent une notification par e-mail, Slack, Discord ou Webhook lorsqu'une condition se réalise. Ce guide vous montre comment combiner ces deux surfaces pour mettre en place une surveillance proactive de vos quotas.
/v1/quotas/checkRenvoie les plafonds du plan actif, la consommation courante et trois booléens `over_quota_*` indiquant si un dépassement est en cours.GET/v1/alertsListe toutes les règles d'alerte du workspace, triées par date de création décroissante.POST/v1/alertsCrée une nouvelle règle d'alerte. Retourne HTTP 201 avec l'objet créé.PATCH/v1/alerts/{id}Met à jour le nom, l'état actif, les valeurs de condition ou les valeurs d'action d'une règle existante.DELETE/v1/alerts/{id}Supprime définitivement une règle d'alerte. Retourne `{ deleted: true }`.Authentification
Toutes les requêtes doivent porter un en-tête Authorization: Bearer <clé> avec une clé au format cof_live_… (production) ou cof_test_… (sandbox). Le scope requis varie selon l'opération : quotas:read pour GET /v1/quotas/check et GET /v1/alerts, et alerts:manage pour les opérations d'écriture POST, PATCH et DELETE sur /v1/alerts.
Corps de la requête (POST /v1/alerts)
Une règle d'alerte associe une condition (un seuil de quota) à une action (la notification déclenchée). Le tableau ci-dessous détaille les champs à fournir pour la créer.
| Champ | Type | Requis | Description |
|---|---|---|---|
| name | string | Oui | Libellé humain de la règle. |
| condition_type | string | Oui | Type de condition : download_count, download_rate, failed_password, geo_unexpected ou expiration_soon. |
| condition_value | object | Non | Paramètres de la condition (ex. seuil, fenêtre de temps). Structure libre, dépend du condition_type. |
| action_type | string | Non | Canal de notification : email (défaut), slack, discord ou webhook. |
| action_value | object | Non | Configuration du canal (ex. URL de webhook, adresse e-mail de destination). |
| transfer_id | string (UUID) | Non | Restreint la règle à un seul transfert. Omettez ce champ pour surveiller tout le workspace. |
| is_active | boolean | Non | Active ou désactive la règle à la création. Valeur par défaut : true. |
Exemples d'appel
Les exemples ci-dessous lisent d'abord l'état des quotas, puis créent une règle d'alerte sur le dépassement de stockage. Choisissez votre langage.
Réponses
Voici les formes de réponse renvoyées par chaque endpoint.
Erreurs
Les erreurs portent sur la validation de la règle (condition ou action invalide) et sur le scope manquant. Le tableau ci-dessous indique la correction à apporter.
| Code HTTP | Code d'erreur | Quand | Résolution |
|---|---|---|---|
| 400 | validation_error | name absent ou condition_type / action_type hors des valeurs autorisées. | Vérifiez que condition_type est l'une des valeurs : download_count, download_rate, failed_password, geo_unexpected, expiration_soon; et action_type l'une de : email, slack, discord, webhook. |
| 400 | validation_error | Corps du PATCH sans aucun champ reconnu. | Envoyez au moins un champ parmi : name, is_active, condition_value, action_value. |
| 401 | unauthorized | Clé API absente ou révoquée. | Vérifiez l'en-tête Authorization: Bearer cof_live_… et l'état de la clé dans le tableau de bord. |
| 403 | forbidden | Le scope de la clé ne contient pas alerts:manage ou quotas:read. | Regénérez la clé avec les bons scopes ou créez une nouvelle clé dédiée. |
| 404 | not_found | L'id passé dans l'URL n'existe pas dans ce workspace. | Listez d'abord les alertes avec GET /v1/alerts pour récupérer les identifiants valides. |
| 500 | internal_error | Erreur inattendue côté base de données. | Réessayez avec un backoff exponentiel. Ouvrez un ticket si l'erreur persiste. |
Voir aussi
- Vérifier les quotas de stockage et de bande passante
- Configurer un Webhook de notification
- Gérer la facturation et l'abonnement
- Référence des scopes d'API
- Guide des erreurs API