API Équipes
Gérez les membres de l'équipe de votre organisation. Invitez des collaborateurs, attribuez des rôles, mettez à jour les permissions et supprimez des membres.
- Rôles et permissions
- Lister les membres de l'équipe
- Exemple de requête
- Exemple de réponse
- Inviter un membre de l'équipe
- Corps de la requête
- Exemple de requête
- Exemple de réponse
- Renvoyer une invitation
- Exemple de requête
- Exemple de réponse
- Révoquer une invitation
- Exemple de requête
- Exemple de réponse
- Valider une invitation (public)
- Corps de la requête
- Exemple de réponse
- Accepter une invitation (public)
- Corps de la requête
- Exemple de requête
- Exemple de réponse
- Modifier le rôle d'un membre
- Corps de la requête
- Exemple de requête
- Exemple de réponse
- Supprimer un membre de l'équipe
- Exemple de requête
- Exemple de réponse
- Limites du forfait
API Équipes
L'API Équipes vous permet de gérer les membres de votre organisation. Vous pouvez inviter de nouveaux collaborateurs, attribuer des rôles, mettre à jour les permissions et supprimer des membres. Les limites du nombre de membres sont appliquées en fonction de votre forfait d'abonnement.
URL de base : https://api.zenflip.io/v1/teams
Rôles et permissions
ZenFlip utilise quatre rôles avec des permissions hiérarchiques :
Rôle | Publications | Paramètres | Gestion d'équipe | Facturation |
|---|---|---|---|---|
| Accès complet | Accès complet | Accès complet | Accès complet |
| Accès complet | Accès complet | Inviter, supprimer, changer les rôles | Lecture seule |
| Créer, modifier, publier, archiver | Lecture seule | Pas d'accès | Pas d'accès |
| Lecture seule | Pas d'accès | Pas d'accès | Pas d'accès |
Chaque organisation a exactement un owner. Le rôle de propriétaire ne peut être ni supprimé ni rétrogradé. Le transfert de propriété doit être effectué via le tableau de bord.
Lister les membres de l'équipe
Récupérez tous les membres de votre organisation.
` GET /teams/members `
Exemple de requête
`bash curl "https://api.zenflip.io/v1/teams/members" \ -H "Authorization: Bearer YOUR_TOKEN" `
Exemple de réponse
`json { "data": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "email": "owner@example.com", "name": "Alex Chen", "role": "owner", "status": "active", "avatarUrl": "https://cdn.zenflip.io/avatars/550e8400.jpg", "emailVerified": true, "lastActiveAt": "2026-02-20T14:00:00.000Z", "createdAt": "2025-06-01T10:00:00.000Z" }, { "id": "660e8400-e29b-41d4-a716-446655440001", "email": "editor@example.com", "name": "Sarah Kim", "role": "editor", "status": "active", "avatarUrl": null, "emailVerified": true, "lastActiveAt": "2026-02-19T16:30:00.000Z", "createdAt": "2025-09-15T08:00:00.000Z" }, { "id": "770e8400-e29b-41d4-a716-446655440002", "email": "newuser@example.com", "name": "Pending User", "role": "viewer", "status": "invited", "avatarUrl": null, "emailVerified": false, "lastActiveAt": null, "createdAt": "2026-02-18T11:00:00.000Z" } ] } `
Le champ status indique si le membre est active (a accepté l'invitation) ou invited (en attente d'acceptation).
Inviter un membre de l'équipe
Envoyez une invitation par email à un nouveau membre de l'équipe. L'invité reçoit un lien pour définir son mot de passe et rejoindre l'organisation.
` POST /teams/invite `
Rôle requis : admin ou supérieur.
Corps de la requête
Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Adresse email de la personne à inviter |
| string | Oui | Nom d'affichage du membre invité |
| string | Oui | Rôle à attribuer : |
Exemple de requête
`bash curl -X POST "https://api.zenflip.io/v1/teams/invite" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "email": "neweditor@example.com", "name": "Jordan Lee", "role": "editor" }' `
Exemple de réponse
`json { "data": { "id": "880e8400-e29b-41d4-a716-446655440003", "email": "neweditor@example.com", "name": "Jordan Lee", "role": "editor", "status": "invited", "createdAt": "2026-02-20T16:00:00.000Z" } } `
Si l'organisation a atteint la limite de membres de son forfait, l'API renvoie une erreur 403 avec un message indiquant que la limite a été atteinte.
Renvoyer une invitation
Renvoyez l'email d'invitation à un membre de l'équipe en attente.
` POST /teams/members/:id/resend-invite `
Rôle requis : admin ou supérieur.
Exemple de requête
`bash curl -X POST "https://api.zenflip.io/v1/teams/members/880e8400.../resend-invite" \ -H "Authorization: Bearer YOUR_TOKEN" `
Exemple de réponse
`json { "message": "Invitation resent" } `
Révoquer une invitation
Annulez une invitation en attente avant qu'elle ne soit acceptée.
` DELETE /teams/members/:id/revoke-invite `
Rôle requis : admin ou supérieur.
Exemple de requête
`bash curl -X DELETE "https://api.zenflip.io/v1/teams/members/880e8400.../revoke-invite" \ -H "Authorization: Bearer YOUR_TOKEN" `
Exemple de réponse
`json { "message": "Invitation revoked" } `
Valider une invitation (public)
Vérifiez si un jeton d'invitation est valide sans le consommer. Il s'agit d'un endpoint public utilisé par le frontend pour afficher le formulaire d'acceptation de l'invitation.
` POST /teams/validate-invite `
Aucune authentification requise.
Corps de la requête
Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Jeton d'invitation |
Exemple de réponse
`json { "data": { "valid": true, "email": "neweditor@example.com", "organizationName": "Acme Publishing", "role": "editor", "invitedBy": "Alex Chen" } } `
Accepter une invitation (public)
Acceptez une invitation et définissez un mot de passe. Cet endpoint crée le compte utilisateur, génère des jetons JWT et connecte l'utilisateur immédiatement.
` POST /teams/accept-invite `
Aucune authentification requise.
Corps de la requête
Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Jeton d'invitation |
| string | Oui | Mot de passe du compte |
Exemple de requête
`bash curl -X POST "https://api.zenflip.io/v1/teams/accept-invite" \ -H "Content-Type: application/json" \ -d '{ "token": "invite_token_abc123", "password": "SecureP@ssw0rd!" }' `
Exemple de réponse
`json { "message": "Invitation accepted successfully", "user": { "id": "880e8400-e29b-41d4-a716-446655440003", "email": "neweditor@example.com", "name": "Jordan Lee", "role": "editor" }, "organization": { "id": "660e8400-e29b-41d4-a716-446655440000", "name": "Acme Publishing" }, "accessToken": "eyJhbGciOiJIUzI1NiIs...", "refreshToken": "eyJhbGciOiJIUzI1NiIs...", "expiresIn": 3600 } `
Modifier le rôle d'un membre
Modifiez le rôle d'un membre existant de l'équipe.
` PATCH /teams/members/:id/role `
Rôle requis : admin ou supérieur.
Corps de la requête
Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Nouveau rôle : |
Exemple de requête
`bash curl -X PATCH "https://api.zenflip.io/v1/teams/members/660e8400.../role" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "role": "admin" }' `
Exemple de réponse
`json { "data": { "id": "660e8400-e29b-41d4-a716-446655440001", "email": "editor@example.com", "name": "Sarah Kim", "role": "admin", "status": "active" } } `
Restrictions :
Vous ne pouvez pas modifier le rôle
owner.Un
adminne peut pas promouvoir un autre membre au rôleowner.Vous ne pouvez pas modifier votre propre rôle.
Supprimer un membre de l'équipe
Supprimez un membre de l'organisation. Cela révoque immédiatement tous ses accès.
` DELETE /teams/members/:id `
Rôle requis : admin ou supérieur.
Exemple de requête
`bash curl -X DELETE "https://api.zenflip.io/v1/teams/members/660e8400-e29b-41d4-a716-446655440001" \ -H "Authorization: Bearer YOUR_TOKEN" `
Exemple de réponse
`json { "message": "Team member removed" } `
Restrictions :
Le
ownerde l'organisation ne peut pas être supprimé.Un membre ne peut pas se supprimer lui-même (utilisez le tableau de bord pour quitter une organisation).
Limites du forfait
Les limites du nombre de membres de l'équipe varient selon le forfait d'abonnement :
Forfait | Membres de l'équipe |
|---|---|
Explorer | 1 (propriétaire uniquement) |
Creator | 3 |
Business | 15 |
Enterprise | Illimité |
Toute tentative d'invitation d'un membre au-delà de la limite de votre forfait renvoie une erreur 403. Mettez à niveau votre forfait via les paramètres de facturation pour augmenter la limite.