Réponse exemple
L'endpoint GET `/v1/workspaces` retourne l'ensemble des espaces de travail (workspaces) auxquels l'appelant a accès. Le comportement diffère selon le mode d'authentification : avec une clé API, la réponse ne contient que l'unique espace auquel la clé est rattachée, avec le rôle api_key. Avec une session du tableau de bord (cookie Supabase), la réponse agrège les espaces dont l'utilisateur est propriétaire (owner) et ceux dont il est membre, en éliminant les doublons (un propriétaire qui figure aussi dans la table des membres n'apparaît qu'une fois). Chaque entrée expose l'identifiant, le nom, le rôle de l'appelant et le plan de l'espace.
/v1/workspacesListe les espaces de travail accessibles à l'appelant.Authentification
Cet endpoint exige une clé API valide, aucun scope spécifique n'est requis (le handler ne déclare pas de requiredScope). Tout jeton accepté convient : clé pleine puissance (cof_live_ / cof_test_), clé restreinte (cof_rk_live_ / cof_rk_test_), jeton MCP (cof_mcp_live_ / cof_mcp_test_), ou jeton legacy (cfy_, fxa_). L'authentification par session du tableau de bord est aussi acceptée et confère un accès en lecture aux espaces propres et membres de l'utilisateur.
Paramètres de requête
Cet endpoint n'accepte aucun paramètre de requête (pas de pagination, pas de filtre). La forme du résultat dépend uniquement du mode d'authentification.
Réponse
La réponse est un objet de type liste : object vaut toujours "list", et data est un tableau d'objets espace de travail. Chaque objet contient id (identifiant de l'espace), name (nom de l'espace), role (rôle de l'appelant sur cet espace : owner, member, un rôle personnalisé, ou api_key pour un appel par clé) et plan (plan de l'espace, par défaut free si non défini). En contexte clé API, le tableau ne contient que l'espace de la clé ; si cet espace est introuvable, data est un tableau vide.
| Champ | Type | Description |
|---|---|---|
| object | string | Toujours "list". |
| data | array | Tableau d'objets espace de travail. |
| data[].id | string | Identifiant unique de l'espace de travail. |
| data[].name | string | Nom de l'espace de travail. |
| data[].role | string | Rôle de l'appelant : owner, member, rôle personnalisé, ou api_key. |
| data[].plan | string | Plan de l'espace (free par défaut). |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
401 missing_api_key | Aucun en-tête Authorization et aucune session valide. | Ajoutez Authorization: Bearer cof_live_... ou authentifiez-vous via le tableau de bord. |
401 invalid_api_key | Préfixe de credential non reconnu ou clé introuvable. | Vérifiez le format du jeton (cof_live_, cof_test_, cof_rk_*, cof_mcp_*). |
401 revoked_api_key | La clé a été révoquée ou désactivée. | Générez une nouvelle clé sur https://app.coffrify.com/developer. |
401 expired_api_key | La clé a dépassé sa date d'expiration. | Générez une nouvelle clé non expirée. |
403 ip_not_allowed | L'IP appelante n'est pas dans la liste autorisée de la clé. | Appelez depuis une IP autorisée ou ajustez la liste d'IP de la clé. |
403 forbidden | Session sans aucun espace de travail rattaché. | Créez ou rejoignez un espace de travail avant d'appeler l'endpoint. |
429 rate_limited | Quota de requêtes par minute dépassé pour l'espace, ou nombre maximal d'utilisations de la clé atteint. | Respectez l'en-tête Retry-After et réessayez après la fenêtre. |
500 internal_error | Erreur interne (ex. validation RPC en échec). | Réessayez ; si le problème persiste, contactez le support avec le request_id. |
Voir aussi
- GET `/v1/workspaces/{id}/members` : lister les membres d'un espace de travail.
- GET `/v1/subscription` : consulter le plan et l'abonnement de l'espace.
- GET `/v1/quotas` : consulter la consommation et les quotas de l'espace.