L'API Coffrify expose cinq endpoints en lecture seule permettant de connaître à tout moment la consommation de votre workspace : les plafonds du plan en cours, les pourcentages d'utilisation instantanés, les séries temporelles de bande passante et de stockage, le débit par minute et l'historique de facturation par période. Ces endpoints ne provoquent aucune écriture et retournent des données fraîches calculées en temps réel à partir des tables coffrify_bandwidth_daily, coffrify_storage_snapshots, coffrify_throughput_samples et coffrify_usage_billing_periods.
/v1/quotas/checkRetourne les plafonds du plan actif, la consommation courante (stockage, bande passante sur 30 jours, transferts actifs) et des booléens `over_quota_*`.GET/v1/quotas/bandwidthSérie temporelle journalière de la bande passante sortante (bytes_egress + download_count). Paramètre `days` (1-365, défaut 30).GET/v1/quotas/storageSérie temporelle journalière des snapshots de stockage (storage_bytes + transfer_count). Paramètre `days` (1-365, défaut 90).GET/v1/quotas/throughputBuckets de débit par minute sur une fenêtre glissante. Paramètre `minutes` (1-1440, défaut 60).GET/v1/billing/usageHistorique des périodes de facturation avec stockage, bande passante, dépassements et statut de remontée Stripe. Paramètre `limit` (1-60, défaut 12).Authentification
Tous ces endpoints requièrent un token Bearer valide dans l'en-tête Authorization. Les endpoints /v1/quotas/* exigent le scope quotas:read ; l'endpoint /v1/billing/usage exige le scope billing:read. Les scopes plus larges workspace:billing, workspace:manage et workspace:read satisfont également ces exigences selon la hiérarchie de scopes de l'API. Utilisez une clé préfixée cof_live_…, cof_test_… ou cof_sandbox_… (selon votre environnement).
Appel des endpoints
Tous ces endpoints sont en lecture seule et renvoient du JSON immédiatement exploitable. Les exemples ci-dessous appellent /v1/quotas/check, le point d'entrée le plus utile pour un tableau de bord ou une sonde.
Réponse : /v1/quotas/check
La réponse compare les plafonds du plan (caps) à la consommation courante et expose des booléens over_quota.*. Surveillez ces booléens : ce sont eux qui doivent déclencher une alerte ou une montée de plan.
Réponse : /v1/quotas/bandwidth
Cet endpoint renvoie une série temporelle journalière (data), un point par jour. Idéal pour tracer une courbe de consommation ou détecter une tendance avant d'atteindre le plafond mensuel.
Réponse : /v1/billing/usage
L'historique de facturation liste une entrée par période, avec la consommation, les éventuels dépassements et le statut de remontée vers Stripe. Utile pour réconcilier votre usage avec vos factures.
Paramètres de requête
Chaque endpoint accepte un paramètre de fenêtre temporelle (days, minutes ou limit), avec une valeur par défaut et des bornes. Le tableau ci-dessous les récapitule.
| Endpoint | Paramètre | Type | Défaut | Plage autorisée | Description |
|---|---|---|---|---|---|
| /v1/quotas/bandwidth | days | integer | 30 | 1-365 | Nombre de jours de données à retourner. |
| /v1/quotas/storage | days | integer | 90 | 1-365 | Nombre de jours de snapshots de stockage. |
| /v1/quotas/throughput | minutes | integer | 60 | 1-1440 | Fenêtre glissante en minutes pour les buckets de débit. |
| /v1/billing/usage | limit | integer | 12 | 1-60 | Nombre de périodes de facturation à retourner (ordre décroissant). |
Plafonds par plan
À titre indicatif, voici les plafonds appliqués par plan. Ce sont ces valeurs que renvoie le champ caps de /v1/quotas/check pour le plan actif de votre workspace.
| Plan | Stockage | Bande passante / mois | Transferts actifs | Taille max par transfert |
|---|---|---|---|---|
| free | 50 Go | 50 Go | 3 | 5 Go |
| pro | 1 To | 500 Go | 25 | 100 Go |
| ultra | 5 To | 5 To | Illimité | 500 Go |
| entreprise | Illimité | Illimité | Illimité | 500 Go |
Erreurs
Ces endpoints étant en lecture seule, les erreurs se limitent surtout à l'authentification et aux scopes. Un 403 signale un scope manquant (quotas:read ou billing:read selon l'endpoint appelé).
| Code HTTP | code | Quand | Résolution |
|---|---|---|---|
| 401 | missing_api_key | Aucun en-tête Authorization fourni. | Ajoutez Authorization: Bearer cof_live_… à la requête. |
| 401 | invalid_api_key | Le préfixe de la clé est inconnu ou la clé n'existe pas en base. | Vérifiez que la clé commence par cof_live_, cof_test_ ou cof_sandbox_. |
| 401 | expired_api_key | La clé a dépassé sa date d'expiration. | Générez une nouvelle clé dans Paramètres > API. |
| 401 | revoked_api_key | La clé a été révoquée manuellement ou est inactive. | Créez une nouvelle clé ou réactivez la clé dans le tableau de bord. |
| 403 | scope_missing | La clé ne possède ni quotas:read (ou billing:read) ni un scope plus large tel que workspace:billing. | Émettez une nouvelle clé avec le scope approprié. |
| 403 | ip_not_allowed | L'IP source n'est pas dans la liste blanche configurée sur la clé. | Ajoutez l'IP appelante à la liste blanche de la clé. |
| 429 | rate_limited | Le workspace a dépassé le quota de requêtes par minute pour les endpoints en lecture. | Attendez la valeur de Retry-After (en secondes) avant de réessayer. |
| 500 | internal_error | Erreur interne imprévue. | Réessayez avec un back-off exponentiel. Consultez request_id pour le support. |
Voir aussi
- Référence : GET /v1/quotas/check
- Référence : GET /v1/billing/usage
- Gérer votre abonnement et vos alertes de dépassement
- Authentification et gestion des clés API
- Rate limits et codes d'erreur