Endpoints publics read-only pour afficher disponibilités, tarifs et proposer un formulaire de réservation depuis votre site (Drupal, WordPress, Joomla, site custom...). Aucune clé API nécessaire pour les lectures.
Chaque commune a son propre tenant identifié par un slug (ex : ma-commune).
https://{slug}.sallia.fr/...
ou (forme équivalente, legacy) : https://sallia.fr/t/{slug}/...
Toutes les réponses sont en JSON, CORS ouvert (Access-Control-Allow-Origin: * pour les endpoints /public/*), encoding UTF-8.
Renvoie les jours occupés et disponibles du mois pour une salle (ou la première salle active si salle_id omis).
{
"ok": true,
"salle": { "id": 1, "nom": "Salle des fêtes", "description": "...", "capacite_max": 120 },
"tenant": { "nom": "Mairie d'Exemple" },
"dates": [
{ "date": "2026-05-01", "occupied": false },
{ "date": "2026-05-02", "occupied": true },
...
]
}
Renvoie la grille tarifaire (par type de réservation et type de demandeur) et le règlement intérieur.
{
"ok": true,
"tarifs": [
{ "id": 3, "type_reservation": "location", "type_demandeur": "habitant",
"prix_jour": 150, "prix_demi_jour": 80, "caution": 500, "actif": true }
],
"reglement": { "titre": "Règlement intérieur", "contenu": "...", "version": 3 }
}
Catalogue du matériel louable à l'événement (tables, chaises, vaisselle...). Inclut prix_location, unite et stock disponible.
{
"ok": true,
"items": [
{ "id": 42, "nom": "Table ronde 8 places", "unite": "piece",
"prix_location": "20.00", "quantite": 12, "categorie_nom": "Mobilier" }
]
}
Crée une demande de réservation depuis un formulaire externe. Rate-limit : 3 requêtes / 15 min / IP.
{
"nom": "Jean Dupont",
"email": "jean@example.com",
"tel": "0612345678", // obligatoire
"adresse": "3 rue des Lilas, 12345 Exempleville", // obligatoire
"organisation": "Association X",
"date_debut": "2026-05-15",
"date_fin": "2026-05-15",
"type": "location", // location | pret_asso | pret_prive
"objet": "Mariage",
"nb_personnes": 80,
"salle_id": 1 // optionnel
}
200 OK — { ok: true, demande: { id, token, ... } }400 si capacité dépassée — inclut capacity: { max, requested }400 si nom, email, tel, adresse ou date_debut est vide400 avec code: "TARIF_SALLE_MISMATCH" si le tarif_id envoyé n'appartient pas à la salle_id demandée409 si conflit de date avec réservation existante429 si rate-limit atteintnb_personnes dépasse salle.capacite_max, la demande est rejetée (obligation légale ERP). Récupérez d'abord capacite_max via l'endpoint calendar.
Si vous ne voulez pas coder : intégrez simplement le calendrier + formulaire en une ligne dans n'importe quel CMS :
<iframe src="https://ma-commune.sallia.fr/widget/calendar" width="100%" height="600" frameborder="0"> </iframe>
Le widget est responsive, sans dépendance externe, et reprend le branding de votre commune. Il gère calendrier + tarifs + formulaire de demande.
fetch('https://ma-commune.sallia.fr/public/calendar?month=2026-05')
.then(r => r.json())
.then(d => {
d.dates.forEach(day => {
console.log(day.date, day.occupied ? 'Occupé' : 'Libre');
});
});
curl https://ma-commune.sallia.fr/public/tarifs
curl -X POST https://ma-commune.sallia.fr/public/demande \
-H "Content-Type: application/json" \
-d '{"nom":"Jean","email":"j@e.fr","tel":"0612345678","adresse":"3 rue des Lilas, 12345 Exempleville","date_debut":"2026-06-01","type":"location"}'
Plugin disponible : 📥 Télécharger sallia-reservation.zip
Installation :
[masalle_calendrier slug="votre-commune"] [masalle_bouton_reservation slug="votre-commune" texte="Réserver une salle"]
Options : salle="1" pour forcer une salle, height="500" pour la hauteur du calendrier.
GET /public/* : pas de limite stricte (soyez raisonnables < 60 req/min)POST /public/demande : 3 requêtes / 15 min / IP/public/*, pas de credentials requisAu-delà de ces endpoints publics, une API authentifiée par clé (créée par un administrateur de la commune, portée lecture, écriture ou administrateur) donne accès aux réservations, aux paiements, aux conventions et états des lieux en PDF. Documentation interactive : /v1/docs.
Export complet de réversibilité : archive ZIP contenant la base de la commune, tous ses fichiers, la documentation de structure et un manifeste vérifiable. Clé de portée administrateur uniquement. Un seul export à la fois par commune.
Pour toute question d'intégration : contact@sallia.fr. Nous répondons sous 24h ouvrées. Pour récupérer toutes vos données, un administrateur de la commune peut aussi télécharger l'archive complète lui-même, depuis Réglages → Récupérer toutes vos données.