Réponse exemple
GET/v1/workspace/stats-by-memberVue d'activité par membre sur une fenêtre glissante, orientée conformité et audit.Cet endpoint produit une vue d'activité par membre du workspace courant sur les days derniers jours. Pour chaque membre (y compris les invitations en attente sans user_id), il agrège le nombre de transferts créés, le volume de stockage produit (en octets), les téléchargements déclenchés via les liens de partage, et le nombre d'événements d'audit. La réponse inclut aussi un bloc totals consolidant ces métriques sur l'ensemble des membres. C'est une vue pensée pour la conformité et l'audit : elle permet de répondre à la question "qui a fait quoi, et combien, sur la période".
Comportement notable : la liste data est triée du membre le plus actif au moins actif, le score d'activité étant la somme transfers_created + audit_events. Les emails sont hydratés depuis les profils pour les membres actifs, et depuis le champ d'invitation pour les membres encore invités. C'est un endpoint classé `expensive` : il effectue plusieurs requêtes par membre (transferts, fichiers, téléchargements, audit), il consomme donc le quota de débit des endpoints coûteux plus rapidement qu'un GET standard.
Authentification
Requiert une clé API valide portant le scope members:read. Conformément à la hiérarchie des scopes, le scope plus large workspace:manage (god-mode workspace) satisfait également cette exigence, tout comme le wildcard *. Présentez le credential via l'en-tête Authorization: Bearer cof_live_... (ou cof_test_...). Si le token ne porte pas un scope suffisant, l'API renvoie 403 scope_missing.
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| days | integer (query) | Non | Taille de la fenêtre d'analyse en jours. Défaut 30. La valeur est bornée entre 1 et 365 (toute valeur hors bornes est ramenée dans l'intervalle ; une valeur non numérique retombe sur 30). Détermine le champ since (ISO 8601) utilisé pour filtrer transferts, téléchargements et audit. |
Réponse
Réponse 200 de type liste (object: "list"). Champs de premier niveau : workspace_id, range_days (la fenêtre effectivement appliquée), since (borne basse ISO 8601), member_count, un objet totals (transfers_created, storage_bytes_produced, downloads_triggered, audit_events), et data, le tableau des membres.
Chaque entrée de data contient : member_id (id de la ligne d'appartenance), user_id (nullable pour une invitation en attente), email, role, status, transfers_created, storage_bytes_produced, downloads_triggered_via_share, audit_events, et last_activity_at (date du transfert le plus récent du membre, ou null). Les membres sans user_id apparaissent avec toutes leurs métriques à zéro.
| Champ | Type | Description |
|---|---|---|
| member_id | string | Identifiant de la ligne d'appartenance (coffrify_workspace_members). |
| user_id | string | null | Identifiant utilisateur, ou null pour une invitation non encore acceptée. |
| string | null | Email du membre (profil) ou email d'invitation. | |
| role | string | Rôle du membre dans le workspace. |
| status | string | Statut de l'appartenance (ex. actif, invité). |
| transfers_created | integer | Nombre de transferts créés par le membre sur la fenêtre. |
| storage_bytes_produced | integer | Somme des tailles de fichiers des transferts du membre (octets). |
| downloads_triggered_via_share | integer | Téléchargements enregistrés via partage sur la fenêtre. |
| audit_events | integer | Nombre d'événements d'audit où le membre est acteur. |
| last_activity_at | string | null | Date ISO du dernier transfert du membre, ou null. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 missing_api_key | Aucun en-tête Authorization et aucune session valide. | Ajoutez l'en-tête Authorization: Bearer cof_live_... |
| 401 invalid_api_key | Préfixe de credential non reconnu ou clé introuvable. | Vérifiez le préfixe (cof_live_/cof_test_) et l'existence de la clé. |
| 401 revoked_api_key | Clé révoquée ou inactive. | Générez une nouvelle clé API. |
| 401 expired_api_key | Clé expirée. | Générez une nouvelle clé API. |
| 403 scope_missing | Le token ne porte pas members:read (ni workspace:manage / *). | Émettez une clé avec le scope members:read sur app.coffrify.com/developer. |
| 403 ip_not_allowed | IP appelante hors de l'allowlist de la clé. | Appelez depuis une IP autorisée ou ajustez l'allowlist de la clé. |
| 429 rate_limited | Quota de débit dépassé (endpoint classé expensive) ou max_uses de la clé atteint. | Respectez l'en-tête Retry-After avant de réessayer. |
| 500 internal_error | Erreur interne (RPC de validation ou service indisponible). | Réessayez ; si le problème persiste, contactez le support avec le request_id. |
Voir aussi
- GET /v1/workspace/members : lister les membres et invitations du workspace.
- GET /v1/transfers : détail des transferts qui alimentent ces compteurs.
- GET /v1/audit : journal d'audit brut sous-jacent aux compteurs d'événements.