Documentation API

3 endpoints, exposés uniquement par le serveur optionnel (allcars_db.cli serve, voir recherche avancée). La consultation simple n'en dépend pas : ses données viennent des fichiers statiques dist/catalogue.json et dist/technical_specs.json.gz.

GET/api/meta

Bornes et valeurs disponibles pour construire les filtres : marques ayant des données techniques, carburants, carrosseries, plage d'années.

Réponse

{
  "brands": ["AC", "Abarth", "..."],
  "fuel_types": ["Petrol (Gasoline)", "Diesel", "Electric", "..."],
  "body_types": ["Coupé", "Berline", "Cabriolet", "..."],
  "seats": [2, 4, 5, 7, 9],
  "year_min": 1928,
  "year_max": 2025
}
GET/api/versions

Recherche multi-critères sur les versions techniques. Tous les paramètres sont optionnels et combinés en ET.

ParamètreTypeEffet
brandtexteMarque, correspondance exacte
source_urltexteIdentifiant stable d'une version précise (correspondance exacte, colonne UNIQUE en base) - voir note ci-dessous
modeltexteModèle, contient
versiontexteLibellé de version, contient
fuel_typetexteCarburant, correspondance exacte
body_typetexteCarrosserie, correspondance exacte
seatsentierNombre de places, correspondance exacte
year_min / year_maxentierPlage d'années de génération
weight_min / weight_maxnombrePoids à vide (kg)
power_min / power_maxnombrePuissance (ch)
power_to_weight_min / power_to_weight_maxnombreRapport ch/tonne
top_speed_min / top_speed_maxnombreVitesse max (km/h)
acceleration_0_100_maxnombre0-100 km/h max (s)
co2_maxnombreCO₂ WLTP max (g/km)
sorttexteChamp de tri (voir en-têtes cliquables de la recherche avancée) ; 400 si inconnu
orderasc | descSens du tri, défaut asc
limitentierDéfaut 200, plafonné à 1000

source_url est présent dans chaque version renvoyée (voir "Réponse" ci-dessous) et reste stable d'un scrape à l'autre - un consommateur externe (ex. Custos) qui l'a stocké au moment d'un premier choix peut ensuite le repasser seul en filtre (GET /api/versions?source_url=...) pour retrouver exactement cette version plus tard, sans avoir à re-matcher par marque/modèle/génération/version (fragile si un libellé change).

Réponse

{
  "count": 200,
  "truncated": true,
  "summary": { "version_count": 6953, "brand_count": 144, "model_count": 890, "year_min": 1928, "year_max": 2024 },
  "versions": [ { "brand": "AC", "model": "Cobra", "power_hp": 370, "source_url": "https://www.auto-data.net/en/...", "... ": "..." } ]
}

Le tri porte sur l'ensemble des résultats avant troncature à limit, pas sur la seule page renvoyée.

GET/api/versions/export-full

Même filtres/tri/limite que /api/versions, mais renvoie un CSV "long" (une ligne par champ technique brut par version) au lieu du JSON — l'export complet, données brutes incluses.

Colonnes

brand, model, generation_label, generation_start_year, version_label, source_url, section, label, value