# API Dossiers Législatifs & Amendements

## 📜 Routes des dossiers législatifs

| Méthode | Route | Description |
| :--- | :--- | :--- |
| `GET` | `/api/v1/dossiers` | Liste paginée des dossiers législatifs déposés à l'AN et au Sénat |
| `GET` | `/api/v1/dossiers/trending` | Dossiers ayant le plus de scrutins sur les 3 derniers mois |
| `GET` | `/api/v1/dossiers/:uid` | Fiche complète d'un dossier (titre, statut, procédure, résumé IA) |
| `GET` | `/api/v1/dossiers/:uid/chronologie` | Étapes du parcours du texte, d'une chambre à l'autre |
| `GET` | `/api/v1/dossiers/:uid/scrutins` | Tous les scrutins publics rattachés à ce texte |
| `GET` | `/api/v1/dossiers/:uid/amendements` | Amendements déposés sur le dossier |

---

## ✏️ Amendements d'un dossier

`GET /api/v1/dossiers/:uid/amendements` est paginé (`page`, `limit` jusqu'à 100), du dépôt le plus récent au plus ancien. Filtres :

| Paramètre | Effet |
| :--- | :--- |
| `voted=true` | Seulement les amendements mis aux voix par un scrutin public |
| `groupe=<slug>` | Seulement ceux dont l'auteur siégeait dans ce groupe **au dépôt** (pas son groupe actuel) |
| `sort=<valeur>` | Seulement ceux qui ont ce sort, tel que publié |
| `racines=true` | Sans les sous-amendements |
| `parentId=<id>` | Les sous-amendements d'un amendement |
| `discussionCommune=<id>&chambre=<chambre>` | Les amendements d'une même discussion commune |
| `discussionIdentique=<id>&chambre=<chambre>` | Les amendements identiques entre eux |
| `amendement=<uid>` | Un seul amendement, par son uid, s'il est rangé dans ce dossier |

Avec `parentId`, `discussionCommune` ou `discussionIdentique`, la liste suit l'ordre d'appel en séance plutôt que la date de dépôt. Un identifiant de discussion n'est unique qu'au sein d'une chambre, d'où le paramètre `chambre`.

La fiche du dossier (`GET /api/v1/dossiers/:uid`) donne les 20 premiers amendements, sous-amendements compris ; chacun porte son parent et son nombre de sous-amendements, de quoi les regrouper.

### Champs de séance

Chaque amendement renvoyé par l'API (liste d'un dossier, détail d'un scrutin, liste d'un parlementaire) porte, en plus de son texte :

| Champ | Contenu |
| :--- | :--- |
| `alinea` | L'alinéa visé, tel que publié : « Après l'alinéa 9 » à l'Assemblée, « 2 » ou « Rédaction complète » au Sénat |
| `alineaNumero` | Le numéro de l'alinéa seul |
| `idDiscussionCommune`, `positionDiscussionCommune` | La discussion commune (amendements discutés ensemble) et la place qu'y occupe l'amendement : `Premier`, `Milieu` ou `Dernier`. La place n'est publiée que par l'Assemblée |
| `idDiscussionIdentique`, `positionDiscussionIdentique` | Le groupe d'amendements identiques, mis aux voix ensemble |
| `chronotag` | Date de la dernière modification publiée par l'Assemblée. Le Sénat n'en publie pas |
| `triAmendement` | Clé de l'ordre d'appel en séance (Assemblée), à trier en ordre lexicographique |
| `seanceDiscussionRef` | Uid de la séance de discussion (Assemblée), soit l'`uid` d'une réunion de l'agenda quand elle y figure |
| `amendementParentId`, `amendementParent` | Pour un sous-amendement : l'amendement qu'il modifie (`id`, `uid`, `numero`, `auteurLibelle`) |
| `sousAmendementsCount` | Le nombre de sous-amendements de l'amendement |

---

## 🗂️ Routes des sujets

Un sujet regroupe les dossiers de l'Assemblée nationale et du Sénat qui portent sur le même texte :

| Méthode | Route | Description |
| :--- | :--- | :--- |
| `GET` | `/api/v1/sujets` | Liste des sujets avec pagination et filtres thématiques |
| `GET` | `/api/v1/sujets/featured` | Sujets majeurs mis en avant |
| `GET` | `/api/v1/sujets/:slug` | Synthèse complète du sujet (enjeux, résumés, positions comparées) |
| `GET` | `/api/v1/sujets/:slug/presse` | Articles de presse récents, lus en direct sur Google Actualités (liens seulement, cache de 3 h) |

Toutes les routes des sujets (`/categories`, `/:slug/archive`, `/:slug/documents-lies`, `/:slug/dossiers`, `/:slug/chronologie`, `/:slug/scrutins`, `/:slug/stats`) et leurs schémas de réponse : [explorateur de l'API](/api).
