NueForm

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

ownerrole

Accès complet. Peut gérer les membres, la facturation et supprimer l'équipe.

adminrole

Peut créer, modifier, supprimer des formulaires, gérer les membres et consulter les réponses.

editorrole

Peut créer et modifier des formulaires, consulter les réponses. Ne peut pas gérer les membres.

viewerrole

Peut consulter les formulaires et les réponses. Ne peut pas créer ni modifier.

Lister les équipes

GET/api/v1/teams

Renvoie toutes les équipes dont l'utilisateur authentifié est membre.

Réponse

json
{
  "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

bash
curl -X GET "https://api.nueform.io/api/v1/teams" \
  -H "Authorization: Bearer YOUR_API_KEY"

Créer une équipe

POST/api/v1/teams

Crée une nouvelle équipe. L'utilisateur authentifié devient le propriétaire de l'équipe.

Corps de la requête

namestring

Nom de l'équipe

Exemple de requête

json
{
  "name": "Marketing"
}

Réponse

json
{
  "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

bash
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

GET/api/v1/teams/:teamId

Récupère une équipe unique par son identifiant.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

Réponse

json
{
  "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

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY"

Mettre à jour une équipe

PUT/api/v1/teams/:teamId

Met à jour les propriétés de l'équipe. Nécessite le rôle owner ou admin.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

Corps de la requête

namestring

Nouveau nom de l'équipe

Exemple de requête

json
{
  "name": "Marketing & Growth"
}

Réponse

Renvoie l'objet équipe mis à jour.

Exemples de code

bash
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

DELETE/api/v1/teams/:teamId

Supprime 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

teamIdstring

L'identifiant de l'équipe

Réponse

json
{
  "success": true
}

Exemples de code

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY"

Lister les membres

GET/api/v1/teams/:teamId/members

Renvoie tous les membres d'une équipe.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

Réponse

json
{
  "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

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
  -H "Authorization: Bearer YOUR_API_KEY"

Ajouter un membre

POST/api/v1/teams/:teamId/members

Ajoute un utilisateur directement à une équipe par son identifiant utilisateur. Nécessite le rôle owner ou admin. Pour inviter un utilisateur par e-mail, utilisez Créer une invitation à la place.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

Corps de la requête

user_idstring

L'identifiant de l'utilisateur à ajouter

rolestring

Rôle à attribuer : "admin", "editor", "viewer" (par défaut : "viewer")

Exemple de requête

json
{
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "role": "editor"
}

Réponse

json
{
  "id": "66d2e3f4a5b6c7d8e9f0a1b2",
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f",
  "role": "editor",
  "joined_at": "2026-02-28T12:00:00.000Z"
}

Exemples de code

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
    "role": "editor"
  }'

Mettre à jour le rôle d'un membre

PUT/api/v1/teams/:teamId/members/:memberId

Met à 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

teamIdstring

L'identifiant de l'équipe

memberIdstring

L'identifiant du membre de l'équipe

Corps de la requête

rolestring

Nouveau rôle : "admin", "editor", "viewer"

Exemple de requête

json
{
  "role": "admin"
}

Réponse

json
{
  "id": "66d2e3f4a5b6c7d8e9f0a1b2",
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f",
  "role": "admin",
  "joined_at": "2026-01-15T14:30:00.000Z"
}

Exemples de code

bash
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

DELETE/api/v1/teams/:teamId/members/:memberId

Retire un membre d'une équipe. Nécessite le rôle owner ou admin. Le propriétaire de l'équipe ne peut pas être retiré.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

memberIdstring

L'identifiant du membre de l'équipe

Réponse

json
{
  "success": true
}

Exemples de code

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
  -H "Authorization: Bearer YOUR_API_KEY"

Lister les invitations

GET/api/v1/teams/:teamId/invitations

Renvoie toutes les invitations en attente pour une équipe. Nécessite le rôle owner ou admin.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

Réponse

json
{
  "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

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
  -H "Authorization: Bearer YOUR_API_KEY"

Créer une invitation

POST/api/v1/teams/:teamId/invitations

Envoie 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.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

Corps de la requête

emailstring

Adresse e-mail à inviter

rolestring

Rôle à attribuer lors de l'acceptation : "admin", "editor", "viewer" (par défaut : "editor")

Exemple de requête

json
{
  "email": "carol@example.com",
  "role": "editor"
}

Réponse

json
{
  "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

bash
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

DELETE/api/v1/teams/:teamId/invitations/:invId

Annule une invitation en attente. Nécessite le rôle owner ou admin. Le jeton d'invitation ne sera plus valide.

Paramètres de chemin

teamIdstring

L'identifiant de l'équipe

invIdstring

L'identifiant de l'invitation

Réponse

json
{
  "success": true
}

Exemples de code

bash
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 Request

Champs obligatoires manquants, rôle invalide

401Unauthorized

Clé API manquante ou invalide

403Forbidden

Rôle insuffisant pour l'action

404Not Found

Équipe, membre ou invitation introuvable

409Conflict

Utilisateur déjà membre, invitation en double

500Server Error

Erreur interne du serveur

Exemple d'erreur

json
{
  "error": "Not authorized to manage team members"
}
Dernière mise à jour : 6 avril 2026