agency-board
POST /v1/agency/boards/{boardId}/members
Put somebody on a board, or invite them by email.
Autenticación
Envía una clave de API como token de portador. Este endpoint no especifica un permiso concreto en la especificación, así que otorga a tu clave los mínimos privilegios necesarios y comprueba la respuesta en lugar de dar por sentado.
Este endpoint no requiere ningún id de organización. Su clave ya identifica la organización a la que pertenece, y la respuesta está delimitada a ella.
Pruébalo
Reemplaza cualquier elemento entre corchetes angulares por tus propios valores, y el marcador de posición key con una clave de tu panel de control.
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>> }'¿Has iniciado sesión? La consola de la API en tu panel de control rellena el ID de tu organización real y tu propia clave, y ejecuta la solicitud contra la API en vivo para que puedas ver la respuesta real. Abre este endpoint en la consola de la API
Detalles
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.
Parámetros
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
boardId (path) | Uuid | Sí | Project board ID (UUIDv7). |
Cuerpo de la solicitud
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
user_id | string | No | Somebody who already has an account. Give this **or** `email`, not both. |
email | string | No | Invite somebody who does not have an account yet. |
role | string<manager, member, client> | Sí | — |
member_org_id | string | No | Which organisation this seat belongs to. Ignored for a `client` seat, which is always the board's own client organisation. |
Respuesta
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
id | Uuid | Sí | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
board_id | Uuid | Sí | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
user_id | Uuid | Sí | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
member_org_id | Uuid | Sí | The organisation this seat belongs to — the agency's, or the client's. |
role | string<manager, member, client> | Sí | — |
last_read_at | string | No | — |
created_at | string | No | — |
user | AgencyBoardActor | No | 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 | No | — |
Errores que este endpoint puede devolver
401 · 403 · 404 · 422