# Versions

> L'API est en v1. Ce qui peut changer sans prévenir (des ajouts), ce qui ne changera jamais dans la v1, et l'en-tête Rustine-Version.

La version majeure est dans l'adresse : `/v1`. Chaque réponse porte en plus l'en-tête `Rustine-Version`, la date du contrat qui a répondu (`2026-10-13` aujourd'hui). Journalise-le : si un comportement te surprend, il dit quelle version du contrat l'a produit.

## Ce que Rustine promet dans la v1

Rien de ce qui marche aujourd'hui ne casse :

- aucun champ retiré ni renommé, aucun type changé ;
- aucun nouveau paramètre obligatoire ;
- aucune route retirée ;
- le format des erreurs et des listes reste le même, et un `code` d'erreur garde son sens.

## Ce qui peut arriver sans prévenir

Des ajouts, que ton code doit savoir ignorer. La date de `Rustine-Version` avance alors :

- de nouvelles routes ;
- de nouveaux champs dans les réponses ;
- de nouveaux paramètres optionnels ;
- de nouvelles valeurs dans une liste fermée (`status`, `severity`, `family`…) : prévois un cas « autre » ;
- de nouveaux codes d'erreur : traite un code inconnu selon son `type`.

## Une v2, un jour

Un changement qui casserait ton code passera par une nouvelle version, `/v2`, annoncée dans le [Changelog](https://docs.rustine.io/changelog.md) et par e-mail aux détenteurs d'une clé. La v1 continuera de répondre **au moins 12 mois** après cette annonce, le temps que tu migres ; la date de son arrêt sera donnée dès l'annonce.

## Exemples

### curl

```bash
curl -sI https://api.rustine.io/v1/account \
  -H "Authorization: Bearer $RUSTINE_API_KEY" | grep -i rustine-version
```

### Réponse : 200 OK

```http
Rustine-Version: 2026-10-13
```
