# API Formulaires

> [!WARNING]
> Cette API est en préversion alpha et peut être modifiée ou supprimée à l'avenir.

La divulgation progressive des champs de formulaire et la validation des données de formulaire sont prises en charge par notre API d'interaction avec les formulaires (Forms Interaction API).

[L'agent de démonstration Transport](/agents/demo/transport#code) illustre comment utiliser cette fonctionnalité ;
veuillez cliquer sur l'onglet _Code_ pour voir le code YAML de cet agent, et notez son schéma [JSON Schema](https://json-schema.org) intégré dans `output.schema.properties`.

[Créez une clé API](api-key.md) pour utiliser l'[API Formulaires en préversion](/docs/api?specs=form), par exemple avec `curl` :

```bash
curl --no-progress-meter -X 'POST' 'https://api.aish.li/v1/form?agent=demo%2Ftransport' \
  -H 'X-API-Key: sk_...' \
  | jq .
```

renvoie :

```json
{
  "sessionID": "uXxvDmOLaYkGU0qIMpd359Q",
  "mapForm": {
    "nextQuestion": "Do you need a ride? Just let me know your origin, destination, day and time you're interested in!\n",
    "isFormComplete": false
  }
}
```

Vous pouvez ensuite utiliser le `sessionID` renvoyé pour soumettre la saisie de l'utilisateur et valider ou divulguer progressivement les champs restants, par exemple :

```bash
curl --no-progress-meter -X 'POST' \
  'https://api.aish.li/v1/form/uXxvDmOLaYkGU0qIMpd359Q?agent=demo%2Ftransport' \
  -H 'X-API-Key: sk_...' \
  -d 'John Doe, de Novello à Barolo' \
  | jq .
```

qui renverra :

```json
{
  "sessionID": "uXxvDmOLaYkGU0qIMpd359Q",
  "mapForm": {
    "data": {
      "origin_longitude": 7.9258,
      "origin_date_time": "2026-09-26T15:09Z",
      "destination_latitude": 44.6104,
      "origin": "Novello",
      "name": "John Doe",
      "destination": "Barolo",
      "destination_longitude": 7.9414,
      "origin_latitude": 44.5894
    },
    "isFormComplete": true
  }
}
```
