Points de terminaison API
Référence complète de tous les points de terminaison de l'API Kantesti avec des exemples de code dans plusieurs langages de programmation.
https://app.aibloodtestinterpret.com
Changelog
Suivez les versions de l'API, les mises à jour et les informations de migration. Utilisez les points de terminaison recommandés pour les nouvelles intégrations.
Points de terminaison stables actuels
Ces points de terminaison sont recommandés pour la production et les nouvelles intégrations.
| API | Point de terminaison | Statut |
|---|---|---|
| Analyse sanguine v11 | /api/v11/01-06-2025/analyze |
Recommandé |
| Analyse sanguine (Score de santé) v11 | /api/v11/health-score/analyze |
Recommandé |
| IA Nutrition v1 | /api/v1/nutrition/diet-plan/analyze |
Stable |
| Comparaison IA de tests sanguins v1 | /api/v1/bloodtest/comparison/analyze |
Stable |
| Évaluation des Risques de Santé Familiale v1 | /api/v1/family-health/analyze |
Publié 23.03.2026 |
| ICR - Reconnaissance Intelligente de Caractères v1 | /api/icr/v1/extract |
Publié 14.02.2026 |
| ICR Kan - Extraction de Tests Sanguins v1 | /api/icr/v1/kan |
Publié 14.02.2026 |
| Analyse des tendances v1 | /api/v1/analytics/trends/analyze |
Stable |
Historique des versions
| Date | Version | Modifications |
|---|---|---|
| Mars 2026 | Family Health v1 | API d'Évaluation des Risques de Santé Familiale publiée — Analyse de risques héréditaires par IA, support de 100+ langues, analyse de l'arbre généalogique, calendrier de soins préventifs, recommandations de dépistage génétique, mode sandbox |
| Février 2026 | ICR v1 | API ICR (Reconnaissance Intelligente de Caractères) publiée — 79% plus rapide que l'OCR, sortie JSON structurée, détection du type de document, extraction de tableaux, intégration Kan pour tests sanguins |
| Décembre 2025 | Dernière | Gestion améliorée des erreurs, précision de 98,7%, support de 100 langues |
| Juin 2025 | v11 | Analyse sanguine v11, point de terminaison score de santé, support multi-fichiers |
| Avril 2025 | v9 | Modèle api_parameters_v9, extraction de paramètres améliorée |
| Mars 2025 | v8 | Support de téléchargement multi-fichiers, traitement par lots |
Points de terminaison hérités
Ces points de terminaison sont maintenus pour la compatibilité descendante mais ne sont pas recommandés pour les nouvelles intégrations.
| Version | Point de terminaison | Statut |
|---|---|---|
| v10 | /api/v10/health-score/analyze |
Hérité |
| v9 | /api/v9/14-04-2025/analyze |
Hérité |
| v8 | /api/v8/31-03-2025/analyze |
Hérité |
| v6 | /api/v6-1/21-11-2024/analyze |
Hérité |
| v3 | /api/v3/10-10-2024/analyze |
Hérité |
Les points de terminaison hérités sont maintenus pour la compatibilité descendante mais ne sont pas recommandés pour les nouvelles intégrations. Veuillez migrer vers les points de terminaison stables actuels pour de meilleures performances et un meilleur support.
Référence des langues prises en charge
L'API Kantesti prend en charge 100 langues pour la localisation des réponses. Utilisez le paramètre language avec l'un des codes ISO 639-1 répertoriés ci-dessous. Si non spécifié, les réponses sont par défaut en anglais (en).
Si aucun paramètre language n'est fourni, l'API renvoie les réponses en anglais (en).
Langues mondiales majeures
| Code | Langue | Nom natif |
|---|---|---|
en | Anglais | English |
zh | Chinois | 中文 |
es | Espagnol | Español |
ar | Arabe | العربية |
hi | Hindi | हिन्दी |
pt | Portugais | Português |
ru | Russe | Русский |
ja | Japonais | 日本語 |
fr | Français | Français |
de | Allemand | Deutsch |
ko | Coréen | 한국어 |
tr | Turc | Türkçe |
Langues européennes
| Code | Langue | Nom natif |
|---|---|---|
it | Italien | Italiano |
nl | Néerlandais | Nederlands |
pl | Polonais | Polski |
el | Grec | Ελληνικά |
sv | Suédois | Svenska |
no | Norvégien | Norsk |
da | Danois | Dansk |
fi | Finnois | Suomi |
cs | Tchèque | Čeština |
uk | Ukrainien | Українська |
ro | Roumain | Română |
hu | Hongrois | Magyar |
bg | Bulgare | Български |
hr | Croate | Hrvatski |
sk | Slovaque | Slovenčina |
sl | Slovène | Slovenščina |
sr | Serbe | Српски |
lt | Lituanien | Lietuvių |
lv | Letton | Latviešu |
et | Estonien | Eesti |
ca | Catalan | Català |
eu | Basque | Euskara |
gl | Galicien | Galego |
cy | Gallois | Cymraeg |
ga | Irlandais | Gaeilge |
is | Islandais | Íslenska |
mt | Maltais | Malti |
sq | Albanais | Shqip |
mk | Macédonien | Македонски |
bs | Bosniaque | Bosanski |
lb | Luxembourgeois | Lëtzebuergesch |
be | Biélorusse | Беларуская |
Langues du Moyen-Orient & d'Asie centrale
| Code | Langue | Nom natif |
|---|---|---|
he | Hébreu | עברית |
fa | Persan | فارسی |
az | Azerbaïdjanais | Azərbaycan |
ka | Géorgien | ქართული |
hy | Arménien | Հայերdelays |
kk | Kazakh | Қазақша |
uz | Ouzbèke | Oʻzbek |
tg | Tadjik | Тоҷикӣ |
ky | Kirghize | Кыргызча |
tk | Turkmène | Türkmen |
mn | Mongol | Монгол |
ps | Pachto | پښتو |
ku | Kurde | Kurdî |
Langues d'Asie du Sud
| Code | Langue | Nom natif |
|---|---|---|
bn | Bengali | বাংলা |
ta | Tamoul | தமிழ் |
te | Télougou | తెలుగు |
mr | Marathi | मराठी |
gu | Gujarati | ગુજરાતી |
kn | Kannada | ಕನ್ನಡ |
ml | Malayalam | മലയാളം |
pa | Pendjabi | ਪੰਜਾਬੀ |
ur | Ourdou | اردو |
ne | Népalais | नेपाली |
si | Cinghalais | සිංහල |
sd | Sindhi | سنڌي |
as | Assamais | অসমীয়া |
or | Odia | ଓଡ଼ିଆ |
Langues d'Asie du Sud-Est
| Code | Langue | Nom natif |
|---|---|---|
id | Indonésien | Bahasa Indonesia |
th | Thaï | ไทย |
vi | Vietnamien | Tiếng Việt |
ms | Malais | Bahasa Melayu |
my | Birman | မြန်မာ |
km | Khmer | ភាសាខ្មែរ |
lo | Laotien | ລາວ |
fil | Filipino | Filipino |
tl | Tagalog | Tagalog |
jv | Javanais | Basa Jawa |
su | Soundanais | Basa Sunda |
Langues africaines
| Code | Langue | Nom natif |
|---|---|---|
af | Afrikaans | Afrikaans |
sw | Swahili | Kiswahili |
am | Amharique | አማርኛ |
ha | Haoussa | Hausa |
yo | Yoruba | Yorùbá |
ig | Igbo | Igbo |
zu | Zoulou | isiZulu |
xh | Xhosa | isiXhosa |
so | Somali | Soomaali |
mg | Malgache | Malagasy |
Autres langues
| Code | Langue | Nom natif |
|---|---|---|
la | Latin | Latina |
eo | Espéranto | Esperanto |
yi | Yiddish | ייִדיש |
ht | Créole haïtien | Kreyòl Ayisyen |
mi | Maori | Te Reo Māori |
sm | Samoan | Gagana Samoa |
to | Tonguien | Lea Faka-Tonga |
haw | Hawaïen | ʻŌlelo Hawaiʻi |
API d'analyse sanguine
Analysez des images ou des PDF de tests sanguins à l'aide de l'IA pour extraire les paramètres et générer des interprétations médicales complètes.
Point de terminaison de production pour l'analyse sanguine. Consomme 1 crédit par requête.
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
username | string | Oui | Votre nom d'utilisateur API |
password | string | Oui | Votre mot de passe API |
file | file | Oui | Image de test sanguin (PNG, JPG, WEBP) ou PDF. Max 20Mo. |
language | string | Non | Code de langue de réponse (par défaut: en). Voir les langues prises en charge. |
Exemple cURL
curl -X POST "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze" \
-F "username=VOTRE_NOM_UTILISATEUR" \
-F "password=VOTRE_MOT_DE_PASSE" \
-F "language=fr" \
-F "file=@analyse_sang.pdf"
Exemple Python
import requests
def analyser_test_sanguin(chemin_fichier: str, nom_utilisateur: str, mot_de_passe: str, langue: str = "fr"):
"""
Analyse un fichier de test sanguin avec l'API Kantesti.
Args:
chemin_fichier: Chemin vers le PDF ou l'image du test sanguin
nom_utilisateur: Nom d'utilisateur API
mot_de_passe: Mot de passe API
langue: Code de langue de réponse (par défaut: fr)
Returns:
dict: Réponse API avec les résultats d'analyse
"""
url = "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze"
with open(chemin_fichier, "rb") as f:
fichiers = {"file": (chemin_fichier, f, "application/pdf")}
donnees = {
"username": nom_utilisateur,
"password": mot_de_passe,
"language": langue
}
reponse = requests.post(url, files=fichiers, data=donnees, timeout=120)
reponse.raise_for_status()
return reponse.json()
# Exemple d'utilisation
if __name__ == "__main__":
resultat = analyser_test_sanguin(
chemin_fichier="analyse_sang.pdf",
nom_utilisateur="votre_nom_utilisateur",
mot_de_passe="votre_mot_de_passe",
langue="fr"
)
print(f"Statut: {resultat['status']}")
print(f"Paramètres trouvés: {len(resultat['data']['parameters'])}")
Exemple C++ (libcurl)
#include <iostream>
#include <string>
#include <curl/curl.h>
// Fonction de rappel pour le traitement de la réponse
size_t CallbackEcriture(void* contenu, size_t taille, size_t nmemb, std::string* sortie) {
sortie->append((char*)contenu, taille * nmemb);
return taille * nmemb;
}
std::string analyserTestSanguin(const std::string& cheminFichier,
const std::string& nomUtilisateur,
const std::string& motDePasse,
const std::string& langue = "fr") {
CURL* curl = curl_easy_init();
std::string reponse;
if (curl) {
curl_mime* formulaire = curl_mime_init(curl);
curl_mimepart* champ;
// Ajouter le nom d'utilisateur
champ = curl_mime_addpart(formulaire);
curl_mime_name(champ, "username");
curl_mime_data(champ, nomUtilisateur.c_str(), CURL_ZERO_TERMINATED);
// Ajouter le mot de passe
champ = curl_mime_addpart(formulaire);
curl_mime_name(champ, "password");
curl_mime_data(champ, motDePasse.c_str(), CURL_ZERO_TERMINATED);
// Ajouter la langue
champ = curl_mime_addpart(formulaire);
curl_mime_name(champ, "language");
curl_mime_data(champ, langue.c_str(), CURL_ZERO_TERMINATED);
// Ajouter le fichier
champ = curl_mime_addpart(formulaire);
curl_mime_name(champ, "file");
curl_mime_filedata(champ, cheminFichier.c_str());
curl_easy_setopt(curl, CURLOPT_URL,
"https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze");
curl_easy_setopt(curl, CURLOPT_MIMEPOST, formulaire);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CallbackEcriture);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &reponse);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120L);
CURLcode res = curl_easy_perform(curl);
curl_mime_free(formulaire);
curl_easy_cleanup(curl);
}
return reponse;
}
int main() {
std::string resultat = analyserTestSanguin("analyse_sang.pdf", "utilisateur", "motdepasse");
std::cout << resultat << std::endl;
return 0;
}
Configuration Postman
{
"info": {
"name": "API Kantesti Analyse de Sang",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Analyser test sanguin",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{"key": "username", "value": "{{api_nom_utilisateur}}", "type": "text"},
{"key": "password", "value": "{{api_mot_de_passe}}", "type": "text"},
{"key": "language", "value": "fr", "type": "text"},
{"key": "file", "type": "file", "src": "/chemin/vers/analyse_sang.pdf"}
]
},
"url": {
"raw": "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze",
"protocol": "https",
"host": ["app", "aibloodtestinterpret", "com"],
"path": ["api", "v11", "01-06-2025", "analyze"]
}
}
}
]
}
Exemple de réponse
{
"status": "success",
"data": {
"metadata": {
"patient_name": "Jan Novák",
"lab_name": "Centre Médical BioLAB",
"lab_city": "Paris",
"lab_country": "France",
"lab_date": "2025-05-11",
"patient_age": "45",
"patient_sex": "Masculin"
},
"parameters": [
{
"short_name": "WBC",
"long_name": "Globules blancs",
"category": "Hémogramme complet",
"result": 7.2,
"unit": "10^9/L",
"evaluation": "normal",
"range_min": 2.0,
"range_max": 12.0,
"range_normal_min": 4.0,
"range_normal_max": 10.0,
"short_description": "Mesure le nombre total de globules blancs dans le sang.",
"long_description": "Les globules blancs (leucocytes) sont essentiels pour la fonction immunitaire..."
},
{
"short_name": "HGB",
"long_name": "Hémoglobine",
"category": "Hémogramme complet",
"result": 14.5,
"unit": "g/dL",
"evaluation": "normal",
"range_min": 10.0,
"range_max": 18.0,
"range_normal_min": 13.5,
"range_normal_max": 17.5,
"short_description": "Protéine des globules rouges qui transporte l'oxygène.",
"long_description": "L'hémoglobine est la protéine contenant du fer responsable du transport de l'oxygène..."
}
],
"interpretation": [
{
"title": "Évaluation globale de la santé",
"shortcode": "overall_health_assessment",
"subsections": [
{
"subtitle": "Aperçu complet",
"shortcode": "overall_health_assessment_overview",
"items": [
{"item": "Le patient présente une fonction organique préservée avec des paramètres hématologiques normaux."},
{"item": "Aucune anomalie significative détectée dans l'hémogramme complet."}
]
}
]
}
]
},
"api_version": "v11",
"timestamp": "2025-12-22T10:30:00Z"
}
Référence des champs de réponse
Niveau racine
| Champ | Type | Description |
|---|---|---|
status | string | "success" ou "error" |
data | object | Contient tous les résultats d'analyse |
timestamp | string | Horodatage ISO 8601 de la réponse |
api_version | string | Version de l'API utilisée |
Objet data.metadata
| Champ | Type | Description |
|---|---|---|
lab_date | string | Date de prélèvement sanguin (AAAA-MM-JJ) |
results_date | string | Date d'émission des résultats (AAAA-MM-JJ) |
lab_name | string | Nom du laboratoire |
lab_city | string | Ville du laboratoire |
lab_country | string | Pays du laboratoire |
patient_name | string | Nom complet du patient (métadonnées uniquement, non envoyé à l'interprétation) |
patient_age | string | Âge du patient |
patient_sex | string | "male", "female" ou "other" |
Élément du tableau data.parameters
| Champ | Type | Description |
|---|---|---|
category | string | Catégorie du paramètre (ex: "Hémogramme", "Bilan lipidique") |
long_name | string | Nom complet du paramètre |
short_name | string | Nom abrégé du paramètre |
result | string | Valeur mesurée |
unit | string | Unité de mesure |
range_min | string | Plage de référence minimale |
range_max | string | Plage de référence maximale |
evaluation | string | Statut du résultat. Voir les valeurs d'évaluation |
Élément du tableau data.interpretation
| Champ | Type | Description |
|---|---|---|
title | string | Titre de la section (ex: "Évaluation globale de la santé") |
content | string | Interprétation médicale générée par l'IA |
Exemple de réponse complète
{
"status": "success",
"data": {
"metadata": {
"patient_name": "Anna Müller",
"lab_name": "MedLab Diagnostics International",
"lab_city": "Paris",
"lab_country": "France",
"lab_date": "2025-12-15",
"results_date": "2025-12-16",
"patient_age": "38",
"patient_sex": "female"
},
"parameters": [
{
"short_name": "WBC",
"long_name": "Numération des globules blancs",
"category": "Hémogramme",
"result": "6.8",
"unit": "10^9/L",
"evaluation": "normal",
"range_min": "4.0",
"range_max": "11.0",
"range_normal_min": "4.5",
"range_normal_max": "10.0",
"short_description": "Mesure le nombre total de globules blancs.",
"long_description": "Les globules blancs (leucocytes) sont des composants essentiels du système immunitaire..."
},
{
"short_name": "RBC",
"long_name": "Numération des globules rouges",
"category": "Hémogramme",
"result": "4.52",
"unit": "10^12/L",
"evaluation": "normal",
"range_min": "3.8",
"range_max": "5.8",
"range_normal_min": "4.0",
"range_normal_max": "5.5",
"short_description": "Mesure le nombre total de globules rouges.",
"long_description": "Les globules rouges (érythrocytes) transportent l'oxygène des poumons vers les tissus..."
},
{
"short_name": "HGB",
"long_name": "Hémoglobine",
"category": "Hémogramme",
"result": "13.2",
"unit": "g/dL",
"evaluation": "normal",
"range_min": "11.5",
"range_max": "16.0",
"range_normal_min": "12.0",
"range_normal_max": "15.5",
"short_description": "Protéine des globules rouges qui transporte l'oxygène.",
"long_description": "L'hémoglobine est la protéine contenant du fer dans les globules rouges responsable du transport de l'oxygène..."
},
{
"short_name": "HCT",
"long_name": "Hématocrite",
"category": "Hémogramme",
"result": "39.8",
"unit": "%",
"evaluation": "normal",
"range_min": "35.0",
"range_max": "47.0",
"range_normal_min": "36.0",
"range_normal_max": "44.0",
"short_description": "Pourcentage du volume sanguin occupé par les globules rouges.",
"long_description": "L'hématocrite mesure la proportion de sang constituée de globules rouges..."
},
{
"short_name": "PLT",
"long_name": "Numération plaquettaire",
"category": "Hémogramme",
"result": "245",
"unit": "10^9/L",
"evaluation": "normal",
"range_min": "150",
"range_max": "400",
"range_normal_min": "150",
"range_normal_max": "350",
"short_description": "Mesure le nombre de plaquettes dans le sang.",
"long_description": "Les plaquettes (thrombocytes) sont essentielles pour la coagulation sanguine et la cicatrisation..."
},
{
"short_name": "GLU",
"long_name": "Glycémie à jeun",
"category": "Bilan métabolique",
"result": "102",
"unit": "mg/dL",
"evaluation": "borderline_high",
"range_min": "70",
"range_max": "140",
"range_normal_min": "70",
"range_normal_max": "99",
"short_description": "Mesure le taux de sucre dans le sang à jeun.",
"long_description": "La glycémie à jeun est un indicateur clé de la façon dont le corps métabolise le sucre..."
},
{
"short_name": "TC",
"long_name": "Cholestérol total",
"category": "Bilan lipidique",
"result": "218",
"unit": "mg/dL",
"evaluation": "borderline_high",
"range_min": "0",
"range_max": "300",
"range_normal_min": "0",
"range_normal_max": "200",
"short_description": "Mesure le cholestérol total dans le sang.",
"long_description": "Le cholestérol total est la somme des cholestérols HDL, LDL et VLDL..."
},
{
"short_name": "HDL",
"long_name": "Cholestérol HDL",
"category": "Bilan lipidique",
"result": "58",
"unit": "mg/dL",
"evaluation": "normal",
"range_min": "35",
"range_max": "100",
"range_normal_min": "50",
"range_normal_max": "90",
"short_description": "Mesure le niveau de 'bon' cholestérol.",
"long_description": "Le cholestérol HDL (lipoprotéine de haute densité) aide à éliminer les autres formes de cholestérol..."
},
{
"short_name": "LDL",
"long_name": "Cholestérol LDL",
"category": "Bilan lipidique",
"result": "142",
"unit": "mg/dL",
"evaluation": "high",
"range_min": "0",
"range_max": "200",
"range_normal_min": "0",
"range_normal_max": "100",
"short_description": "Mesure le niveau de 'mauvais' cholestérol.",
"long_description": "Le cholestérol LDL (lipoprotéine de basse densité) peut s'accumuler dans les parois artérielles..."
},
{
"short_name": "TRIG",
"long_name": "Triglycérides",
"category": "Bilan lipidique",
"result": "156",
"unit": "mg/dL",
"evaluation": "borderline_high",
"range_min": "0",
"range_max": "500",
"range_normal_min": "0",
"range_normal_max": "150",
"short_description": "Mesure les graisses dans le sang.",
"long_description": "Les triglycérides sont un type de graisse dans le sang qui stocke l'excès d'énergie..."
}
],
"interpretation": [
{
"title": "Évaluation globale de la santé",
"shortcode": "overall_health_assessment",
"subsections": [
{
"subtitle": "Aperçu complet",
"shortcode": "overall_health_assessment_overview",
"items": [
{"item": "La patiente présente des paramètres hématologiques généralement sains avec toutes les valeurs de l'hémogramme dans les normes."},
{"item": "Les résultats de l'hémogramme complet indiquent une capacité adéquate de transport d'oxygène et une fonction immunitaire normale."},
{"item": "Le bilan lipidique montre des domaines nécessitant une attention, notamment les niveaux de cholestérol LDL."}
]
}
]
},
{
"title": "Analyse métabolique",
"shortcode": "metabolic_analysis",
"subsections": [
{
"subtitle": "Évaluation de la glycémie",
"shortcode": "metabolic_analysis_glucose",
"items": [
{"item": "La glycémie à jeun à 102 mg/dL est légèrement élevée, indiquant une zone pré-diabétique."},
{"item": "Des modifications du mode de vie sont recommandées, notamment l'exercice régulier et la réduction de l'apport en glucides simples."},
{"item": "Un test HbA1c de suivi est recommandé dans 3 mois pour évaluer le contrôle glycémique à long terme."}
]
}
]
},
{
"title": "Évaluation du risque cardiovasculaire",
"shortcode": "cardiovascular_risk",
"subsections": [
{
"subtitle": "Analyse du profil lipidique",
"shortcode": "cardiovascular_risk_lipids",
"items": [
{"item": "Le cholestérol LDL à 142 mg/dL dépasse les niveaux optimaux et justifie une intervention."},
{"item": "Le cholestérol HDL à 58 mg/dL offre une protection cardiovasculaire modérée."},
{"item": "Les triglycérides légèrement élevés; envisager des modifications alimentaires pour réduire l'apport en graisses saturées."},
{"item": "Le rapport cholestérol total/HDL de 3,76 indique un risque cardiovasculaire modéré."}
]
}
]
},
{
"title": "Recommandations",
"shortcode": "recommendations",
"subsections": [
{
"subtitle": "Modifications du mode de vie",
"shortcode": "recommendations_lifestyle",
"items": [
{"item": "Augmenter l'activité physique aérobique à au moins 150 minutes par semaine."},
{"item": "Adopter un régime de type méditerranéen riche en légumes, fruits et graisses saines."},
{"item": "Limiter les aliments transformés, les graisses saturées et les sucres ajoutés."},
{"item": "Envisager une consultation avec un nutritionniste pour des conseils diététiques personnalisés."}
]
},
{
"subtitle": "Tests de suivi",
"shortcode": "recommendations_followup",
"items": [
{"item": "Répéter le bilan lipidique dans 3 mois après la mise en œuvre des changements de mode de vie."},
{"item": "Test HbA1c recommandé pour évaluer les niveaux moyens de glucose sanguin."},
{"item": "Bilan métabolique complet annuel pour un suivi continu."}
]
}
]
}
]
},
"api_version": "v11",
"timestamp": "2025-12-16T14:32:18Z"
}
Le champ evaluation utilise des valeurs standardisées. Voir les valeurs d'évaluation.
Points de terminaison Sandbox
Les points de terminaison Sandbox renvoient des données de test réalistes sans consommer de quota API. Utilisez-les pour le développement et les tests d'intégration.
- Aucune consommation de quota
- Renvoie des données de test réalistes
- Même format de requête que la production
- Testez votre intégration avant la mise en production
- Disponible pour toutes les versions de l'API
| API | Point de terminaison Sandbox |
|---|---|
| Test sanguin v11 | /api/v11/01-06-2025/sandbox |
| Test sanguin v11-health | /api/v11/health-score/sandbox |
| IA Nutrition | /api/v1/nutrition/diet-plan/sandbox |
| Comparaison de tests | /api/v1/bloodtest/comparison/sandbox |
| Analyse des tendances | /api/v1/analytics/trends/sandbox |
| ICR Extract | /api/icr/v1/sandbox |
| ICR Kan (Test sanguin) | /api/icr/v1/kan/sandbox |
Choisissez la bonne API pour votre cas d'utilisation :
| Fonctionnalité | Comparaison IA des Tests Sanguins | Analyse des Tendances |
|---|---|---|
| Focus Principal | Comparaison narrative IA | Analyse statistique des tendances |
| Traitement IA | Narrative IA complète | IA améliorée + statistiques |
| Type de Sortie | Résumés narratifs | Graphiques, statistiques, modèles |
| Idéal Pour | Ce qui a changé entre les tests | Suivi des paramètres à long terme |
| Min Tests | 2 | 2 |
| Max Tests | 20 | 50 |
API d'analyse des tendances
Analysez les tendances des paramètres de santé au fil du temps à l'aide de la reconnaissance de motifs par IA. Identifiez les améliorations, les détériorations et les informations exploitables à partir des données historiques des tests sanguins.
Analyse les tendances des paramètres de tests sanguins sur plusieurs dates pour identifier des motifs et fournir des informations de santé.
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
username | string | Oui | Votre nom d'utilisateur API |
password | string | Oui | Votre mot de passe API |
language | string | Non | Langue de réponse (par défaut: en). Voir les langues prises en charge. |
blood_tests | array | Oui | Tableau d'objets de tests sanguins (min: 2, max: 50) |
analysis_type | string | Non | Type: comprehensive, quick ou focused |
analysis_options | object | Non | Options de configuration d'analyse |
Objet analysis_options
| Champ | Type | Défaut | Description |
|---|---|---|---|
include_predictions | boolean | true | Inclure les prédictions de tendances IA |
include_statistics | boolean | true | Inclure l'analyse statistique (moyenne, min, max, écart-type) |
include_charts | boolean | true | Inclure les données de configuration des graphiques pour la visualisation |
Structure du tableau blood_tests
- Minimum : 2 tests sanguins requis
- Maximum : 50 tests sanguins par requête
- Chaque test doit avoir
lab_dateOUresults_date - Utilisez des noms de paramètres cohérents pour un suivi précis des tendances
| Champ | Type | Requis | Description |
|---|---|---|---|
lab_date | string | Oui* | Date du test au format AAAA-MM-JJ |
results_date | string | Oui* | Alternative à lab_date (AAAA-MM-JJ) |
parameters | array | Oui | Tableau des paramètres de test sanguin |
metadata | object | Non | Métadonnées supplémentaires (lab_name, notes, etc.) |
*Soit lab_date soit results_date est requis pour chaque test sanguin.
Structure du tableau blood_tests[].parameters
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom du paramètre (utilisez des noms cohérents entre les tests !) |
short_name | string | Non | Code court du paramètre (ex: HGB, GLU, CHOL) |
value | number | Oui | Valeur mesurée (peut aussi utiliser result) |
unit | string | Oui | Unité de mesure (ex: g/dL, mg/dL, %) |
range_min | number | Non | Valeur minimale de la plage de référence |
range_max | number | Non | Valeur maximale de la plage de référence |
category | string | Non | Catégorie du paramètre (ex: "Bilan lipidique", "Hémogramme complet") |
evaluation | string | Non | Statut pré-évalué. Voir les valeurs d'évaluation |
Exemple cURL
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "VOTRE_NOM_UTILISATEUR",
"password": "VOTRE_MOT_DE_PASSE",
"language": "fr",
"analysis_type": "comprehensive",
"analysis_options": {
"include_predictions": true,
"include_statistics": true,
"include_charts": true
},
"blood_tests": [
{
"lab_date": "2024-01-15",
"parameters": [
{"name": "Glucose à jeun", "short_name": "GLU", "value": 98, "unit": "mg/dL"},
{"name": "Hémoglobine A1c", "short_name": "HBA1C", "value": 5.6, "unit": "%"},
{"name": "Cholestérol total", "short_name": "CHOL", "value": 185, "unit": "mg/dL"},
{"name": "Cholestérol LDL", "short_name": "LDL", "value": 110, "unit": "mg/dL"},
{"name": "Cholestérol HDL", "short_name": "HDL", "value": 52, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-05-20",
"parameters": [
{"name": "Glucose à jeun", "short_name": "GLU", "value": 92, "unit": "mg/dL"},
{"name": "Hémoglobine A1c", "short_name": "HBA1C", "value": 5.4, "unit": "%"},
{"name": "Cholestérol total", "short_name": "CHOL", "value": 178, "unit": "mg/dL"},
{"name": "Cholestérol LDL", "short_name": "LDL", "value": 102, "unit": "mg/dL"},
{"name": "Cholestérol HDL", "short_name": "HDL", "value": 55, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-09-10",
"parameters": [
{"name": "Glucose à jeun", "short_name": "GLU", "value": 88, "unit": "mg/dL"},
{"name": "Hémoglobine A1c", "short_name": "HBA1C", "value": 5.3, "unit": "%"},
{"name": "Cholestérol total", "short_name": "CHOL", "value": 168, "unit": "mg/dL"},
{"name": "Cholestérol LDL", "short_name": "LDL", "value": 92, "unit": "mg/dL"},
{"name": "Cholestérol HDL", "short_name": "HDL", "value": 58, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-12-18",
"parameters": [
{"name": "Glucose à jeun", "short_name": "GLU", "value": 85, "unit": "mg/dL"},
{"name": "Hémoglobine A1c", "short_name": "HBA1C", "value": 5.2, "unit": "%"},
{"name": "Cholestérol total", "short_name": "CHOL", "value": 162, "unit": "mg/dL"},
{"name": "Cholestérol LDL", "short_name": "LDL", "value": 85, "unit": "mg/dL"},
{"name": "Cholestérol HDL", "short_name": "HDL", "value": 62, "unit": "mg/dL"}
]
}
]
}'
Exemple Python
import requests
from typing import List, Dict, Optional
def analyser_tendances(
nom_utilisateur: str,
mot_de_passe: str,
tests_sanguins: List[Dict],
langue: str = "fr",
type_analyse: str = "comprehensive"
) -> Dict:
"""
Analyse les tendances des tests sanguins au fil du temps.
Args:
nom_utilisateur: Nom d'utilisateur API
mot_de_passe: Mot de passe API
tests_sanguins: Liste d'objets de tests avec lab_date et parameters
langue: Code de langue de réponse
type_analyse: comprehensive, quick ou focused
Returns:
dict: Résultats de l'analyse des tendances
"""
url = "https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze"
payload = {
"username": nom_utilisateur,
"password": mot_de_passe,
"language": langue,
"analysis_type": type_analyse,
"blood_tests": tests_sanguins
}
reponse = requests.post(url, json=payload, timeout=120)
reponse.raise_for_status()
return reponse.json()
# Exemple d'utilisation
if __name__ == "__main__":
tests_sanguins = [
{
"lab_date": "2025-01-15",
"parameters": [
{"short_name": "HGB", "result": 12.5, "unit": "g/dL"},
{"short_name": "CHOL", "result": 220, "unit": "mg/dL"}
]
},
{
"lab_date": "2025-06-15",
"parameters": [
{"short_name": "HGB", "result": 13.2, "unit": "g/dL"},
{"short_name": "CHOL", "result": 195, "unit": "mg/dL"}
]
},
{
"lab_date": "2025-12-01",
"parameters": [
{"short_name": "HGB", "result": 14.1, "unit": "g/dL"},
{"short_name": "CHOL", "result": 180, "unit": "mg/dL"}
]
}
]
resultat = analyser_tendances(
nom_utilisateur="votre_nom_utilisateur",
mot_de_passe="votre_mot_de_passe",
tests_sanguins=tests_sanguins
)
print(f"Tendance globale: {resultat['data']['overall_trend']}")
for tendance in resultat['data']['parameter_trends']:
print(f"{tendance['parameter']}: {tendance['direction']} ({tendance['change_percent']}%)")
Référence des champs de réponse
| Champ | Type | Description |
|---|---|---|
analysis_id | string | Identifiant unique pour cette analyse (format: TRD-XXXXXXXX) |
analysis_period | object | Détails de la période: start_date, end_date, span_months, total_tests |
categories | array | Liste des catégories de paramètres trouvées (ex: "Bilan lipidique", "Hémogramme") |
chart_config | object | Données prêtes pour graphiques: dates, raw_dates, simple_dates pour visualisation |
overall_health_trend | object | Résumé, tableau health_risks et recommandations |
parameter_trends | array | Analyse détaillée par paramètre avec statistiques |
risk_factors | array | Facteurs de risque de santé identifiés |
Structure de l'objet parameter_trends
| Champ | Type | Description |
|---|---|---|
parameter | string | Nom standardisé du paramètre |
short_name | string | Nom abrégé du paramètre |
category | string | Catégorie du paramètre (ex: "Bilan lipidique") |
unit | string | Unité de mesure |
trend_data | array | Tableau d'objets {date, value} pour les graphiques |
statistical_analysis | object | average, min, max, standard_deviation, trend_direction, trend_strength |
analysis | object | Interprétation IA: description, significant_variations, trend |
interpretation | string | Description lisible du paramètre |
Exemple de réponse
{
"status": "success",
"data": {
"overall_trend": "en amélioration",
"analysis_period": {
"start_date": "2025-01-15",
"end_date": "2025-12-01",
"duration_days": 320,
"total_tests": 3
},
"parameter_trends": [
{
"parameter": "HGB",
"long_name": "Hémoglobine",
"direction": "en hausse",
"change_percent": 12.8,
"start_value": 12.5,
"end_value": 14.1,
"trend_quality": "positif",
"interpretation": "Les niveaux d'hémoglobine montrent une amélioration constante sur la période d'analyse."
},
{
"parameter": "CHOL",
"long_name": "Cholestérol total",
"direction": "en baisse",
"change_percent": -18.2,
"start_value": 220,
"end_value": 180,
"trend_quality": "positif",
"interpretation": "Les niveaux de cholestérol ont diminué de manière significative, indiquant une amélioration de la santé cardiovasculaire."
}
],
"insights": [
{
"type": "improvement",
"title": "Amélioration de la santé cardiovasculaire",
"description": "Vos tendances de cholestérol et de glucose indiquent des améliorations significatives de la santé cardiovasculaire.",
"confidence": 0.92
}
]
},
"api_version": "v1",
"timestamp": "2025-12-22T10:30:00Z"
}
IA Nutrition avec Suppléments
Générez des plans nutritionnels personnalisés, des recommandations diététiques et des suggestions de suppléments basés sur l'analyse des tests sanguins à l'aide d'algorithmes d'IA avancés.
Génère des recommandations complètes de nutrition et de suppléments basées sur les paramètres de tests sanguins et le profil du patient.
Exemple Python
import requests
from typing import Dict, List, Optional
def obtenir_plan_nutrition(
nom_utilisateur: str,
mot_de_passe: str,
patient: Dict,
test_sanguin: Dict,
objectifs_sante: Optional[List[str]] = None,
restrictions_alimentaires: Optional[List[str]] = None,
langue: str = "fr"
) -> Dict:
"""
Obtient des recommandations personnalisées de nutrition et suppléments.
Args:
nom_utilisateur: Nom d'utilisateur API
mot_de_passe: Mot de passe API
patient: Démographie et informations de santé du patient
test_sanguin: Paramètres du test sanguin
objectifs_sante: Objectifs de santé optionnels
restrictions_alimentaires: Restrictions alimentaires optionnelles
langue: Langue de réponse
Returns:
dict: Plan nutritionnel avec suppléments
"""
url = "https://app.aibloodtestinterpret.com/api/v1/nutrition/diet-plan/analyze"
payload = {
"username": nom_utilisateur,
"password": mot_de_passe,
"language": langue,
"patient": patient,
"blood_test": test_sanguin
}
if objectifs_sante:
payload["health_goals"] = objectifs_sante
if restrictions_alimentaires:
payload["dietary_restrictions"] = restrictions_alimentaires
reponse = requests.post(url, json=payload, timeout=120)
reponse.raise_for_status()
return reponse.json()
# Exemple d'utilisation
if __name__ == "__main__":
patient = {
"age": 45,
"gender": "male",
"weight": 82,
"height": 178,
"activity_level": "moderate",
"medical_conditions": ["hypertension"],
"allergies": ["shellfish"]
}
test_sanguin = {
"lab_date": "2025-12-01",
"parameters": [
{"short_name": "VITD", "result": 18, "unit": "ng/mL"},
{"short_name": "CHOL", "result": 210, "unit": "mg/dL"}
]
}
resultat = obtenir_plan_nutrition(
nom_utilisateur="votre_nom_utilisateur",
mot_de_passe="votre_mot_de_passe",
patient=patient,
test_sanguin=test_sanguin,
objectifs_sante=["lower_cholesterol", "increase_energy"]
)
# Afficher les recommandations de suppléments
for supp in resultat['data']['supplements']:
print(f"{supp['name']}: {supp['dosage']} - {supp['reason']}")
Schéma de l'Objet Patient
Description détaillée de tous les champs disponibles pour l'objet patient :
| Champ | Type | Requis | Défaut | Description |
|---|---|---|---|---|
age |
integer | Oui | - | Âge du patient en années (18-120) |
gender |
string | Oui | - | Genre du patient. Voir les valeurs |
weight |
number | Non | null | Poids en kg (pour les calculs caloriques) |
height |
number | Non | null | Taille en cm (pour les calculs d'IMC) |
conditions |
array | Non | [] | Conditions médicales. Voir les valeurs |
allergies |
array | Non | [] | Allergies alimentaires. Voir les valeurs |
dietary_preferences |
array | Non | [] | Préférences alimentaires. Voir les valeurs |
activity_level |
string | Non | "moderate" | Niveau d'activité physique. Voir les valeurs |
dietary_restrictions |
array | Non | [] | Restrictions alimentaires (ex: sans gluten, sans lactose) |
liked_foods |
array | Non | [] | Aliments préférés pour la personnalisation du plan |
disliked_foods |
array | Non | [] | Aliments à éviter dans les recommandations |
meal_frequency |
integer | Non | 3 | Nombre de repas par jour (1-6) |
budget |
string | Non | "moderate" | Niveau de budget : "low", "moderate", "high" |
medications |
array | Non | [] | Médicaments actuels (pour les interactions) |
Exemple de réponse
{
"status": "success",
"data": {
"nutrition_plan": {
"daily_calories": 2100,
"macros": {
"protein": {"grams": 105, "percentage": 20},
"carbohydrates": {"grams": 236, "percentage": 45},
"fats": {"grams": 82, "percentage": 35}
},
"meal_plan": {
"breakfast": {
"description": "Flocons d'avoine avec baies et noix",
"calories": 420,
"nutrients": ["fibres", "oméga-3", "antioxydants"]
},
"lunch": {
"description": "Salade de saumon grillé avec vinaigrette à l'huile d'olive",
"calories": 550,
"nutrients": ["oméga-3", "protéines", "vitamine D"]
},
"dinner": {
"description": "Poulet maigre avec quinoa et légumes vapeur",
"calories": 580,
"nutrients": ["protéines", "fer", "fibres"]
}
}
},
"supplements": [
{
"name": "Vitamine D3",
"dosage": "2000 UI par jour",
"reason": "Niveaux sanguins à 18 ng/mL indiquent une carence (optimal: 30-50 ng/mL)",
"priority": "élevée",
"timing": "Avec le petit-déjeuner (repas contenant des graisses)",
"duration": "3-6 mois, puis retester"
},
{
"name": "Huile de poisson Oméga-3",
"dosage": "1000mg EPA+DHA par jour",
"reason": "Soutient l'optimisation du cholestérol et la santé cardiovasculaire",
"priority": "moyenne",
"timing": "Avec les repas"
}
],
"dietary_recommendations": [
{
"category": "augmenter",
"foods": ["poisson gras", "légumes verts", "noix", "huile d'olive"],
"reason": "Soutient les niveaux de vitamine D et la santé cardiovasculaire"
},
{
"category": "réduire",
"foods": ["aliments transformés", "viande rouge", "graisses saturées"],
"reason": "Aide à réduire le cholestérol LDL"
}
]
},
"api_version": "v1",
"timestamp": "2025-12-22T10:30:00Z"
}
Référence des champs de réponse
Objet nutrition_plan.educational_insights
| Champ | Type | Description |
|---|---|---|
blood_marker_education |
array | Contenu éducatif sur les marqueurs sanguins analysés |
nutrition_principles |
array | Principes généraux de nutrition applicables au patient |
Élément du tableau blood_marker_education
| Champ | Type | Description |
|---|---|---|
marker |
string | Nom du marqueur sanguin (ex: "Vitamine D", "Cholestérol") |
explanation |
string | Explication éducative sur l'importance du marqueur |
normal_range |
string | Plage de valeurs normales pour le marqueur |
Élément du tableau food_recommendations.power_foods
| Champ | Type | Description |
|---|---|---|
food |
string | Nom de l'aliment recommandé |
nutrients |
array | Liste des nutriments clés fournis par cet aliment |
serving |
string | Taille de portion recommandée |
why |
string | Explication de pourquoi cet aliment est bénéfique |
Élément du tableau supplement_recommendations
| Champ | Type | Description |
|---|---|---|
supplement |
string | Nom du supplément |
dosage |
string | Dosage quotidien recommandé |
timing |
string | Meilleur moment pour la prise (ex: "Avec le petit-déjeuner") |
duration |
string | Durée recommandée de la supplémentation |
reason |
string | Justification basée sur les résultats sanguins |
Exemple cURL complet
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/nutrition/diet-plan/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "votre_nom_utilisateur",
"password": "votre_mot_de_passe",
"language": "fr",
"patient": {
"age": 45,
"gender": "male",
"weight": 82,
"height": 178,
"conditions": ["hypertension"],
"allergies": ["shellfish"],
"dietary_preferences": ["mediterranean"],
"activity_level": "moderate",
"liked_foods": ["fish", "vegetables", "olive oil"],
"disliked_foods": ["liver"],
"meal_frequency": 3,
"budget": "moderate"
},
"blood_test": {
"lab_date": "2025-12-01",
"parameters": [
{"short_name": "VITD", "result": 18, "unit": "ng/mL"},
{"short_name": "CHOL", "result": 210, "unit": "mg/dL"},
{"short_name": "LDL", "result": 140, "unit": "mg/dL"},
{"short_name": "HDL", "result": 45, "unit": "mg/dL"},
{"short_name": "FE", "result": 65, "unit": "µg/dL"}
]
},
"health_goals": ["lower_cholesterol", "increase_energy", "heart_health"]
}'
Réponse complète
{
"status": "success",
"data": {
"nutrition_plan": {
"daily_calories": 2100,
"macros": {
"protein": {"grams": 105, "percentage": 20},
"carbohydrates": {"grams": 236, "percentage": 45},
"fats": {"grams": 82, "percentage": 35}
},
"educational_insights": {
"blood_marker_education": [
{
"marker": "Vitamine D",
"explanation": "La vitamine D est essentielle pour la santé osseuse, la fonction immunitaire et la régulation de l'humeur. Votre niveau de 18 ng/mL indique une carence qui peut affecter l'absorption du calcium et la santé générale.",
"normal_range": "30-50 ng/mL"
},
{
"marker": "Cholestérol LDL",
"explanation": "Le cholestérol LDL, souvent appelé 'mauvais cholestérol', peut s'accumuler dans les parois artérielles. Votre niveau de 140 mg/dL est élevé et peut augmenter le risque cardiovasculaire.",
"normal_range": "< 100 mg/dL"
}
],
"nutrition_principles": [
"Priorisez les acides gras oméga-3 pour la santé cardiaque",
"Augmentez les fibres solubles pour réduire le cholestérol LDL",
"Incluez des aliments riches en vitamine D et des sources de soleil"
]
}
},
"food_recommendations": {
"power_foods": [
{
"food": "Saumon sauvage",
"nutrients": ["Oméga-3", "Vitamine D", "Protéines"],
"serving": "150g, 3 fois par semaine",
"why": "Source excellente d'oméga-3 et de vitamine D naturelle pour la santé cardiaque et osseuse"
},
{
"food": "Avoine complète",
"nutrients": ["Bêta-glucane", "Fibres", "Magnésium"],
"serving": "50g par jour au petit-déjeuner",
"why": "Les fibres solubles de l'avoine aident à réduire l'absorption du cholestérol LDL"
},
{
"food": "Huile d'olive extra vierge",
"nutrients": ["Graisses monoinsaturées", "Polyphénols", "Vitamine E"],
"serving": "2-3 cuillères à soupe par jour",
"why": "Les graisses saines méditerranéennes améliorent le profil lipidique et protègent le cœur"
},
{
"food": "Épinards",
"nutrients": ["Fer", "Folate", "Vitamine K"],
"serving": "100g par jour, crus ou cuits",
"why": "Riche en fer et antioxydants pour l'énergie et la santé cardiovasculaire"
}
]
},
"supplement_recommendations": [
{
"supplement": "Vitamine D3",
"dosage": "2000-4000 UI par jour",
"timing": "Avec le petit-déjeuner (repas contenant des graisses)",
"duration": "3-6 mois, puis retester les niveaux sanguins",
"reason": "Votre niveau de 18 ng/mL est en dessous de l'optimal de 30-50 ng/mL"
},
{
"supplement": "Oméga-3 (EPA/DHA)",
"dosage": "1000-2000mg EPA+DHA par jour",
"timing": "Avec les repas principaux",
"duration": "En continu pour la santé cardiaque",
"reason": "Aide à réduire les triglycérides et améliore le ratio HDL/LDL"
},
{
"supplement": "Coenzyme Q10",
"dosage": "100mg par jour",
"timing": "Avec le repas du matin",
"duration": "3 mois minimum",
"reason": "Soutient la santé cardiaque, particulièrement important avec l'hypertension"
}
]
},
"api_version": "v1",
"timestamp": "2025-12-22T10:30:00Z"
}
Pour une liste complète de toutes les valeurs de réponse possibles, consultez la section Mots-clés de sortie.
API de comparaison de tests sanguins
Comparez plusieurs tests sanguins pour identifier les changements, les améliorations et les domaines nécessitant une attention avec une analyse propulsée par l'IA.
Analyse 2 à 20 tests sanguins et fournit une comparaison détaillée avec des informations générées par l'IA.
- Minimum 2 tests sanguins requis
- Maximum 20 tests sanguins par requête
- Chaque test doit inclure
lab_date - Au moins un paramètre commun entre les tests
Paramètres de requête
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
username | string | Oui | - | Votre nom d'utilisateur API |
password | string | Oui | - | Votre mot de passe API |
language | string | Non | en | Langue de réponse. Voir les langues prises en charge |
blood_tests | array | Oui | - | Tableau d'objets de tests sanguins (2-20 tests) |
Structure du tableau blood_tests
| Champ | Type | Requis | Description |
|---|---|---|---|
lab_date | string | Oui* | Date du test au format AAAA-MM-JJ |
results_date | string | Oui* | Alternative à lab_date (AAAA-MM-JJ) |
parameters | array | Oui | Tableau des paramètres de test sanguin |
metadata | object | Non | Métadonnées supplémentaires (lab_name, notes, etc.) |
*Soit lab_date soit results_date est requis pour chaque test sanguin.
Exemple Python
import requests
from typing import Dict, List
def comparer_tests_sanguins(
nom_utilisateur: str,
mot_de_passe: str,
tests_sanguins: List[Dict],
langue: str = "fr"
) -> Dict:
"""
Compare plusieurs tests sanguins pour l'analyse des tendances.
Args:
nom_utilisateur: Nom d'utilisateur API
mot_de_passe: Mot de passe API
tests_sanguins: Liste d'objets de tests (2-20 tests)
langue: Langue de réponse
Returns:
dict: Résultats de comparaison avec insights
"""
url = "https://app.aibloodtestinterpret.com/api/v1/bloodtest/comparison/analyze"
if len(tests_sanguins) < 2:
raise ValueError("Minimum 2 tests sanguins requis")
if len(tests_sanguins) > 20:
raise ValueError("Maximum 20 tests sanguins autorisés")
payload = {
"username": nom_utilisateur,
"password": mot_de_passe,
"language": langue,
"blood_tests": tests_sanguins
}
reponse = requests.post(url, json=payload, timeout=120)
reponse.raise_for_status()
return reponse.json()
# Exemple d'utilisation
if __name__ == "__main__":
tests = [
{
"lab_date": "2025-06-15",
"parameters": [
{"short_name": "HGB", "result": 12.8, "unit": "g/dL"},
{"short_name": "CHOL", "result": 220, "unit": "mg/dL"}
]
},
{
"lab_date": "2025-12-15",
"parameters": [
{"short_name": "HGB", "result": 14.2, "unit": "g/dL"},
{"short_name": "CHOL", "result": 185, "unit": "mg/dL"}
]
}
]
resultat = comparer_tests_sanguins("votre_nom_utilisateur", "votre_mot_de_passe", tests)
for changement in resultat['data']['significant_changes']:
print(f"{changement['parameter']}: {changement['direction']} de {changement['change_percent']}%")
Référence des champs de réponse
| Champ | Type | Description |
|---|---|---|
comparison_id | string | Identifiant unique pour cette comparaison (format: CMP-XXXXXXXX) |
comparison_summary | object | Résumé global: key_findings, overall_trend, dates du rapport, time_interval |
parameter_analysis | array | Analyse détaillée par paramètre avec type de changement et signification clinique |
health_assessment | object | Zones de préoccupation, améliorations, développements positifs, facteurs de risque |
recommendations | object | Tests de suivi, actions immédiates, modifications du mode de vie, références aux spécialistes |
detailed_interpretation | object | Sections narratives IA avec résumé exécutif et recommandations cliniques |
Structure de l'objet parameter_analysis
| Champ | Type | Description |
|---|---|---|
parameter_name | string | Nom du paramètre |
report1_value | string | Valeur du premier rapport avec unité |
report2_value | string | Valeur du second rapport avec unité |
change_type | string | increased, decreased ou stable |
change_magnitude | string | significant, moderate ou minor |
clinical_significance | string | Explication IA de la signification du changement |
trend_assessment | string | positive, negative ou neutral |
Exemple de réponse
{
"status": "success",
"data": {
"comparison_summary": {
"tests_compared": 2,
"date_range": {
"earliest": "2025-06-15",
"latest": "2025-12-15",
"span_days": 183
},
"parameters_compared": 2,
"overall_assessment": "en amélioration"
},
"parameter_comparisons": [
{
"parameter": "HGB",
"long_name": "Hémoglobine",
"values": [
{"date": "2025-06-15", "value": 12.8, "evaluation": "bas"},
{"date": "2025-12-15", "value": 14.2, "evaluation": "normal"}
],
"change": {
"absolute": 1.4,
"percent": 10.94,
"direction": "augmenté"
},
"interpretation": "L'hémoglobine s'est améliorée de bas à normal"
}
],
"ai_insights": [
{
"type": "improvement",
"title": "Anémie résolue",
"description": "Les niveaux d'hémoglobine se sont normalisés, suggérant un traitement réussi de l'anémie précédente.",
"confidence": 0.94
}
],
"recommendations": [
"Continuer la supplémentation actuelle en fer/vitamines",
"Planifier un test sanguin de suivi dans 6 mois"
]
},
"api_version": "v1",
"timestamp": "2025-12-22T10:30:00Z"
}
Référence des mots-clés
Référence complète de toutes les valeurs de mots-clés d'entrée utilisées dans les endpoints de l'API Kantesti. Utilisez ces valeurs exactes lors des requêtes API.
analysis_type API Analyse des tendances
Spécifie le type d'analyse de tendance à effectuer.
| Valeur | Défaut | Description |
|---|---|---|
comprehensive | ✓ | Analyse complète avec statistiques, graphiques et interprétation IA |
statistical | Analyse statistique uniquement | |
summary | Résumé de haut niveau uniquement |
health_goals API Nutrition
Objectifs de santé pour des recommandations nutritionnelles personnalisées. Plusieurs valeurs peuvent être fournies sous forme de tableau.
| Valeur | Description |
|---|---|
maintain | Maintenir la santé actuelle (défaut) |
improve_energy | Focus sur les niveaux d'énergie |
weight_management | Gestion saine du poids |
heart_health | Santé cardiovasculaire |
immune_support | Soutien du système immunitaire |
digestive_health | Bien-être digestif |
bone_health | Santé osseuse |
mental_clarity | Fonction cognitive |
dietary_restrictions API Nutrition
Restrictions alimentaires et allergies. Plusieurs valeurs peuvent être fournies sous forme de tableau. Le texte libre est également accepté pour les restrictions personnalisées.
| Valeur | Description |
|---|---|
low_sodium | Apport réduit en sodium |
low_sugar | Apport réduit en sucre |
low_fat | Apport réduit en graisses |
gluten_free | Sans gluten |
dairy_free | Sans produits laitiers |
nut_free | Sans noix |
soy_free | Sans soja |
egg_free | Sans œufs |
halal | Conforme halal |
kosher | Conforme casher |
Le texte libre est également accepté pour les restrictions alimentaires personnalisées non répertoriées ci-dessus.
dietary_preferences API Nutrition
Préférences de style de vie alimentaire pour la planification des repas.
| Valeur | Description |
|---|---|
omnivore | Aucune restriction (défaut) |
vegetarian | Pas de viande |
vegan | Pas de produits animaux |
pescatarian | Végétarien + poisson |
keto | Régime cétogène |
paleo | Régime paléolithique |
mediterranean | Régime méditerranéen |
activity_level API Nutrition
Niveau d'activité physique pour les calculs caloriques et nutritionnels.
| Valeur | Description |
|---|---|
sedentary | Peu ou pas d'exercice |
light | Exercice léger 1-3 jours/semaine |
moderate | Exercice modéré 3-5 jours/semaine (défaut) |
active | Exercice intense 6-7 jours/semaine |
very_active | Exercice très intense ou travail physique |
budget API Nutrition
Niveau de budget pour les recommandations alimentaires et de suppléments.
| Valeur | Description |
|---|---|
low | Options économiques |
moderate | Options équilibrées (défaut) |
high | Options premium |
gender Toutes les APIs
Sexe du patient pour des plages de référence et recommandations personnalisées.
| Valeur | Description |
|---|---|
male | Patient masculin |
female | Patient féminin |
other | Autre ou non spécifié |
Mots-clés de sortie
Les mots-clés suivants apparaissent dans les réponses API. Comprendre ces valeurs vous aide à interpréter et afficher correctement les résultats.
evaluation APIs Analyse sanguine & Comparaison
Statut d'évaluation du paramètre indiquant comment le résultat se compare aux plages de référence.
| Valeur | Description |
|---|---|
normal | Dans la plage de référence normale |
low | En dessous de la plage normale |
high | Au-dessus de la plage normale |
critical_low | Critiquement bas (attention immédiate requise) |
critical_high | Critiquement élevé (attention immédiate requise) |
borderline_low | Légèrement en dessous de la plage normale |
borderline_high | Légèrement au-dessus de la plage normale |
trend_assessment APIs Comparaison & Tendances
Évaluation globale des tendances des paramètres entre les tests.
| Valeur | Description |
|---|---|
positive | Amélioré (vers la plage normale) |
negative | Détérioré (s'éloigne de la plage normale) |
stable | Relativement inchangé entre les tests |
improving | Tendance globale à l'amélioration |
worsening | Tendance globale à la détérioration |
trend_direction API Analyse des tendances
Direction des changements de valeur des paramètres dans le temps.
| Valeur | Description |
|---|---|
upward | Valeurs en augmentation dans le temps |
downward | Valeurs en diminution dans le temps |
stable | Changement minimal dans le temps |
trend_strength API Analyse des tendances
Magnitude de la tendance observée.
| Valeur | Description |
|---|---|
strong | >15% de changement entre les périodes |
moderate | 5-15% de changement entre les périodes |
mild | <5% de changement entre les périodes |
health_score / score_interpretation API Score de santé
Interprétation globale du score de santé basée sur les paramètres analysés.
| Valeur | Description |
|---|---|
excellent | Tous les marqueurs dans la plage optimale |
good | La plupart des marqueurs dans la plage normale |
fair | Certains marqueurs nécessitent attention |
poor | Plusieurs marqueurs nécessitent attention |
Points de terminaison utilitaires
Renvoie les informations de la plateforme API, les versions disponibles et les fonctionnalités supportées. Aucune authentification requise.
Exemple de réponse
{
"platform": "API Kantesti Analyse de Sang",
"versions": ["v6", "v8", "v9", "v10", "v11"],
"latest_version": "v11",
"supported_languages": 100,
"documentation": "https://www.kantesti.net/docs/",
"status": "operational"
}
Point de terminaison de vérification de santé pour la surveillance. Renvoie le statut du service. Aucune authentification requise.
Exemple de réponse
{
"status": "healthy",
"timestamp": "2025-12-22T10:30:00Z",
"uptime": "99.99%"
}
Vérifiez votre quota API restant. Authentification requise.
Exemple cURL
curl -X POST "https://app.aibloodtestinterpret.com/api/quota/check" \
-H "Content-Type: application/json" \
-d '{"username": "VOTRE_NOM_UTILISATEUR", "password": "VOTRE_MOT_DE_PASSE"}'
Exemple de réponse
{
"status": "success",
"quota": {
"remaining": 847,
"total": 1000,
"reset_date": "2026-01-01",
"plan": "professional"
}
}
API Évaluation des Risques de Santé Familiale
L'API Kantesti d'Évaluation des Risques de Santé Familiale est une plateforme d'analyse des risques de santé héréditaires alimentée par l'IA. Elle génère des rapports complets de santé familiale en analysant les antécédents médicaux familiaux, les profils de santé des patients et les données de tests sanguins pour identifier les facteurs de risque héréditaires et fournir des recommandations de soins préventifs personnalisées.
Analyse de risques héréditaires par IA
L'API Family Health utilise des modèles d'IA avancés pour croiser les antécédents médicaux familiaux avec les données de tests sanguins du patient, identifiant les schémas de risques héréditaires dans les domaines cardiovasculaire, métabolique, cancer, neurologique, respiratoire, auto-immun, génétique, santé mentale et rein/foie. Les rapports incluent l'évaluation des risques, les calendriers de soins préventifs, les recommandations de dépistage génétique et les conseils de mode de vie — le tout localisé dans plus de 100 langues.
- Analyse des risques héréditaires — Classification en risque élevé, modéré et faible avec scoring détaillé
- Analyse de l'arbre généalogique — Cartographie des risques des lignées paternelle et maternelle
- Corrélation des tests sanguins — Croisement des antécédents familiaux avec les paramètres sanguins
- Recommandations de dépistage génétique — Suggestions personnalisées de tests génétiques
- Calendrier de soins préventifs — Programmes de dépistage adaptés à l'âge
- Analyse des médicaments — Évaluation des interactions et des sensibilités héréditaires
- 100+ langues supportées — Localisation complète des rapports dans plus de 100 langues
- Mode Sandbox — Testez l'intégration sans consommer de crédits
- 9 catégories de maladies — Cardiovasculaire, Métabolique, Cancer, Neurologique, Respiratoire, Auto-immun, Génétique, Santé mentale, Rein/Foie
- 14 relations familiales — Père, mère, frères et sœurs, grands-parents, oncles, tantes, enfants
Résumé des endpoints
| Endpoint | Méthode | Description | Auth |
|---|---|---|---|
/api/v1/family-health/analyze |
POST | Générer un rapport complet d'évaluation des risques de santé familiale | Requis (1 crédit) |
/api/v1/family-health/validate |
POST | Valider les données de la requête avant l'analyse (aucun quota consommé) | Requis (Gratuit) |
/api/v1/family-health/supported-languages |
GET | Lister les 100+ langues supportées | Non requis |
/api/v1/family-health/condition-categories |
GET | Lister toutes les catégories de maladies médicales | Non requis |
/api/v1/family-health/family-relations |
GET | Lister tous les types de relations familiales | Non requis |
/api/v1/family-health/sandbox/analyze |
POST | Test sandbox avec données fictives (aucun quota consommé) | Requis (Gratuit) |
Générez un rapport complet d'évaluation des risques de santé familiale alimenté par l'IA. Analyse les antécédents médicaux familiaux, les profils de santé et les données de tests sanguins.
Paramètres de requête (JSON Body)
| Paramètre | Type | Requis | Description |
|---|---|---|---|
username | string | Oui | Votre nom d'utilisateur API |
password | string | Oui | Votre mot de passe API |
patient_data | object | Oui | Informations du patient (voir ci-dessous) |
family_members | array | Oui* | Tableau d'objets membres de la famille (max 100). *Requis si health_profile est absent |
health_profile | object | Oui* | Profil de santé du patient. *Requis si family_members est absent |
blood_test_data | array | Non | Données de tests sanguins pour l'analyse de corrélation |
language | string | Non | Code langue de réponse (défaut : en). 100+ langues |
Exemple cURL
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/family-health/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "VOTRE_UTILISATEUR",
"password": "VOTRE_MOT_DE_PASSE",
"patient_data": {"name": "Marie Dupont", "age": 42, "gender": "female"},
"family_members": [
{"relation": "father", "age": 70, "conditions": ["hypertension", "type2_diabetes"]},
{"relation": "mother", "age": 67, "conditions": ["breast_cancer"]}
],
"language": "fr"
}'
Exemple Python
import requests
url = "https://app.aibloodtestinterpret.com/api/v1/family-health/analyze"
payload = {
"username": "VOTRE_UTILISATEUR",
"password": "VOTRE_MOT_DE_PASSE",
"patient_data": {"name": "Marie Dupont", "age": 42, "gender": "female"},
"family_members": [
{"relation": "father", "age": 70, "conditions": ["hypertension", "type2_diabetes"]},
{"relation": "mother", "age": 67, "conditions": ["breast_cancer"]}
],
"language": "fr"
}
response = requests.post(url, json=payload, timeout=120)
print(response.json())
Exemple de réponse
{
"status": "success",
"data": {
"report_data": {
"report_title": "Rapport d'Évaluation des Risques de Santé Familiale",
"executive_summary": "Basé sur l'analyse des antécédents médicaux familiaux...",
"hereditary_risk_analysis": {
"high_risk": [{"condition": "Maladie cardiovasculaire", "risk_score": 75}],
"moderate_risk": [{"condition": "Diabète de type 2", "risk_score": 60}],
"low_risk": []
},
"genetic_screening_recommendations": ["Test génétique BRCA1/BRCA2", "Panel génétique cardiovasculaire"],
"preventive_care_timeline": [
{"age_range": "40-45", "screenings": ["Mammographie annuelle", "Test d'effort cardiaque"]}
]
}
},
"message": "Évaluation des risques de santé familiale complétée avec succès",
"timestamp": "2026-03-23T10:30:00Z",
"api_version": "1.0.0"
}
Codes d'erreur Family Health API
| Code d'erreur | Status HTTP | Description |
|---|---|---|
AUTH_1001 | 401 | Identifiants d'authentification manquants |
AUTH_1002 | 401 | Nom d'utilisateur ou mot de passe invalide |
QUOTA_1101 | 403 | Quota API insuffisant |
VAL_2001 | 400 | Champ obligatoire manquant |
VAL_2003 | 400 | Code langue non supporté |
VAL_2006 | 400 | Le tableau dépasse la taille maximale (max 100 membres) |
VAL_2007 | 400 | Structure de données patient invalide |
PROC_3001 | 500 | Échec de la génération du rapport |
PROC_3003 | 500 | Erreur de traitement IA |
SRV_5001 | 500 | Erreur interne du serveur |
Endpoint Sandbox Family Health
Testez votre intégration Family Health API sans consommer de crédits.
| API | Endpoint Sandbox | Description |
|---|---|---|
| Family Health Analyze | /api/v1/family-health/sandbox/analyze | Renvoie des données de rapport d'exemple |
Endpoints de référence (Aucune auth requise)
Ces endpoints fournissent des données de référence. Aucune authentification requise.
| Endpoint | Méthode | Description |
|---|---|---|
/api/v1/family-health/supported-languages | GET | Renvoie les 100+ langues supportées |
/api/v1/family-health/condition-categories | GET | Renvoie les 9 catégories de maladies |
/api/v1/family-health/family-relations | GET | Renvoie les 14 types de relations familiales |
ICR - Reconnaissance Intelligente de Caractères API
L'API Kantesti ICR (Reconnaissance Intelligente de Caractères) est une technologie avancée d'extraction de texte de documents qui va bien au-delà de l'OCR traditionnel. Alimentée par le moteur IA propriétaire de Kantesti, l'ICR fournit une sortie JSON structurée à partir de tout type de document, y compris les rapports médicaux, les factures, les formulaires et plus encore.
Kantesti ICR vs OCR Traditionnel
Dans les tests de benchmark, Kantesti ICR a démontré une performance 79% supérieure par rapport aux solutions OCR traditionnelles. L'ICR comprend la structure du document, préserve les mises en page des tableaux, extrait les métadonnées et renvoie du JSON structuré propre.
- Sortie JSON Structurée — Tableaux, sections, métadonnées et texte brut en format JSON propre
- Détection du Type de Document — Identifie automatiquement les rapports médicaux, factures, formulaires, lettres, etc.
- Extraction de Tableaux — Préserve les en-têtes et les données des lignes avec la structure complète
- Support Multi-format — Traitement de documents PDF, JPG, JPEG, PNG
- Intégration Tests Sanguins (Kan) — Point d'accès spécialisé pour l'extraction de documents de tests sanguins
- Mode Sandbox — Testez l'intégration sans consommer de crédits
- Système de Crédits — 0,5 crédit par appel API
Résumé des Points d'Accès ICR
| Point d'accès | Méthode | Description | Coût |
|---|---|---|---|
/api/icr/v1/extract | POST | Extraction de texte ICR | 0,5 crédit |
/api/icr/v1/sandbox | POST | Test sandbox ICR | Gratuit |
/api/icr/v1/kan | POST | Analyse de documents de tests sanguins | 0,5 crédit |
/api/icr/v1/kan/sandbox | POST | Test sandbox tests sanguins | Gratuit |
/api/icr/info | GET | Documentation et fonctionnalités API | Gratuit |
/api/icr/health | GET | Point de contrôle santé | Gratuit |
/api/icr/v1/quota | POST | Vérifier les crédits ICR restants | Gratuit |
Extrait tout le contenu textuel des documents téléchargés en utilisant la technologie ICR de Kantesti.
Paramètres de Requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
username | string | Oui | Votre nom d'utilisateur API |
password | string | Oui | Votre mot de passe API |
file | file | Oui | Fichier document (PDF, JPG, JPEG, PNG) |
language | string | Non | Langue de sortie (défaut : en) |
Exemple cURL
curl -X POST "https://app.aibloodtestinterpret.com/api/icr/v1/extract" \
-F "username=VOTRE_NOM_UTILISATEUR" \
-F "password=VOTRE_MOT_DE_PASSE" \
-F "language=fr" \
-F "[email protected]"
Exemple Python
import requests
def icr_extract(file_path: str, username: str, password: str, language: str = "fr"):
"""
Extraire le texte d'un document avec l'API ICR Kantesti.
79% plus rapide et plus précis que l'OCR traditionnel.
"""
url = "https://app.aibloodtestinterpret.com/api/icr/v1/extract"
with open(file_path, "rb") as f:
files = {"file": (file_path, f)}
data = {"username": username, "password": password, "language": language}
response = requests.post(url, files=files, data=data, timeout=120)
response.raise_for_status()
return response.json()
# Exemple d'utilisation
result = icr_extract("rapport_medical.pdf", "utilisateur", "mot_de_passe", "fr")
print(f"Type de document : {result['data']['document_type']}")
print(f"Pages : {result['data']['page_count']}")
Exemple de Réponse
{
"status": "success",
"data": {
"document_type": "blood_test_report",
"page_count": 1,
"pages": [{"page_number": 1, "content": {"raw_text": "Hôpital Universitaire de Cologne - Analyse Sanguine...", "sections": [{"type": "header", "content": "Analyse Sanguine"}], "tables": [{"headers": ["Test", "Résultat", "Unité", "Plage de Référence"], "rows": [["Glucose", "92", "mg/dL", "74 - 100"], ["ALT", "22", "U/L", "< 35"]]}]}}],
"metadata": {"detected_language": "fr", "confidence": "high"},
"icr_metadata": {"engine": "kantesti-icr", "version": "1.0.0", "images_processed": 1, "timestamp": "2026-02-14T10:30:00Z"}
},
"credit_cost": 0.5,
"api_version": "icr-v1",
"timestamp": "2026-02-14T10:30:00Z"
}
Performance ICR vs OCR
| Métrique | Kantesti ICR | OCR Traditionnel | Amélioration |
|---|---|---|---|
| Vitesse de Traitement | 1,2s moyenne | 5,7s moyenne | 79% plus rapide |
| Précision du Texte | 99,7% | 92,1% | +7,6% |
| Détection de Tableaux | 98,9% | 71,2% | +27,7% |
| Sortie Structurée | JSON avec sections, tableaux, métadonnées | Texte brut non structuré | Structure complète |
| Support Multilingue | 100+ langues | 30-50 langues | 2x+ couverture |