Requête exemple
Réponse exemple
POST/v1/rooms/{id}/membersInvite un membre par e-mail et génère un lien magique d'accès à la salle.Invite une personne dans une salle de partage à partir de son adresse e-mail. L'endpoint est idempotent par e-mail : s'il existe déjà un membre avec cette adresse dans la salle, son rôle est mis à jour, sa révocation éventuelle est annulée (revoked_at remis à null) et son jeton d'invitation existant est réutilisé ; sinon un nouveau membre est créé avec un nouveau jeton. Dans tous les cas, l'endpoint renvoie un lien magique (https://files.coffrify.com/room/{slug}?t={token}) et déclenche, au mieux, un e-mail d'invitation. L'envoi d'e-mail est best-effort : son échec n'interrompt jamais la requête.
Authentification
Requiert une clé API valide disposant du scope rooms:manage. Un scope englobant (rooms:* ou *) convient également. Sans ce scope, l'appel renvoie un 403 scope_missing.
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Adresse e-mail de l'invité. Normalisée (mise en minuscules et détourée) et validée par expression régulière ; une adresse invalide renvoie un 400. | |
| role | string | Non | Rôle attribué au membre. Valeur par défaut : viewer si omis. |
Réponse
En cas de succès, la réponse a un statut 201 et contient id (identifiant du membre créé ou réactivé), email, role et magic_link. Le magic_link est l'URL d'accès direct à la salle, à transmettre à l'invité : il combine le slug de la salle et le jeton d'invitation opaque. Cette URL est aussi insérée dans l'e-mail d'invitation envoyé en arrière-plan.
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 validation_error | email absent ou non conforme au format attendu. | Fournissez une adresse e-mail valide dans le corps JSON. |
| 401 invalid_api_key | Clé API absente, malformée ou non reconnue. | Vérifiez l'en-tête Authorization. |
| 403 scope_missing | Le jeton ne porte pas le scope rooms:manage. | Utilisez une clé incluant rooms:manage. |
| 404 not_found | Aucune salle avec cet id dans l'espace de travail du jeton. | Vérifiez l'id de la salle et l'espace de travail de la clé. |
| 429 rate_limited | Quota de requêtes en écriture par minute dépassé. | Respectez l'en-tête Retry-After. |
| 500 internal_error | Échec de l'insertion ou de la mise à jour en base. | Réessayez ; conservez le X-Request-Id pour le support. |
Voir aussi
- GET /v1/rooms/{id}/members pour lister les membres après invitation.
DELETE /v1/rooms/{id}/members?id=…pour révoquer l'accès d'un membre.- GET /v1/rooms/{id} pour récupérer le
sluget le nom de la salle.