> For the complete documentation index, see [llms.txt](https://documentation.tousquali.fr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.tousquali.fr/integrations/03-donnees-disponibles.md).

# Données disponibles

## Vue d'ensemble

L'API TousQuali te donne accès à **6 types de données** en lecture. Cette page détaille les informations que tu peux récupérer pour chaque ressource.

* 📚 Formations et sessions
* 👥 Inscriptions et formateur·ices
* 🏢 Lieux et clients
* 🔍 Filtres et tri pour affiner tes recherches

***

## Formations

**Endpoint** : `/api/v1/trainings`

Les formations représentent ton catalogue de formations.

### Informations disponibles

* Nom de la formation
* Statut (active, archivée...)
* Date de création

### Filtres disponibles

| Filtre   | Description                 | Exemple          |
| -------- | --------------------------- | ---------------- |
| `name`   | Recherche par nom (partiel) | `?name=gestion`  |
| `status` | Filtrer par statut (exact)  | `?status=active` |

### Tri

Tu peux trier les résultats par : `id`, `name`, `created_at`

***

## Sessions

**Endpoint** : `/api/v1/sessions`

Les sessions représentent les occurrences planifiées de tes formations.

### Informations disponibles

* Nom de la session
* Dates de début et de fin
* Format (présentiel, distanciel, mixte)
* Visibilité
* Statut
* Formation associée

### Filtres disponibles

| Filtre              | Description              | Exemple                         |
| ------------------- | ------------------------ | ------------------------------- |
| `name`              | Recherche par nom        | `?name=mars`                    |
| `status`            | Filtrer par statut       | `?status=confirmed`             |
| `format`            | Filtrer par format       | `?format=presentiel`            |
| `visibility`        | Filtrer par visibilité   | `?visibility=public`            |
| `training.id`       | Sessions d'une formation | `?training.id=42`               |
| `started_at[after]` | Sessions après une date  | `?started_at[after]=2026-01-01` |
| `ended_at[before]`  | Sessions avant une date  | `?ended_at[before]=2026-12-31`  |

### Tri

Tu peux trier par : `id`, `started_at`, `ended_at`, `created_at`

***

## Inscriptions

**Endpoint** : `/api/v1/entries`

Les inscriptions représentent les participant·es inscrit·es à tes sessions.

### Informations disponibles

* Prénom et nom du·de la participant·e
* Adresse email
* Statut de l'inscription
* Date de validation
* Session associée

### Filtres disponibles

| Filtre       | Description                | Exemple                   |
| ------------ | -------------------------- | ------------------------- |
| `firstname`  | Recherche par prénom       | `?firstname=Marie`        |
| `lastname`   | Recherche par nom          | `?lastname=Dupont`        |
| `email`      | Recherche par email        | `?email=marie@exemple.fr` |
| `status`     | Filtrer par statut         | `?status=validated`       |
| `session.id` | Inscriptions d'une session | `?session.id=15`          |

### Tri

Tu peux trier par : `id`, `firstname`, `lastname`, `created_at`, `validated_at`

***

## Lieux

**Endpoint** : `/api/v1/places`

Les lieux représentent tes sites de formation.

### Informations disponibles

* Nom du lieu
* Ville

### Filtres disponibles

| Filtre | Description                   | Exemple        |
| ------ | ----------------------------- | -------------- |
| `name` | Recherche par nom (partiel)   | `?name=centre` |
| `city` | Recherche par ville (partiel) | `?city=Paris`  |

### Tri

Tu peux trier par : `id`, `name`, `city`

***

## Clients

**Endpoint** : `/api/v1/session_customers`

Les clients représentent les entreprises ou personnes qui financent les inscriptions à tes sessions.

### Informations disponibles

* Prénom et nom du contact
* Adresse email
* Nom de l'entreprise
* Session associée

### Filtres disponibles

| Filtre         | Description              | Exemple                     |
| -------------- | ------------------------ | --------------------------- |
| `firstname`    | Recherche par prénom     | `?firstname=Jean`           |
| `lastname`     | Recherche par nom        | `?lastname=Martin`          |
| `email`        | Recherche par email      | `?email=jean@entreprise.fr` |
| `company_name` | Recherche par entreprise | `?company_name=Acme`        |
| `session.id`   | Clients d'une session    | `?session.id=15`            |

### Tri

Tu peux trier par : `id`, `firstname`, `lastname`, `created_at`

***

## Formateur·ices

**Endpoint** : `/api/v1/session_teachers`

Les formateur·ices représentent les intervenant·es assigné·es à tes sessions.

### Informations disponibles

* Prénom et nom du·de la formateur·ice
* Adresse email
* Session associée

### Filtres disponibles

| Filtre       | Description                  | Exemple                      |
| ------------ | ---------------------------- | ---------------------------- |
| `firstname`  | Recherche par prénom         | `?firstname=Sophie`          |
| `lastname`   | Recherche par nom            | `?lastname=Bernard`          |
| `email`      | Recherche par email          | `?email=sophie@formation.fr` |
| `session.id` | Formateur·ices d'une session | `?session.id=15`             |

### Tri

Tu peux trier par : `id`, `firstname`, `lastname`, `created_at`

***

## Pagination

Toutes les listes de résultats sont **paginées** :

| Paramètre      | Description                  | Valeur par défaut  |
| -------------- | ---------------------------- | ------------------ |
| `page`         | Numéro de la page            | `1`                |
| `itemsPerPage` | Nombre de résultats par page | `30` (max : `100`) |

**Exemple** : Pour afficher la 2e page avec 50 résultats :

```
/api/v1/sessions?page=2&itemsPerPage=50
```

***

## Documentation technique complète

Pour les développeur·euses, la documentation interactive Swagger est accessible à :

👉 **`https://app.tousquali.fr/api/v1/docs`**

Elle permet de :

* Voir tous les endpoints en détail
* Tester les requêtes directement depuis le navigateur
* Consulter les formats de réponse (JSON)

## Questions fréquentes

**Q : Puis-je récupérer toutes les données d'un coup ?** R : Les résultats sont paginés (30 par page par défaut, 100 maximum). Tu dois parcourir les pages pour récupérer l'ensemble des données.

**Q : Les données sont-elles en temps réel ?** R : Oui, l'API renvoie toujours les données les plus récentes de ton compte TousQuali.

**Q : Comment combiner plusieurs filtres ?** R : Tu peux combiner les filtres en les ajoutant les uns à la suite des autres dans l'URL. Par exemple : `?status=active&name=gestion` pour les formations actives contenant "gestion".
