Documentation développeurs
Recevez et répondez aux demandes de privatisation directement depuis votre CRM via notre API REST authentifiée par token. Un seul token suffit pour piloter tous vos lieux.
URL de base
Toutes les requêtes utilisent HTTPS et acceptent / retournent du JSON.
Authentification
L'API utilise des tokens Bearer personnels (Laravel Sanctum). Chaque token est rattaché à votre compte propriétaire et donne accès à l'ensemble des lieux que vous gérez — vous n'avez pas besoin de générer un token par lieu.
- Connectez-vous à votre espace lieu
- Menu Tokens API → Créer un token
- Nommez le token (ex: "CRM production"), optionnellement définissez une date d'expiration
- Copiez le token affiché — il ne sera plus jamais visible ensuite
Vous pouvez générer plusieurs tokens (un par intégration) et les révoquer indépendamment depuis la même interface.
Utilisation
Ajoutez le header Authorization: Bearer <token> à chaque requête.
Exemple — vérifier votre identité et lister vos lieux
Plusieurs lieux, un seul token
Si votre compte gère plusieurs lieux, un unique token API couvre la totalité de votre portefeuille. L'endpoint GET /api/v1/me retourne la liste complète des lieux accessibles via le token courant dans le tableau venues[].
Comment savoir à quel lieu correspond une demande ?
Chaque sollicitation retournée par /api/v1/solicitations et /api/v1/solicitations/{id} embarque un objet venue (id, nom, ville, capacités). Filtrez ou routez les demandes côté CRM selon venue.id.
Exemple — récupérer toutes les demandes de tous vos lieux
Endpoints
Tous les endpoints sont scopés à vos lieux : vous ne voyez que les demandes envoyées à un lieu dont vous êtes propriétaire.
/api/v1/solicitations
Lister les demandes reçues
Retourne une liste paginée des sollicitations envoyées à vos lieux. Triées par sent_at décroissant.
Query parameters
| Param | Type | Description |
|---|---|---|
status | string | Filtre : sent · viewed · replied · declined |
page | int | Numéro de page (50 résultats par page) |
Exemple
/api/v1/solicitations/{id}
Détail d'une demande
Récupère toutes les infos d'une demande : événement, contact, entreprise, proposition envoyée (s'il y en a). Marque automatiquement la demande comme « vue » au premier appel.
Exemple de réponse
/api/v1/solicitations/{id}/proposal
Envoyer un devis
Crée une proposition pour une demande. Le client est automatiquement notifié par email avec un lien magique vers son espace.
Body parameters
| Field | Type | Requis | Description |
|---|---|---|---|
message | string | oui | Corps du devis (3 à 5000 caractères) |
total_price | integer | non | Montant total en euros (entier) |
attachments[] | file[] | non | Jusqu'à 5 PDF, 10 MB par fichier (multipart/form-data) |
Exemple JSON simple
Exemple avec PDF
Codes d'erreur spécifiques
- •
403— Cette sollicitation n'est pas accessible avec votre token - •
409— Une proposition existe déjà OU la demande a été déclinée - •
422— Erreur de validation (message trop court, etc.)
/api/v1/solicitations/{id}/decline
Décliner une demande
Marque la demande comme déclinée. Aucun body requis.
Rate limits & bonnes pratiques
- • 60 requêtes par minute et par token. Au-delà : réponse
429 Too Many Requests. - • Polling raisonnable : interrogez
/api/v1/solicitations?status=senttoutes les 1 à 5 minutes pour récupérer les nouvelles demandes. - • Un token pour tous vos lieux : pas besoin de multiplier les appels par lieu — un seul
/api/v1/solicitationsretourne les demandes de tous vos lieux. - • Pas de batch endpoint pour l'instant : une proposition par appel.
- • Idempotence : un même
solicitation_idne peut recevoir qu'une seule proposition. Retentez si vous obtenez 409.
Support
Question d'intégration ou bug API ?