ULTINEO REASONING

Équipe

Un membre d'équipe est un consommateur rattaché à votre projet avec un rôle. Cette ressource les liste, en invite de nouveaux, et modifie ou retire ceux qui existent. Un membre est identifié par un identifiant d'adhésion préfixé pjin_, qui n'est pas l'identifiant propre du consommateur.

Les appels

MéthodeCheminDroit requis
GET/v1/teamteam:read
GET/v1/team/<member_id>team:read
POST/v1/teamteam:write
PATCH/v1/team/<member_id>team:write
DELETE/v1/team/<member_id>team:write

<member_id> est un identifiant d'adhésion, préfixé pjin_.

L'objet membre d'équipe

ChampTypeDescription
idchaîneL'identifiant de l'adhésion, préfixé pjin_.
objectchaîneToujours team_member.
consumerobjetLa personne, sous id, email, name et surname.
roleobjetLe rôle, sous id (préfixé ptoi_) et name. Un projet compte deux rôles : administrator et user.
is_defaultbooléenIndique si ce membre est le propriétaire par défaut du projet.
statuschaîneLe statut de l'adhésion.
created_atentierLe moment où le membre a rejoint le projet, en secondes Unix.
updated_atentierDernière modification, en secondes Unix.

is_default désigne la seule adhésion dont le projet ne peut pas se passer. Elle ne peut être ni changée de rôle ni retirée par l'API.

Lister l'équipe

GET /v1/team renvoie les membres du projet, au plus 100, les plus récents d'abord.

curl
curl https://api.think.ultineo.com/v1/team \
  -H "Authorization: Bearer sk-project-YOUR_KEY"
json
{
  "code": 200,
  "title": "OK",
  "response": {
    "object": "list",
    "data": [
      {
        "id": "pjin_5c93b7e408a1df6215ba",
        "object": "team_member",
        "consumer": {
          "id": "cons_8e2b45a10c9df7631b4a",
          "email": "ada@acme.example",
          "name": "Ada",
          "surname": "Lovelace"
        },
        "role": { "id": "ptoi_6d7e8f901a2b3c4d5e6f", "name": "administrator" },
        "is_default": true,
        "status": "activated",
        "created_at": 1751328000,
        "updated_at": 1751328000
      }
    ],
    "total": 1
  }
}

Consulter un membre

GET /v1/team/<member_id> renvoie une seule adhésion de votre projet. Une adhésion d'un autre projet donne 404 et Team member not found.

curl
curl https://api.think.ultineo.com/v1/team/pjin_5c93b7e408a1df6215ba \
  -H "Authorization: Bearer sk-project-YOUR_KEY"

Inviter un membre

POST /v1/team invite un consommateur existant. Nommez-le par courriel ou par identifiant : l'un des deux est obligatoire.

ParamètreTypeObligatoireDescription
consumer_emailchaînel'un des deuxL'adresse de courriel du consommateur à inviter.
consumer_identchaînel'un des deuxL'identifiant du consommateur à inviter, préfixé cons_.
rolechaînenonLe rôle à donner : soit un identifiant de rôle préfixé ptoi_, soit un nom de rôle (administrator ou user). Vaut user par défaut.

Important — Un role qui ne correspond à aucun identifiant ni à aucun nom n'est pas refusé. L'invitation est créée avec user à la place : une valeur erronée ressemble donc à une réussite. Relisez role dans la réponse pour confirmer ce qui a été appliqué.

curl
curl -X POST https://api.think.ultineo.com/v1/team \
  -H "Authorization: Bearer sk-project-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "consumer_email": "grace@acme.example" }'

L'appel répond 201 avec la nouvelle adhésion, dans la forme même que renvoie le listage.

CodeMessageCause
422consumer_email or consumer_ident is required.Aucun des deux champs n'a été envoyé.
422The consumer cannot be invited to this project.Le consommateur ne peut pas rejoindre le projet. Voir ci-dessous.

Important — Toutes les raisons pour lesquelles une invitation ne peut aboutir donnent le même message 422 : consommateur inexistant, compte suspendu ou supprimé, ou consommateur déjà membre. L'API ne les distingue volontairement pas, afin que cet appel ne puisse pas servir à découvrir si une adresse de courriel possède un compte.

Changer un rôle

PATCH /v1/team/<member_id> ne change rien d'autre que le rôle.

ParamètreTypeObligatoireDescription
rolechaîneouiLe nouveau rôle : un identifiant préfixé ptoi_, ou un nom de rôle (administrator ou user).
curl
curl -X PATCH https://api.think.ultineo.com/v1/team/pjin_5c93b7e408a1df6215ba \
  -H "Authorization: Bearer sk-project-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "role": "ptoi_6d7e8f901a2b3c4d5e6f" }'

Important — Ici aussi, un role non reconnu n'est pas refusé. L'appel répond 200 avec le rôle du membre inchangé : une valeur erronée est donc silencieusement sans effet. Vérifiez role dans la réponse plutôt que le code de statut.

Le propriétaire par défaut est refusé par un 422 et Cannot change the role of the default owner of the project.

Retirer un membre

DELETE /v1/team/<member_id> détache le consommateur du projet. Le compte lui-même n'est pas touché.

curl
curl -X DELETE https://api.think.ultineo.com/v1/team/pjin_5c93b7e408a1df6215ba \
  -H "Authorization: Bearer sk-project-YOUR_KEY"
json
{
  "code": 200,
  "title": "OK",
  "response": {
    "deleted": true,
    "id": "pjin_5c93b7e408a1df6215ba"
  }
}

Le propriétaire par défaut est refusé par un 422 et Cannot remove the default owner of the project. Pour transmettre un projet, promouvez d'abord un autre membre depuis l'espace de travail.

Les invitations, les changements de rôle et les retraits sont tous consignés. Voir Événements.