Développeurs
API REST LegalHost
Intégrez LegalHost dans vos outils et automatisez la gestion de vos propriétés, réservations et documents.
Authentification
Authentifiez vos requêtes en incluant votre clé API dans l'en-tête X-API-Key.
curl -H "X-API-Key: lh_your_api_key_here" \
https://app.legalhost.ma/api/v1/propertiesCréez vos clés API dans Paramètres > Clés API. La clé n'est affichée qu'une seule fois lors de sa création.
Limites de débit
L'API est limitée à 100 requêtes par minute par clé API.
Les en-têtes de réponse incluent X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset. En cas de dépassement, vous recevrez une réponse 429 Too Many Requests.
Endpoints
/api/v1/propertiesListe les propriétés de votre organisation.
Paramètres : page, limit
/api/v1/reservationsListe les réservations avec filtres optionnels.
Paramètres : page, limit, propertyId, status
/api/v1/guestsListe les voyageurs.
Paramètres : page, limit, reservationId
/api/v1/documentsListe les documents générés (fiches de police et contrats).
Paramètres : page, limit, type (police | contract)
Pagination
Tous les endpoints de liste supportent la pagination avec les paramètres page et limit (max 100).
{
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 45,
"totalPages": 3
}
}Webhooks
Enregistrez une URL de webhook dans Paramètres > Webhooks pour recevoir des notifications en temps réel. Chaque livraison inclut une signature HMAC-SHA256 dans l'en-tête X-Webhook-Signature.
Événements disponibles
reservation.createdUne nouvelle réservation a été créée.reservation.updatedUne réservation a été modifiée.reservation.cancelledUne réservation a été annulée.guest.createdUn voyageur a été ajouté.guest.updatedLes informations d'un voyageur ont été modifiées.document.generatedUn document (fiche de police ou contrat) a été généré.property.createdUne propriété a été ajoutée.property.updatedUne propriété a été modifiée.Vérification de signature
const crypto = require('crypto');
function verifyWebhook(body, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return signature === `sha256=${expected}`;
}