# OpenStreetMap (découverte) — connecteur `osm` _Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:06 — ne pas éditer à la main, régénérer._ **État : actif** · Palier (tier) : 4 · Backend : direct · Restos actifs : 13969/13969 ## Description de la source Connecteur de DÉCOUVERTE OpenStreetMap (Palier 4) — TOUS les établissements où l'on mange au Québec : restaurants, fast-foods, cafés, bars/pubs, crèmeries, foires alimentaires, boulangeries- pâtisseries. C'est la couche « exhaustivité » de Resto·Ka : des milliers de fiches (nom, adresse, GPS, cuisine, horaires, contact), SANS menu — les connecteurs de menus (UEAT…) viennent s'y greffer par déduplication. Mode d'extraction : API Overpass (miroirs publics, requêtes par type d'établissement, aire administrative « Québec » 3600061549). Base légale : données © contributeurs OpenStreetMap, licence ODbL — attribution affichée sur le site (pages Sources et pied de page). Politesse : 1 requête par type, timeout large, miroirs en rotation. Contexte de prix produit : AUCUN (pas de menu — fiche de découverte). - **Plateforme** : overpass · **Site** : https://www.openstreetmap.org - **Extraction (registre)** : API Overpass (aire administrative Québec), nœuds + chemins : restaurant, fast_food, cafe, bar, pub, ice_cream, food_court, bakery, pastry — nom, adresse, GPS, cuisine, horaires, contact. Pas de menus (couche d'exhaustivité, les connecteurs de menus s'y greffent par déduplication). - **Contexte de prix** : — - **Module** : `restoka/connectors/osm.py` — `OsmConnector` ## Accès - **Type d'accès** : API Overpass (OpenStreetMap) - **Endpoint de base** : https://overpass.kumi.systems/api/interpreter - **URLs du module** : https://overpass.kumi.systems/api/interpreter · https://overpass-api.de/api/interpreter · https://overpass.private.coffee/api/interpreter · https://overpass.osm.jp/api/interpreter - **Pagination** : itération sur 4 racines (constante `MIRRORS`) - **Backend anti-bot / rendu** : requests direct (session UA RestoKaBot, throttling poli) - **Politesse** : 3.0 s entre requêtes, timeout 240 s, UA `RestoKaBot/1.0 (+https://www.resto-ka.com/bot)` - **Authentification** : aucune — accès public/anonyme ## Champs récupérés → schéma cible Le connecteur alimente la table `restaurants` (et `menus` le cas échéant). Complétude mesurée en SQL sur les 13969 fiches actives ; exemple tiré d'une ligne réelle de la BD. | Colonne `restaurants` | Contenu | Renseignée (actives) | Exemple réel | |---|---|---|---| | `name` | Nom de l'établissement | 100 % | Piazza Romana | | `chain` | Chaîne / bannière | 21 % | — | | `cuisines` | Cuisines (JSON, taxonomie §6.1) | 100 % | ["autre"] | | `establishment_type` | Type d'établissement | 100 % | restaurant | | `price_range` | Fourchette de prix | 0 % | — | | `address` | Adresse civique | 53 % | — | | `city` | Ville | 34 % | — | | `region` | Région administrative | 100 % | Montréal | | `postal_code` | Code postal | 28 % | — | | `lat` | GPS (lat/lng) | 100 % | 45.4287676 | | `phone` | Téléphone | 25 % | — | | `website` | Site web | 24 % | — | | `hours` | Horaires structurés (JSON) | 21 % | {} | | `services` | Services (JSON) | 100 % | ["salle"] | | `dietary_options` | Options alimentaires (JSON) | 5 % | [] | | `images` | Photos (JSON) | 0 % | — | | `url` | URL de la fiche source | 100 % | https://www.openstreetmap.org/node/112637139 | **Menus** : 13 menus rattachés (728 items, 1 contexte(s) de prix, dernière capture 2026-08-18T10:05:33Z) — table `menus` (sections → items → options, prix CAD). ## Fréquence & budget - **Cadence déclarée (registre)** : mensuel - **Cadence observée** (médiane sync_log) : ≈ 30 min - **Dernier passage OK** : 2026-08-18 03:12 — 8616 trouvées, +20 / ~1687 / -0 ## Volumétrie & complétude - **Fiches en BD** : 13969 au total, **13969 actives** - **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18 - **Complétude clé (actives)** : GPS 100 % · adresse 53 % · cuisines 100 % · horaires 21 % · site web 24 % - **Runs journalisés (60 derniers)** : 6, dont 0 en erreur ## Erreurs connues & dépannage Aucune erreur dans les 60 derniers runs journalisés. Rejouer la source seule : `python3 run.py sync osm` · vérifier `sync_log` (`SELECT * FROM sync_log WHERE source='osm' ORDER BY ts DESC LIMIT 5;`). ## Licence, attribution & conditions - **Cadre d'accès (registre, `acces_legal`)** : Données © contributeurs OpenStreetMap, licence ODbL — attribution affichée (pages Sources et pied de page). API Overpass publique, requêtes espacées, miroirs en rotation. - **Licence** : ODbL — « Données © contributeurs OpenStreetMap » ; attribution affichée sur les pages Sources et le pied de page de Resto-Ka. - Retrait sur demande : contact@spboucher.ai. ## Historique - 2026-08-17 — premières fiches de la source ingérées dans la BD. - 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par `scripts/gen_connector_docs.py`).