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.

On this page

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

owner

Accès complet

Accès complet

Accès complet

Accès complet

admin

Accès complet

Accès complet

Inviter, supprimer, changer les rôles

Lecture seule

editor

Créer, modifier, publier, archiver

Lecture seule

Pas d'accès

Pas d'accès

viewer

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

email

string

Oui

Adresse email de la personne à inviter

name

string

Oui

Nom d'affichage du membre invité

role

string

Oui

Rôle à attribuer : admin, editor, viewer

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

token

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

token

string

Oui

Jeton d'invitation

password

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

role

string

Oui

Nouveau rôle : admin, editor, viewer

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 admin ne peut pas promouvoir un autre membre au rôle owner.

  • 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 owner de 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.

← Previous
API Publications