
# Lister les organisations au choix

`GET /fapi/v1/authorization-requests/{authorization_request_id}/organizations` · appelé depuis l'hôte de connexion de l'environnement

Appelé par le sélecteur d'organisation hébergé à `/u/organization`. Lorsque `organization_usage` d'une application vaut `require` et que la demande d'autorisation ne nomme aucune `organization`, le point de terminaison d'autorisation recherche les organisations de l'utilisateur une fois celui-ci connecté. S'il n'en a aucune, la demande se termine par `access_denied` avec `error_description=no_organization_membership`. S'il n'en a qu'une, cette organisation est liée sans afficher d'écran. S'il en a deux ou plus, le navigateur passe au sélecteur, qui lit cette liste.

La liste contient les organisations où l'utilisateur a une adhésion active, où l'organisation est active et où l'application est activée. Elle est triée par slug et contient au plus 100 entrées ; `truncated: true` signifie qu'il en existe davantage. L'organisation choisie en dernier dans cette session vient en premier et porte `last_used: true`. `name` est une donnée client dont les caractères de contrôle et de direction ont été retirés. Lorsqu'une organisation n'a pas de nom, `name` est son slug. Lire la liste ne lie rien.

La demande d'autorisation doit être en attente, ouverte sur cet hôte de connexion et accompagnée du cookie de liaison défini par le point de terminaison d'autorisation dans ce navigateur. Les cas suivants reçoivent tous la même réponse `404 not_found` :

- une demande mal formée ou inconnue
- une demande expirée ou terminée
- une demande ouverte sur un autre hôte
- une demande ouverte dans un autre navigateur

Nécessite le cookie `__Host-idp_session` de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie `401 unauthenticated`.

## Requête

Paramètre de chemin :

| Paramètre | Description |
| --- | --- |
| `authorization_request_id` | La valeur `authorization_request` de l'URL du sélecteur (`azr_…`). |

En-têtes :

| En-tête | Requis | Description |
| --- | --- | --- |
| `Idp-Client` | oui | Identifiant du SDK. |

Pas de corps.

## Réponse

`200 OK` :

| Champ | Type | Description |
| --- | --- | --- |
| `data[].id` | string | Identifiant de l'organisation (`org_…`). |
| `data[].slug` | string | Slug de l'organisation. |
| `data[].name` | string | Nom d'affichage, en texte brut. |
| `data[].last_used` | boolean | Indique s'il s'agit de l'organisation choisie en dernier dans cette session. |
| `truncated` | boolean | Indique si l'utilisateur possède davantage d'organisations éligibles que celles listées. |

```json
{
  "data": [
    {"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w", "slug": "acme", "name": "Acme", "last_used": false},
    {"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9x", "slug": "globex", "name": "Globex", "last_used": false}
  ],
  "truncated": false
}
```

## Erreurs

| Statut | Code | Quand |
| --- | --- | --- |
| 401 | `unauthenticated` | Aucun cookie de session valide. |
| 404 | `not_found` | La demande est mal formée, inconnue, expirée, terminée, ouverte sur un autre hôte ou dans un autre navigateur. |
| 409 | `conflict` | La demande a déjà une organisation. |
| 503 | `temporarily_unavailable` | La liste des organisations n'a pas pu être lue. |

## Exemple

```bash
curl https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w/organizations \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -b cookies.txt
```
