# Lire le propriétaire de la clé et l'organisation

Ces trois endpoints disent qui utilise la clé, et dans quelle organisation elle travaille. La CLI les appelle au premier contact.

## GET `/v2/user`

Renvoie la personne qui a créé la clé.

```bash
curl https://api.host.hgdc.ch/v2/user \
  -H "Authorization: Bearer $VERCEL_TOKEN"
```

Réponse `200` :

```json
{
  "user": {
    "id": "u1a2b3c4d5",
    "uid": "u1a2b3c4d5",
    "email": "camille@atelier.ch",
    "name": "Camille Rochat",
    "username": "atelier",
    "defaultTeamId": "k57a1b2c3d4e5f6g7h8j9k0m1n",
    "version": "northstar"
  }
}
```

| Champ                | Type     | Description                                                                 |
| -------------------- | -------- | --------------------------------------------------------------------------- |
| `user.id`            | `string` | Identifiant de la personne. `uid` porte la même valeur                      |
| `user.email`         | `string` | Adresse e-mail de la personne, tant qu’elle est membre de l’organisation    |
| `user.name`          | `string` | Nom affiché de la personne. À défaut, l’adresse e-mail                      |
| `user.username`      | `string` | Slug de l’organisation de la clé                                            |
| `user.defaultTeamId` | `string` | Identifiant de l’organisation de la clé. C’est la valeur de `VERCEL_ORG_ID` |
| `user.version`       | `string` | Valeur fixe : `northstar`                                                   |

Erreurs : `403 forbidden` si l’organisation de la clé n’existe plus.

## GET `/v2/teams`

Renvoie l’organisation de la clé. La liste ne contient jamais qu’une seule organisation : une clé n’ouvre qu’une organisation.

```bash
curl https://api.host.hgdc.ch/v2/teams \
  -H "Authorization: Bearer $VERCEL_TOKEN"
```

Réponse `200` :

```json
{
  "teams": [
    {
      "id": "k57a1b2c3d4e5f6g7h8j9k0m1n",
      "slug": "atelier",
      "name": "Atelier Rochat",
      "avatar": null,
      "membership": { "role": "OWNER" }
    }
  ],
  "pagination": { "count": 1, "next": null, "prev": null }
}
```

> **Note**
>
> `membership.role` vaut toujours `OWNER` pour la CLI, quel que soit le rôle réel de la personne. Les vrais rôles se gèrent dans Account, voir [Organisations et rôles](/docs/concepts/organisations-et-roles/).

## GET `/v2/teams/:idOrSlug`

Renvoie l’organisation seule, sans liste. Le paramètre est l’identifiant ou le slug de l’organisation de la clé.

```bash
curl https://api.host.hgdc.ch/v2/teams/atelier \
  -H "Authorization: Bearer $VERCEL_TOKEN"
```

Toute autre organisation répond `404 not_found`. Les deux routes répondent aussi sous `/v1`.

## Erreurs

| Statut | Code        | Cause                                                                          |
| ------ | ----------- | ------------------------------------------------------------------------------ |
| `403`  | `forbidden` | Pour `/v2/user` : l’organisation de la clé n’existe plus                       |
| `404`  | `not_found` | Pour `/v2/teams/:idOrSlug` : l’organisation demandée n’est pas celle de la clé |

Voir la liste complète sur [Erreurs](/docs/reference/api/erreurs/).
