agency-board
POST /v1/agency/boards/{boardId}/members
Put somebody on a board, or invite them by email.
Authentification
Envoyez une clé d'API en tant que jeton du porteur (bearer token). Cet endpoint n'indique pas de permission spécifique dans la spécification, attribuez donc à votre clé le minimum requis et vérifiez la réponse plutôt que de faire des suppositions.
Cet endpoint ne prend aucun identifiant d'organisation. Votre clé identifie déjà l'organisation à laquelle elle appartient, et la réponse y est limitée.
Essayer
Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.
curl -X POST https://api.zinndigital.com/v1/agency/boards/{boardId}/members \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "role": <string<manager, member, client>> }'Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API
Détails
Give `user_id` for somebody who already has an account, or `email` to invite somebody who does not — the invitation goes through `tenancy.Invitation` and the person joins on acceptance, authenticated by Keycloak with no secret token in the flow. ⛔ A `client` seat may only be given to a member of the board's own client organisation, and **no seat is written for a pending invite**: a client's authorisation is a live membership of that organisation, re-read on every request, so a seat created before acceptance would look like access and confer none.
Paramètres
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
boardId (path) | Uuid | Oui | Project board ID (UUIDv7). |
Corps de la requête
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
user_id | string | Non | Somebody who already has an account. Give this **or** `email`, not both. |
email | string | Non | Invite somebody who does not have an account yet. |
role | string<manager, member, client> | Oui | — |
member_org_id | string | Non | Which organisation this seat belongs to. Ignored for a `client` seat, which is always the board's own client organisation. |
Réponse
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
id | Uuid | Oui | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
board_id | Uuid | Oui | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
user_id | Uuid | Oui | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
member_org_id | Uuid | Oui | The organisation this seat belongs to — the agency's, or the client's. |
role | string<manager, member, client> | Oui | — |
last_read_at | string | Non | — |
created_at | string | Non | — |
user | AgencyBoardActor | Non | Who holds this seat, by name. ⛔ Render THIS, never `user_id` — the People drawer printed the id at a colleague's name until 2026-09-01 (`docs/425`). |
invited_by | AgencyBoardActor | Non | — |
Erreurs que cet point de terminaison peut renvoyer
401 · 403 · 404 · 422