Documentation API Partenaire

Vue d'ensemble fonctionnelle de l'API MonHubImmo pour les réseaux immobiliers.

Introduction

L'API partenaire MonHubImmo permet aux réseaux immobiliers d'intégrer la plateforme directement dans leur système d'information. Toutes les opérations sont disponibles via une API REST standard.

URL de base

https://api.monhubimmo.fr/api/external/v1

Format

JSON (requêtes et réponses)

Rate limiting

250 requêtes / minute

Tous les endpoints retournent des réponses au format JSON avec un champ success (booléen) et un champ data ou error selon le résultat.

Authentification

Toutes les requêtes API doivent inclure votre clé API dans le header X-API-Key.

Obtenir vos clés

Contactez notre équipe via le formulaire de contact pour recevoir vos identifiants API (clé API et secret pour les webhooks).

Exemple de requête authentifiée
curl -X GET "https://api.monhubimmo.fr/api/external/v1/users" \
  -H "X-API-Key: votre-cle-api" \
  -H "Content-Type: application/json"
Réponse type
{
  "success": true,
  "data": {
    "users": [...],
    "total": 42,
    "page": 1,
    "limit": 20
  }
}

Gestion des utilisateurs

Créez et gérez les comptes de vos agents directement depuis votre SI. Chaque agent créé via l'API est automatiquement rattaché à votre réseau partenaire.

Créer un agent

Créez un compte pour un nouvel agent de votre réseau. Un email de bienvenue lui sera automatiquement envoyé.

POST /users
{
  "email": "agent@monreseau.fr",
  "firstName": "Marie",
  "lastName": "Dupont",
  "phone": "0612345678",
  "city": "Paris",
  "userType": "agent"
}

Lister les agents

Récupérez la liste de tous les agents de votre réseau avec pagination.

GET /users?page=1&limit=20
{
  "success": true,
  "data": {
    "users": [
      {
        "externalId": "agent-123",
        "email": "agent@monreseau.fr",
        "firstName": "Marie",
        "lastName": "Dupont",
        "status": "active"
      }
    ],
    "total": 42,
    "page": 1
  }
}

Activer / Désactiver un agent

Gérez le statut de vos agents. Un agent désactivé ne peut plus se connecter.

PATCH /users/:externalId/status
{
  "active": false
}

Gestion des biens immobiliers

Synchronisez automatiquement les biens de vos agents avec MonHubImmo. Publiez, mettez à jour et retirez des annonces programmatiquement.

Publier un bien

Créez une annonce pour un bien immobilier au nom d'un de vos agents.

POST /properties
{
  "userExternalId": "agent-123",
  "title": "Appartement T3 lumineux — Paris 11e",
  "propertyType": "apartment",
  "transactionType": "sale",
  "price": 450000,
  "surface": 65,
  "rooms": 3,
  "city": "Paris",
  "zipCode": "75011",
  "description": "Bel appartement traversant..."
}

Mettre à jour un bien

Modifiez les informations d'un bien existant (prix, description, statut...).

PUT /properties/:externalId
{
  "price": 440000,
  "status": "active"
}

Consulter et retirer

Consultez les détails d'un bien ou retirez-le de la plateforme.

GET /properties/:externalId
// Réponse : détails complets du bien avec statistiques
DELETE /properties/:externalId
// Le bien est retiré de la plateforme

Recherches acquéreurs

Diffusez les critères de recherche de vos acquéreurs sur MonHubImmo. Le système de matching automatique rapproche les recherches avec les biens disponibles.

Diffuser une recherche

Créez une annonce de recherche acquéreur pour un de vos agents.

POST /search-ads
{
  "userExternalId": "agent-123",
  "title": "Recherche T3/T4 Paris 11e",
  "projectType": "primary",
  "propertyTypes": ["apartment"],
  "budget": { "min": 350000, "max": 500000 },
  "minSurface": 55,
  "location": {
    "cities": ["Paris"],
    "departments": ["75"]
  }
}

Matching automatique

Lorsqu'un bien correspond aux critères d'une recherche (ou inversement), MonHubImmo génère automatiquement une proposition de collaboration. Vous pouvez être notifié de ces matchings via webhooks.

Le matching prend en compte le type de bien, le budget, la surface, la localisation et d'autres critères pour proposer les correspondances les plus pertinentes.

Webhooks & Notifications

Configurez des webhooks pour recevoir des notifications en temps réel lorsque des événements importants se produisent sur MonHubImmo.

Événements disponibles

ÉvénementDescription
user.createdUn agent a été créé
user.updatedUn agent a été modifié
property.createdUn bien a été publié
property.updatedUn bien a été modifié
searchAd.createdUne recherche a été diffusée
collaboration.createdUne collaboration a été initiée

Signature HMAC-SHA256

Chaque webhook inclut un header X-MonHubImmo-Signature contenant une signature HMAC-SHA256 du body, calculée avec votre signing secret. Vérifiez cette signature pour garantir l'authenticité des webhooks.

Vérification de la signature (Node.js)
const crypto = require('crypto');

const signature = req.headers['x-monhubimmo-signature'];
const expected = crypto
  .createHmac('sha256', SIGNING_SECRET)
  .update(JSON.stringify(req.body))
  .digest('hex');

if (signature !== expected) {
  return res.status(401).send('Signature invalide');
}

Retry automatique

En cas d'échec de livraison (erreur HTTP 4xx/5xx ou timeout), MonHubImmo retente automatiquement l'envoi avec un backoff exponentiel (3 tentatives sur 24h).

Connexion SSO

Permettez à vos agents de se connecter à MonHubImmo directement depuis votre plateforme, sans ressaisir leurs identifiants.

JWT partenaire

Générez un JWT côté serveur avec votre secret partenaire et redirigez l'agent vers MonHubImmo. Le token est vérifié et l'agent est connecté automatiquement.

Génération du token (Node.js)
const jwt = require('jsonwebtoken');

const token = jwt.sign(
  { externalId: 'agent-123' },
  PARTNER_JWT_SECRET,
  { expiresIn: '5m' }
);

// Redirigez l'agent vers :
// https://monhubimmo.fr/auth/partner-login?token={token}
Le token JWT a une durée de vie courte (5 minutes recommandé) et ne peut être utilisé qu'une seule fois. Votre JWT secret est différent de votre clé API — les deux sont fournis lors de la création de votre compte partenaire.

Codes d'erreur

L'API utilise les codes HTTP standards pour indiquer le succès ou l'échec d'une requête.

CodeStatutDescription
200OKRequête réussie
201CreatedRessource créée avec succès
400Bad RequestParamètres invalides ou manquants
401UnauthorizedClé API manquante ou invalide
403ForbiddenAccès refusé à cette ressource
404Not FoundRessource non trouvée
422UnprocessableErreur de validation des données
429Too Many RequestsLimite de requêtes dépassée (250/min)
500Server ErrorErreur interne du serveur
Exemple de réponse d'erreur
{
  "success": false,
  "error": "Validation failed",
  "details": [
    { "field": "email", "message": "Email invalide" },
    { "field": "firstName", "message": "Le prénom est requis" }
  ]
}

Prêt à intégrer votre réseau ?

Contactez notre équipe pour obtenir vos clés API et démarrer l'intégration de votre réseau.

Nous contacter