L'API
Tout ce que le site affiche se relit en JSON. L'accès est gratuit, mais passe par un jeton lié à un compte confirmé.
Pourquoi un jeton
Une API ouverte à tous sans compte, c'est une porte ouverte aux robots qui proposent mille projets ou votent en boucle. Le jeton relie chaque appel à une adresse confirmée : un vote reste un vote par personne, et la charge reste raisonnable.
Obtenir un jeton
- Connectez-vous avec votre adresse : un code à six chiffres vous parvient par courriel, pas de mot de passe.
- Dans Mon compte, créez un jeton. Il s'affiche une seule fois ; nous n'en gardons qu'une empreinte.
- Envoyez-le à chaque requête :
Authorization: Bearer maub_…
Jusqu'à 5 jetons par compte, révocables à tout moment.
600 appels par heure et par compte, et
5 contributions par heure. Au-delà, la réponse est
429 avec un en-tête Retry-After. Sans jeton valable :
401.
Lecture
| Requête | Rend |
|---|---|
GET /api/moi | votre compte, pour vérifier un jeton |
GET /api/themes | les thèmes du recensement |
GET /api/projets | les projets publiés. Filtres theme, q, mis_en_avant ; tri=une|votes|recents |
GET /api/projets/{slug} | la fiche complète d'un projet |
GET /api/besoins | les besoins publics. theme, tri=soutiens|recents |
GET /api/besoins/{slug} | un besoin, son statut, ses soutiens |
GET /api/articles | les articles |
GET /api/articles/{slug} | un article, rendu en HTML |
Participer
| Requête | Effet |
|---|---|
POST /api/projets | propose un projet, publié après relecture |
PUT /api/projets/{slug}/vote | vote pour un projet. Un vote par compte : le refaire ne change rien |
DELETE /api/projets/{slug}/vote | retire votre vote |
POST /api/besoins | exprime un besoin, publié après relecture |
PUT /api/besoins/{slug}/soutien | soutient un besoin, une fois par compte |
DELETE /api/besoins/{slug}/soutien | retire votre soutien |
Exemples
export MAUB_JETON=maub_…
curl -s -H "Authorization: Bearer $MAUB_JETON" \
"https://maub.subalpine.it/api/projets?theme=biodiversite&tri=votes"
curl -s -X PUT -H "Authorization: Bearer $MAUB_JETON" \
https://maub.subalpine.it/api/projets/plantnet/vote
curl -s -X POST -H "Authorization: Bearer $MAUB_JETON" \
-H 'Content-Type: application/json' \
-d '{"titre": "Cartographier les points d’eau potable", "description": "…", "theme": "sante"}' \
https://maub.subalpine.it/api/besoins
Le schéma complet est publié au format OpenAPI :
/api/openapi.json. Les données publiées sont
réutilisables librement, en citant MAUB.