Conventions de l’API
L’adresse de base est https://api.ophelix.fr/v1. L’API parle JSON, et une réponse n’enlève ni ne renomme jamais un champ dans une version : elle n’en ajoute que.
Authentification
Chaque appel porte une clé : Authorization: Bearer sk_test_…. La clé décide du mode : une clé de test ne voit que les objets de test, une clé de production que ceux de production. Voir Clés d’API.
Identifiants
Un identifiant commence par le préfixe de son type : clm_ pour une facture, prac_ pour un praticien, pat_ pour un patient. Un identifiant au mauvais préfixe répond 404 resource_missing, comme un objet inconnu.
Listes
Une liste rend object, url, has_more et data, du plus récent au plus ancien.
| Paramètre | Sens |
|---|---|
limit | Le nombre d’objets, de 1 à 100. Par défaut, 25 |
starting_after | Un identifiant : la page qui suit cet objet |
ending_before | Un identifiant : la page qui précède cet objet |
Passez le dernier id de data à starting_after tant que has_more vaut true. starting_after et ending_before ne se combinent pas : parameters_exclusive.
Objets liés
Un champ lié rend un identifiant. expand[] le remplace par l’objet :
curl -G https://api.ophelix.fr/v1/claims/clm_… \
-H "Authorization: Bearer sk_test_…" \
--data-urlencode "expand[]=patient"Dans une liste, le chemin passe par data : expand[]=data.patient. La profondeur va jusqu’à quatre niveaux. Déplier un patient laisse une trace de lecture.
Versions
Ophelix-Version: 2026-11-01 fixe la version d’une requête. Sans cet en-tête, la version de votre organisation s’applique. Une version inconnue répond api_version_invalid. Chaque événement dit sous quelle version il a été produit, dans api_version.
Débit
| Mode | Requêtes par minute et par clé |
|---|---|
| Test | 300 |
| Production | 1500 |
| Sans clé | 60, par adresse IP |
Les en-têtes RateLimit-Limit, RateLimit-Remaining et RateLimit-Reset annoncent le quota. Au-delà, l’API répond 429 rate_limit_exceeded avec Retry-After.
Montants et dates
- Un montant est un entier, en centimes, dans un champ qui finit par
_cents.nullveut dire inconnu, pas zéro. created,updatedet tout champ en_atsont des horodatages Unix, en secondes, en UTC.- Une date sans heure s’écrit
2026-11-06.
Suivre un appel
Toute réponse porte Request-Id, et toute erreur le répète dans request_id. Retrouvez l’appel dans Développeurs › Requêtes, ou par GET /v1/requests.