💾
Facturation & quotas·Intermédiaire·8 min

Surveiller les quotas de bande passante et de stockage

Interrogez les trois endpoints de quotas pour connaître en temps réel l'utilisation de votre espace de stockage, la consommation de bande passante et les seuils de votre plan.

Télécharger en PDF

L'API Coffrify expose trois endpoints dédiés au suivi des ressources consommées par votre workspace : GET /v1/quotas/check retourne un état consolidé (plan, plafonds, consommation actuelle et booléens de dépassement), GET /v1/quotas/bandwidth renvoie une série temporelle journalière des octets sortants et du nombre de téléchargements, et GET /v1/quotas/storage fournit les instantanés quotidiens de l'espace occupé. Ces endpoints sont en lecture seule, légers (skipIdempotency activé) et partagent tous le scope quotas:read.

GET/v1/quotas/checkRetourne le plan actif, les plafonds du plan (storage_bytes, bandwidth_bytes_per_month, active_transfers, max_transfer_size_bytes) et la consommation courante avec des pourcentages et des booléens over_quota_*.GET/v1/quotas/bandwidthRetourne la série journalière de bande passante (bytes_egress, download_count) sur une fenêtre glissante. Paramètre : days (1-365, défaut 30).GET/v1/quotas/storageRetourne les instantanés quotidiens de stockage (snapshot_date, storage_bytes, transfer_count) sur une fenêtre glissante. Paramètre : days (1-365, défaut 90).

Authentification

Les trois endpoints requièrent le scope quotas:read. Transmettez votre clé dans l'en-tête Authorization: Bearer <clé>. Les clés de test commencent par cof_test_…, les clés de production par cof_live_…. En sandbox, utilisez le préfixe cof_sandbox_…. Aucune clé ne peut accéder à un workspace différent du sien : le workspace_id est résolu à partir de la clé, côté serveur.

Paramètres de requête

Les endpoints de séries temporelles acceptent un paramètre days qui fixe la fenêtre glissante. Le tableau ci-dessous récapitule les paramètres et leurs bornes.

EndpointParamètreTypeDéfautPlage autoriséeDescription
/v1/quotas/bandwidthdaysinteger301 - 365Nombre de jours glissants à inclure dans la réponse.
/v1/quotas/storagedaysinteger901 - 365Nombre de jours glissants couverts par les instantanés.
/v1/quotas/check(aucun)---L'endpoint lit directement le plan et la consommation courante.

Exemples d'appel

Les exemples ci-dessous interrogent l'état consolidé, puis les séries de bande passante et de stockage. Choisissez votre langage.

# Vérification globale des quotas
curl -s https://api.coffrify.com/v1/quotas/check \
-H "Authorization: Bearer cof_live_votre_cle"
 
# Bande passante sur 7 jours
curl -s "https://api.coffrify.com/v1/quotas/bandwidth?days=7" \
-H "Authorization: Bearer cof_live_votre_cle"
 
# Instantanés de stockage sur 30 jours
curl -s "https://api.coffrify.com/v1/quotas/storage?days=30" \
-H "Authorization: Bearer cof_live_votre_cle"

Réponses

Voici les trois structures de réponse réelles renvoyées par chaque endpoint.

// GET /v1/quotas/check
{
"plan": "pro",
"caps": {
"storage_bytes": 1099511627776,
"bandwidth_bytes_per_month": 536870912000,
"active_transfers": 25,
"max_transfer_size_bytes": 107374182400
},
"consumption": {
"storage_bytes": 214748364800,
"storage_pct": 20,
"bandwidth_bytes_last_30d": 53687091200,
"bandwidth_pct": 10,
"active_transfers": 3,
"active_transfers_pct": 12
},
"over_quota": {
"storage": false,
"bandwidth": false,
"active_transfers": false
}
}
// GET /v1/quotas/bandwidth?days=7
{
"object": "list",
"range_days": 7,
"since": "2026-05-30",
"totals": {
"bytes_egress": 5368709120,
"download_count": 142
},
"data": [
{ "day": "2026-05-30", "bytes_egress": 734003200, "download_count": 18 },
{ "day": "2026-05-31", "bytes_egress": 943718400, "download_count": 24 },
{ "day": "2026-06-01", "bytes_egress": 838860800, "download_count": 21 },
{ "day": "2026-06-02", "bytes_egress": 629145600, "download_count": 15 },
{ "day": "2026-06-03", "bytes_egress": 1048576000, "download_count": 27 },
{ "day": "2026-06-04", "bytes_egress": 734003200, "download_count": 19 },
{ "day": "2026-06-05", "bytes_egress": 440401920, "download_count": 18 }
]
}
// GET /v1/quotas/storage?days=30
{
"object": "list",
"range_days": 30,
"since": "2026-05-07",
"data": [
{ "snapshot_date": "2026-05-07", "storage_bytes": 193273528320, "transfer_count": 11 },
{ "snapshot_date": "2026-05-08", "storage_bytes": 199728742400, "transfer_count": 12 },
{ "snapshot_date": "2026-06-05", "storage_bytes": 214748364800, "transfer_count": 14 }
]
}

En-têtes de réponse notables

Au-delà du corps, certaines réponses portent des en-têtes utiles (fraîcheur des données, quota). Le tableau ci-dessous les décrit.

En-têteDescription
X-Request-IdIdentifiant unique de la requête, utile pour le support et les logs.
X-Coffrify-Api-VersionVersion de l'API utilisée côté serveur (ex. 2026-05-14).
X-RateLimit-LimitNombre maximum de requêtes autorisées par minute sur les endpoints read.
X-RateLimit-RemainingRequêtes restantes dans la fenêtre courante.
X-RateLimit-ResetTimestamp UNIX de la prochaine réinitialisation de la fenêtre.
Retry-AfterPrésent uniquement en cas de 429 : secondes à attendre avant de réessayer.

Erreurs

Ces endpoints étant en lecture seule, les erreurs se limitent à l'authentification et au scope quotas:read. Le tableau ci-dessous indique la résolution.

HTTPCode d'erreurQuandRésolution
401missing_api_keyEn-tête Authorization absent.Ajoutez Authorization: Bearer cof_live_… à chaque requête.
401invalid_api_keyClé mal formée ou inconnue.Vérifiez le préfixe (cof_test_…, cof_live_…) et l'intégrité de la clé.
401expired_api_keyLa clé a dépassé sa date d'expiration.Régénérez une clé dans le tableau de bord ou via POST /v1/api-keys.
401revoked_api_keyLa clé a été révoquée manuellement.Créez une nouvelle clé avec le scope quotas:read.
403scope_missingLa clé ne possède pas le scope quotas:read.Émettez une clé avec le scope requis, ou ajoutez-le à la clé existante.
429rate_limitedTrop de requêtes read dans la fenêtre d'une minute.Respectez l'en-tête Retry-After et réduisez la fréquence de polling.
500internal_errorErreur interne (ex. table de quotas temporairement indisponible).Consultez le X-Request-Id pour ouvrir un ticket support.

Voir aussi

Continuer

Autres tutoriels à suivre