Skip to main content

Cle API

Toute requete vers l’API doit inclure une cle API valide dans le header HTTP X-API-Key.
curl -H "X-API-Key: vk_aBcDeFgHiJkL..." \
  https://api.treats.vet/api/v1/patients

Format de la cle

Les cles API Treats commencent toujours par le prefixe vk_ suivi d’une chaine aleatoire encodee en Base64 URL-safe.
vk_dGhpcyBpcyBhIHNhbXBsZSBrZXk

Obtenir une cle

Les cles sont creees par l’administrateur de la clinique depuis le panneau d’administration Treats. Lors de la creation, la cle brute est affichee une seule fois. Elle ne peut pas etre recuperee ensuite.
Stockez votre cle de maniere securisee (variable d’environnement, secret manager). Ne la commitez jamais dans votre code source.

Configuration de la cle

Chaque cle API est configuree avec :
ParametreDescriptionExemple
PermissionsEndpoints accessiblesPATIENT_READ, APPOINTMENT_CREATE
Niveau d’acces par defautVisibilite des champsSTANDARD
Scopes par ressourceSurcharge par type de donneepatient: FULL, client: BASIC
Limite de requetesRequetes par heure1000
Date d’expirationOptionnelle2026-12-31

Permissions disponibles

PermissionAcces
PATIENT_READGET /patients, GET /patients/{id}
CLIENT_READGET /clients, GET /clients/{id}
APPOINTMENT_READGET /appointments/{id}, GET /appointments/types, GET /appointments/available-slots
APPOINTMENT_CREATEPOST /appointments
CONSULTATION_READGET /consultations/{id}
INVOICE_READGET /invoices/{id}, GET /invoices/client/{clientId}
STOCK_READGET /stock, GET /stock/{stockId}, GET /stock/low
Si votre cle n’a pas la permission requise pour un endpoint, vous recevrez une erreur 403 Forbidden.

Reponses d’erreur

Cle manquante

// 401 Unauthorized
{
  "message": "Authentication required"
}

Cle invalide ou expiree

// 401 Unauthorized
{
  "message": "Invalid or expired API key"
}

Permission manquante

// 403 Forbidden
{
  "message": "Insufficient permissions"
}

Bonnes pratiques

Ne codez jamais la cle en dur dans votre application.
export TREATS_API_KEY=vk_votre_cle_ici
const apiKey = process.env.TREATS_API_KEY;
Si votre integration n’a besoin que de lire les patients, demandez uniquement PATIENT_READ. Moins de permissions = moins de risques en cas de fuite de la cle.
Creez une cle pour le developpement et une autre pour la production. Cela permet de revoquer l’une sans impacter l’autre.
Si votre cle a une date d’expiration, prevoyez un mecanisme de renouvellement aupres de l’administrateur de la clinique avant l’echeance.