# 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".


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.tousquali.fr/integrations/03-donnees-disponibles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
