API Équipes
Gérer les équipes, les membres, les rôles et les invitations pour la création collaborative de formulaires.
L'API Équipes vous permet de créer et gérer des équipes pour la création collaborative de formulaires. Les équipes permettent à plusieurs utilisateurs de partager des formulaires, avec un contrôle d'accès basé sur les rôles régissant qui peut consulter, modifier et supprimer des formulaires et des réponses.
Tous les corps de requête et de réponse utilisent des noms de champs en snake_case.
Rôles d'équipe
ownerroleAccès complet. Peut gérer les membres, la facturation et supprimer l'équipe.
adminrolePeut créer, modifier, supprimer des formulaires, gérer les membres et consulter les réponses.
editorrolePeut créer et modifier des formulaires, consulter les réponses. Ne peut pas gérer les membres.
viewerrolePeut consulter les formulaires et les réponses. Ne peut pas créer ni modifier.
/api/v1/teamsPOST/api/v1/teamsGET/api/v1/teams/:teamIdPUT/api/v1/teams/:teamIdDELETE/api/v1/teams/:teamIdGET/api/v1/teams/:teamId/membersPOST/api/v1/teams/:teamId/membersPUT/api/v1/teams/:teamId/members/:memberIdDELETE/api/v1/teams/:teamId/members/:memberIdGET/api/v1/teams/:teamId/invitationsPOST/api/v1/teams/:teamId/invitationsDELETE/api/v1/teams/:teamId/invitations/:invIdLister les équipes
/api/v1/teamsRenvoie toutes les équipes dont l'utilisateur authentifié est membre.
Réponse
{
"teams": [
{
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing",
"slug": "marketing",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-01-10T09:00:00.000Z",
"updated_at": "2026-02-15T11:30:00.000Z",
"member_count": 5,
"your_role": "admin"
},
{
"id": "665c3d4e5f6a7b8c9d0e1f20",
"name": "Product",
"slug": "product",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-02-01T14:00:00.000Z",
"updated_at": "2026-02-20T16:45:00.000Z",
"member_count": 3,
"your_role": "owner"
}
]
}
Exemples de code
curl -X GET "https://api.nueform.io/api/v1/teams" \
-H "Authorization: Bearer YOUR_API_KEY"
Créer une équipe
/api/v1/teamsCrée une nouvelle équipe. L'utilisateur authentifié devient le propriétaire de l'équipe.
Corps de la requête
namestringNom de l'équipe
Exemple de requête
{
"name": "Marketing"
}
Réponse
{
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing",
"slug": "marketing",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-02-28T12:00:00.000Z",
"updated_at": "2026-02-28T12:00:00.000Z"
}
Exemples de code
curl -X POST "https://api.nueform.io/api/v1/teams" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Marketing" }'
Obtenir une équipe
/api/v1/teams/:teamIdRécupère une équipe unique par son identifiant.
Tout membre de l'équipe peut l'appeler. La réponse n'inclut jamais les secrets de l'équipe (la chaîne de connexion de la base de données de résidence des données, l'ID de la connexion SSO ou les ID internes de domaine), et sso_domain_verify_token (la valeur DNS qui prouve le domaine SSO) n'est renvoyé qu'aux appelants ayant le rôle owner ou admin.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Réponse
{
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing",
"slug": "marketing",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-01-10T09:00:00.000Z",
"updated_at": "2026-02-15T11:30:00.000Z",
"member_count": 5
}
Exemples de code
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY"
Mettre à jour une équipe
/api/v1/teams/:teamIdMet à jour les propriétés de l'équipe. Nécessite le rôle owner ou admin.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Corps de la requête
namestringNouveau nom de l'équipe
Exemple de requête
{
"name": "Marketing & Growth"
}
Réponse
Renvoie l'objet équipe mis à jour.
Exemples de code
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Marketing & Growth" }'
Supprimer une équipe
/api/v1/teams/:teamIdSupprime définitivement une équipe. Seul le propriétaire de l'équipe peut la supprimer.
La suppression d'une équipe retire toutes les adhésions et invitations. Les formulaires appartenant à l'équipe ne sont pas automatiquement supprimés mais deviendront inaccessibles aux anciens membres de l'équipe.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Réponse
{
"success": true
}
Exemples de code
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY"
Lister les membres
/api/v1/teams/:teamId/membersRenvoie tous les membres d'une équipe.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Réponse
{
"members": [
{
"id": "66d1e2f3a4b5c6d7e8f9a0b1",
"user_id": "665a0a1b2c3d4e5f6a7b8c9d",
"email": "alice@example.com",
"first_name": "Alice",
"last_name": "Johnson",
"role": "owner",
"joined_at": "2026-01-10T09:00:00.000Z"
},
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"email": "bob@example.com",
"first_name": "Bob",
"last_name": "Smith",
"role": "editor",
"joined_at": "2026-01-15T14:30:00.000Z"
}
]
}
Exemples de code
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
-H "Authorization: Bearer YOUR_API_KEY"
Ajouter un membre
/api/v1/teams/:teamId/membersInvite une personne dans l'équipe par e-mail, exactement comme Créer une invitation : NueForm envoie l'invitation par e-mail, elle expire au bout de 7 jours et la personne rejoint l'équipe en l'acceptant. Cet endpoint n'ajoute pas directement un utilisateur existant. Nécessite le rôle owner ou admin. Renvoie l'invitation (201) ; répond 409 si l'adresse appartient déjà à un membre ou a déjà une invitation en attente qui n'a pas expiré (une invitation expirée n'empêche pas d'en envoyer une nouvelle), et 400 si le forfait du propriétaire de l'équipe n'a plus de siège disponible : une invitation en attente occupe un siège jusqu'à son expiration.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Corps de la requête
emailstringAdresse e-mail à inviter (enregistrée en minuscules)
rolestringRôle attribué à la personne lorsqu'elle accepte : "admin", "editor" ou "viewer"
Exemple de requête
{
"email": "carol@example.com",
"role": "editor"
}
Réponse
{
"id": "66e1f2a3b4c5d6e7f8a9b0c1",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"email": "carol@example.com",
"role": "editor",
"invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
"token": "2f7c1d3e-9a4b-4c1d-8e2f-0a1b2c3d4e5f",
"status": "pending",
"language": "en",
"expires_at": "2026-03-07T12:00:00.000Z",
"created_at": "2026-02-28T12:00:00.000Z",
"invite_url": "/teams/invite/2f7c1d3e-9a4b-4c1d-8e2f-0a1b2c3d4e5f"
}
Exemples de code
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "carol@example.com",
"role": "editor"
}'
Mettre à jour le rôle d'un membre
/api/v1/teams/:teamId/members/:memberIdMet à jour le rôle d'un membre de l'équipe. Nécessite le rôle owner ou admin. Vous ne pouvez pas modifier le rôle du propriétaire.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
memberIdstringL'identifiant du membre de l'équipe
Corps de la requête
rolestringNouveau rôle : "admin", "editor", "viewer"
Exemple de requête
{
"role": "admin"
}
Réponse
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"role": "admin",
"joined_at": "2026-01-15T14:30:00.000Z"
}
Exemples de code
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "role": "admin" }'
Retirer un membre
/api/v1/teams/:teamId/members/:memberIdRetire un membre d'une équipe. Nécessite le rôle owner ou admin. Le propriétaire de l'équipe ne peut pas être retiré. Les invitations en attente de cette équipe adressées à cette personne sont également annulées, afin qu'elle ne puisse pas revenir avec l'une d'elles.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
memberIdstringL'identifiant du membre de l'équipe
Réponse
{
"success": true,
"message": "Member removed from team"
}
Exemples de code
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
-H "Authorization: Bearer YOUR_API_KEY"
Lister les invitations
/api/v1/teams/:teamId/invitationsRenvoie les invitations en attente de l'équipe qui n'ont pas expiré, de la plus récente à la plus ancienne. Tout membre de l'équipe peut l'appeler ; le champ token (le secret du lien d'invitation) n'est inclus que pour les appelants ayant le rôle owner ou admin.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Réponse
{
"invitations": [
{
"id": "66e1f2a3b4c5d6e7f8a9b0c1",
"email": "carol@example.com",
"role": "editor",
"invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
"status": "pending",
"expires_at": "2026-03-07T12:00:00.000Z",
"created_at": "2026-02-28T12:00:00.000Z"
}
]
}
Exemples de code
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
-H "Authorization: Bearer YOUR_API_KEY"
Créer une invitation
/api/v1/teams/:teamId/invitationsEnvoie une invitation par e-mail pour rejoindre une équipe. L'invitation inclut un jeton unique et expire après 7 jours. Nécessite le rôle owner ou admin. Répond 409 si l'adresse appartient déjà à un membre ou a déjà une invitation en attente qui n'a pas expiré (une invitation expirée n'empêche pas d'en envoyer une nouvelle), et 400 si le forfait du propriétaire de l'équipe n'a plus de siège disponible : une invitation en attente occupe un siège jusqu'à son expiration.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
Corps de la requête
emailstringAdresse e-mail à inviter
rolestringRôle attribué à la personne lorsqu'elle accepte : "admin", "editor" ou "viewer"
Exemple de requête
{
"email": "carol@example.com",
"role": "editor"
}
Réponse
{
"id": "66e1f2a3b4c5d6e7f8a9b0c1",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"email": "carol@example.com",
"role": "editor",
"invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
"token": "2f7c1d3e-9a4b-4c1d-8e2f-0a1b2c3d4e5f",
"status": "pending",
"language": "en",
"expires_at": "2026-03-07T12:00:00.000Z",
"created_at": "2026-02-28T12:00:00.000Z",
"invite_url": "/teams/invite/2f7c1d3e-9a4b-4c1d-8e2f-0a1b2c3d4e5f"
}
Exemples de code
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "carol@example.com",
"role": "editor"
}'
Annuler une invitation
/api/v1/teams/:teamId/invitations/:invIdAnnule une invitation en attente. Nécessite le rôle owner ou admin. Le jeton d'invitation ne sera plus valide.
Paramètres de chemin
teamIdstringL'identifiant de l'équipe
invIdstringL'identifiant de l'invitation
Réponse
{
"success": true,
"message": "Invitation cancelled"
}
Exemples de code
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations/66e1f2a3b4c5d6e7f8a9b0c1" \
-H "Authorization: Bearer YOUR_API_KEY"
Réponses d'erreur
Réponses d'erreur standard renvoyées par les points d'accès de l'API Équipes.
Codes d'erreur
400Bad RequestChamps obligatoires manquants, e-mail ou rôle invalide, ou plus aucun siège disponible sur le forfait du propriétaire de l'équipe
401UnauthorizedClé API manquante ou invalide
403ForbiddenPas membre de l'équipe, ou rôle insuffisant pour l'action
404Not FoundÉquipe, membre ou invitation introuvable
409ConflictUtilisateur déjà membre, invitation en double
500Server ErrorErreur interne du serveur
Exemple d'erreur
{
"error": {
"code": "CONFLICT",
"message": "A pending invitation already exists for this email",
"status": 409
}
}