L'intégralité des données VigiCité est exposée via une API JSON publique, sans inscription. Voici comment l'utiliser en 5 minutes.
Pourquoi une API ?
VigiCité agrège des dizaines de bases publiques officielles (HATVP, DECP, SIRENE, RNA, JO, OFGL, votes Assemblée). L'API permet aux journalistes, chercheurs, ONG, et citoyens de récupérer ces croisements directement, sans avoir à reconstruire le pipeline.
Endpoints principaux
Recherche multi-entités
GET https://vigicite.org/api/v1/search?q=colas&limit=10
Cherche dans les élus, entreprises, et associations en une seule requête.
Détail d'un élu
GET https://vigicite.org/api/v1/elus/{id}
Retourne fonction, mandats, scores, croisements, marchés liés.
Tous les élus d'un département
GET https://vigicite.org/api/v1/departement/59/elus?per_page=50
Bulk fetch
GET https://vigicite.org/api/v1/elus/bulk?ids=1,2,3,4,5
Jusqu'à 50 fiches en une seule requête.
Graphe d'un département (D3.js ready)
GET https://vigicite.org/api/departements/59/graphe.json
Format {nodes, links, stats} directement consommable par D3.js, vis.js, Cytoscape.
Export CSV/JSON complets
GET https://vigicite.org/api/v1/exports/elus.csv
GET https://vigicite.org/api/v1/exports/marches.json
Démo en 30 lignes (Python, zéro dépendance)
import json, urllib.request
API = "https://vigicite.org/api/v1"
def get(url, **params):
if params:
from urllib.parse import urlencode
url = f"{url}?{urlencode(params)}"
with urllib.request.urlopen(url, timeout=30) as r:
return json.loads(r.read())
stats = get(f"{API}/stats")
print(stats)
elus = get(f"{API}/departement/59/elus", per_page=5)
for e in elus["items"]:
print(e["nom"], e.get("score_composite"))
Rate limits
- Anonyme : 60 requêtes/minute par IP.
- Avec clé API (gratuite, sur demande email) : 600 requêtes/minute.
Les headers X-RateLimit-* sont retournés sur chaque requête.
Documentation interactive
Swagger UI : /api/docs
ReDoc : /api/redoc
Page de présentation : /api/documentation
Licence des données
Les données sources sont publiques (Licence Ouverte 2.0 ou équivalent). Les croisements et scores produits par VigiCité sont également libres de réutilisation. Mention recommandée : "Source : VigiCité, à partir de données publiques."