Accueil › Documentation de l’API
Documentation de l’API
Une API REST, en JSON. Elle ne suppose aucun logiciel de votre côté : votre intégrateur fait le raccord.
L’essentiel
- Adresse de base :
https://senior24.fr/api/v1 - Authentification : en-tête
Authorization: Bearer VOTRE_CLE - Un lead est vendu une seule fois. Lisez, puis achetez vite.
- Les contacts n’apparaissent qu’après l’achat.
- Un crédit vaut un euro. Le prix débité est
prixCredits. Lisez-le, ne le calculez pas. - Une vente est définitive. Il n’y a pas d’annulation ni de remboursement.
Authentification
Créez une clé depuis votre espace. Elle n’est affichée qu’une fois.
Authorization: Bearer pl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx L’en-tête X-Cle-Api est accepté à la place. Une clé se révoque à tout moment, immédiatement.
GET /api/v1/leads — le catalogue
Les leads disponibles, contacts masqués. Tous métiers par défaut.
curl -H "Authorization: Bearer VOTRE_CLE" \
"https://senior24.fr/api/v1/leads?departement=69,38&chaleur=chaud&tri=prix_croissant&limite=50" Filtres
| Paramètre | Valeurs | Remarque |
|---|---|---|
metier | tous, monte_escalier, plateforme_elevatrice, ascenseur_privatif, rampe_pmr, douche_senior, baignoire_a_porte, cuisine_pmr | Par défaut : tous. Un métier fermé n’a pas de leads |
departement | 01 à 95, 2A, 2B, 971 à 976 | Répétable, ou séparé par des virgules |
chaleur | chaud, standard, froid | Urgence déclarée par le demandeur |
delai | urgent, 3mois, renseignement | |
fraicheur | 24 | Seulement les leads de moins de 24 h |
age | oui (70 ans ou plus), non | |
imposable | oui, non, nesaispas | |
indicateur | probable, a_verifier, peu_probable | Indicateur d’aides |
aide | depose, compte, sansaide, nesaispas | État du dossier d’aide |
typeEscalier | droit, tournant, exterieur, colimacon, inconnu | Monte-escalier seulement |
niveaux | 1, 2, plus | Monte-escalier seulement |
tri | recents, chauds, prix_croissant, prix_decroissant, anciens | Par défaut : recents |
limite / decalage | 1 à 200 / ≥ 0 | Pagination |
Les listes de valeurs sont servies par GET /api/v1/reference. Appelez-le au démarrage plutôt que de recopier ce tableau.
Réponse
{
"leads": [
{
"id": "6b1e...c4",
"metier": "monte_escalier",
"departement": "69",
"delai": "urgent",
"age": "oui",
"imposable": "non",
"indicateur": "probable",
"niveauAide": "taux_plein",
"donneesMetier": { "typeEscalier": "tournant", "niveaux": "1" },
"qualification": { "occupation": "proprietaire", "aide": "compte" },
"chaleur": "chaud",
"prixCredits": 169,
"prixBase": 169,
"remiseFraicheurPct": 0,
"publieLe": "2026-03-14T10:22:31.000Z",
"horodatage": "2026-03-14T10:21:58.000Z"
}
],
"total": 42,
"limite": 50,
"decalage": 0
} Aucun champ ne contient de nom, de téléphone, d’e-mail ni de code postal. Le compte de base de données qui sert cette route n’a pas le droit de les lire.
Le prix
Trois champs, un seul qui compte pour le débit :
| Champ | Sens |
|---|---|
prixCredits | Le prix du lead. C’est lui qui est débité. Un prix par métier, le même pour tous les comptes. Lisez-le, ne le calculez pas. |
prixBase | Aujourd’hui égal à prixCredits. Conservé pour compatibilité : si une modulation de prix revenait un jour, c’est ici que serait le prix avant remise. |
remiseFraicheurPct | Toujours 0 aujourd’hui. Conservé pour compatibilité. |
chaleur | Qualification du lead, sans effet sur le prix : chaud : urgent, ou sous trois mois avec accord. standard : sous trois mois. froid : simple renseignement. |
POST /api/v1/leads/{id}/acheter — acheter un lead
Débite les crédits et renvoie les contacts, en une seule opération.
curl -X POST -H "Authorization: Bearer VOTRE_CLE" \
"https://senior24.fr/api/v1/leads/6b1e...c4/acheter" {
"lead": {
"id": "6b1e...c4",
"venteId": "9a4f...11",
"acheteLe": "2026-03-14T10:31:02.000Z",
"nom": "Martine Delcourt",
"telephone": "0612345678",
"email": "martine.delcourt@exemple.fr",
"codePostal": "69003",
"autresCoordonnees": [],
"departement": "69",
"delai": "urgent",
"chaleur": "chaud",
"donneesMetier": { "typeEscalier": "tournant", "niveaux": "1" }
},
"creditsDebites": 169,
"soldeApres": 831
} POST /api/v1/achats — acheter un lot
Jusqu’à 100 leads d’un coup. Tout ou rien : si un seul vient d’être vendu, aucun n’est acheté et rien n’est débité. La réponse nomme les fautifs.
curl -X POST -H "Authorization: Bearer VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{"leads": ["6b1e...c4", "7c2f...d5"]}' \
"https://senior24.fr/api/v1/achats" {
"erreur": {
"code": "lead_indisponible",
"message": "Lead déjà vendu ou retiré.",
"leads": ["7c2f...d5"]
}
} GET /api/v1/leads/achetes — vos achats
Tout ce que vous avez acheté, contacts compris. Utile pour rattraper ce que votre outil aurait manqué.
curl -H "Authorization: Bearer VOTRE_CLE" \
"https://senior24.fr/api/v1/leads/achetes?depuis=2026-03-01T00:00:00Z&limite=200" Autres points d’entrée
| Appel | À quoi ça sert |
|---|---|
GET /api/v1/leads/{id} | Fiche d’un lead, masquée |
GET /api/v1/solde | Solde en crédits. ?historique=oui pour le registre |
GET /api/v1/reference | Toutes les valeurs de filtre avec leurs libellés |
Codes d’erreur
Toutes les erreurs ont la même forme, et un code stable. Testez le code, pas le message.
Code HTTP Sens Que faire non_autorise401 Clé absente, fausse ou révoquée Vérifier la clé lead_indisponible409 Déjà vendu Retirer les identifiants de erreur.leads solde_insuffisant402 Pas assez de crédits Recharger lead_introuvable404 N’existe pas ou plus Rafraîchir le catalogue demande_invalide400 Requête mal formée Corriger l’appel erreur_interne500 Panne de notre côté Réessayer. Rien n’a été débité
L’indicateur d’aides
Trois états, calculés à partir de l’âge et de la situation fiscale. Ce n’est pas une décision d’éligibilité : seule l’Anah décide.
indicateurniveauAideLecture probabletaux_plein70 ans ou plus, foyer non imposable probabletaux_reduit70 ans ou plus, foyer imposable probableindetermine70 ans ou plus, fiscalité non renseignée a_verifierindetermineMoins de 70 ans, ou locataire peu_probableindetermineMoins de 70 ans et foyer imposable
Recevoir les leads dans votre CRM
Vous n’êtes pas obligé d’interroger l’API : la plateforme peut pousser chaque lead acheté vers l’adresse de votre choix, dès l’achat. C’est ce qu’attendent Zapier, Make, n8n ou un script maison, et à travers eux n’importe quel CRM.
- Dans votre espace, page API et CRM, enregistrez une adresse HTTPS.
- Cliquez « Envoyer un test » : un lead fictif arrive, au même format que les vrais.
- À chaque achat, un
POST JSON part vers cette adresse. Trois tentatives en cas d’échec, puis le résultat est visible sur la même page.
POST https://votre-crm.exemple/senior24
Content-Type: application/json
X-Senior24-Evenement: achat
X-Senior24-Signature: t=1788790000,v1=…
{
"evenement": "achat",
"envoyeLe": "2026-09-07T12:00:00.000Z",
"partenaireId": "…",
"leads": [
{
"id": "…", "venteId": "…", "acheteLe": "2026-09-07T12:00:00.000Z",
"metier": "monte_escalier", "departement": "69", "codePostal": "69003",
"delai": "urgent", "age": "oui", "imposable": "non",
"indicateur": "probable", "niveauAide": "taux_plein",
"donneesMetier": { "typeEscalier": "tournant", "niveaux": "1" },
"qualification": { "occupation": "proprietaire", "aide": "depose", "moment": "matin" },
"prixCredits": 90,
"nom": "…", "telephone": "…", "email": "…",
"autresCoordonnees": []
}
]
}
Répondez avec un code 2xx. Tout autre code est compté comme un échec ; un 4xx n’est pas réessayé.
Événement « complement »
Un demandeur refait parfois sa demande avec un autre numéro ou une autre adresse, par exemple pour corriger une faute de frappe. La plateforme reconnaît la même personne, ne crée pas de second lead, et garde les nouvelles coordonnées avec le lead d’origine. Si vous aviez déjà acheté ce lead, vous recevez le même envoi avec "evenement": "complement" et le lead complet : autresCoordonnees liste alors chaque jeu reçu après coup (nom, telephone, email, codePostal, recuLe), du plus ancien au plus récent. Le champ est aussi présent dans /api/v1/leads/achetes et dans la réponse d’achat.
Vérifier la signature
La signature est t=<secondes>,v1=<hex>, où v1 est le HMAC-SHA256 de la chaîne t + "." + corps avec votre secret, affiché sur la page API et CRM. Refusez un envoi dont t a plus de cinq minutes.
// Node.js
const [t, v1] = signature.split(',').map((p) => p.split('=')[1]);
const attendu = crypto.createHmac('sha256', SECRET).update(t + '.' + corpsBrut).digest('hex');
const valide = attendu === v1 && Math.abs(Date.now() / 1000 - Number(t)) < 300;
L’ordre d’arrivée décide
Chaque lead n’est vendu qu’une fois, et tout le monde voit le catalogue en même temps. Le premier qui achète l’emporte. Interrogez souvent, achetez sans attendre.
Conseils
- Interrogez souvent, achetez tout de suite. Toutes les cinq minutes suffit. Ce qui compte, c’est de ne pas attendre entre la lecture et l’achat.
- Ne rejouez pas un achat après un délai réseau. Interrogez d’abord
/api/v1/leads/achetes : si le lead y est, l’achat a abouti. - Stockez l’identifiant du lead. Il ne change jamais.
- Traitez la situation fiscale comme une donnée personnelle. Elle vous est transmise pour qualifier le dossier de financement, rien d’autre.
Pour obtenir une clé
Créez un compte. Le catalogue est gratuit. La clé se crée depuis votre espace, en un clic, et se révoque aussi vite.
Créer mon compte