Cette API expose, principalement en lecture, ce qui est déjà visible sur le portail citoyen de votre ville : avis, activités, plateaux, types de demande, consultations. Elle ajoute quelques opérations B2B (vérification d’abonnement, suivi de demande, lookup cadastral) et le pont d’écriture des Organismes. Le contrat complet (schémas et exemples) est publié en OpenAPI sur le portail développeur.
Toutes les requêtes se font en HTTPS ; les réponses sont en JSON encodé UTF-8. Chaque installation Hubigo expose sa propre API sur un domaine Hubigo. Une instance dédiée reçoit un domaine API équivalent, communiqué à la livraison.
URL de base https://api-core.hubigo.ca
Une clé ville n’accède qu’aux données de sa ville. Les catalogues « publics » reprennent ce qui est déjà affiché sur le portail citoyen.
Créez une clé dans Administration → Paramètres → API, puis appelez un endpoint avec l’en-tête X-API-Key.
# Avis publics actifs
GET https://api-core.hubigo.ca/public-api-notices?status=active&limit=50
X-API-Key: hbg_…
# Réponse (extrait)
{ "data": [ { "id": "…", "title": "Avis d’ébullition, secteur nord", "status": "active" } ] }Une clé API par appel, dans l’en-tête X-API-Key. Deux types de clés :
hbg_…Clé ville : toutes les familles, sauf Facturation.hbg_pk_…Clé plateforme : Facturation uniquement (sinon 403 platform_key_required).Les clés se créent et se révoquent dans Administration → Paramètres → API. Les endpoints marqués public acceptent une clé optionnelle (recommandée pour le quota et l’audit) ; les endpoints B2B et PII l’exigent.
X-API-Key: hbg_xxxxxxxxxxxxxxxxxxxx
Si un secret de signature est configuré sur votre clé, signez chaque requête avec l’en-tête X-Hubigo-Signature.
X-Hubigo-Signature: t=<unix>,v1=<hex> # v1 = HMAC-SHA256(secret, "<t>.<corps_brut>") # fenêtre de validité : 5 minutes
Chemins et paramètres en anglais (status, limit, format). Certaines ressources géographiques renvoient du GeoJSON via ?format=geojson ; les loisirs exposent un flux iCal. La lecture est la règle : les seules écritures documentées appartiennent à la famille Organismes.
Chaque endpoint porte un niveau de sensibilité, indiqué dans le contrat OpenAPI :
Pas d’export de citoyens, pas de notes internes, pas de secrets. Tous les appels sont journalisés ; des quotas s’appliquent à certaines familles (avis, facturation).
400Requête invalide · le détail nomme le champ fautif401Clé manquante, révoquée ou invalide403Clé insuffisante · p. ex. platform_key_required pour la Facturation404Ressource introuvable dans votre instance409Conflit · p. ex. plage déjà réservée429Limite atteinte · voir Retry-After{
"error": {
"code": "platform_key_required",
"message": "Cette famille exige une clé plateforme."
}
}Appliquées par clé. Un dépassement renvoie 429 avec Retry-After : prévoyez un recul exponentiel. Les familles Avis et Facturation ont des quotas plus stricts.
Avis publics, messages, catégories d’alerte, niveaux d’urgence et zones affectées.
/public-api-noticesavis publics actifs/public-api-notices/{id}détail d’un avis/public-api-communications/v1/messagesmessages publics de la ville/public-api-communications/v1/notification-categoriescatégories d’alertes actives/public-api-communications/v1/urgency-levelsniveaux d’urgence/public-api-communications/v1/notices/{id}/geojsonzones affectées (GeoJSON)Catalogue des types de demande, référentiels de formulaire, statistiques agrégées et suivi d’une demande par jeton.
/public-api-requests/v1/request-typestypes de demande actifs/public-api-requests/v1/request-types/{id}détail + schéma de champs/public-api-requests/v1/request-references/{listId}valeurs d’un référentiel/public-api-requests/v1/request-statsvolumes agrégés (sans individu)/public-api-requests/v1/request-types/{id}/helpcontenu d’aide / FAQ/public-api-requests/v1/requests/by-tracking-token/{token}suivi d’une demande · PIICatalogue d’activités, camps de jour, événements et plateaux réservables, plus un flux iCal public.
/public-api-loisirs/v1/activitiesactivités publiées/public-api-loisirs/v1/activities/{code}fiche + occurrences/public-api-loisirs/v1/day-campscamps de jour publiés/public-api-loisirs/v1/eventsévénements à venir/public-api-loisirs/v1/resourcesplateaux réservables/public-api-loisirs/v1/resources/{id}/availabilitydisponibilités · b2b/public-api-loisirs/v1/icalflux iCal publicLa seule famille en écriture : synchronisation des organismes et de leurs réservations de plateaux avec vos systèmes.
/public-api-organizations/organizationscréer ou mettre à jour (upsert)/public-api-organizations/organizations/{external_id}lire un organisme/public-api-organizations/resourcesplateaux réservables/public-api-organizations/allocationsallocations et heures consommées/public-api-organizations/reservationsréservations de l’organisme/public-api-organizations/reservationscréer une demande de réservation/public-api-organizations/reservations/{reservation_id}annuler une réservation/public-api-organizations/eventssoumettre un événement à publierConsultations publiques et résultats agrégés, lorsque la ville les publie.
/public-api-consultations/v1/consultationsconsultations publiées ou closes/public-api-consultations/v1/consultations/{id}métadonnées d’une consultation/public-api-consultations/v1/consultations/{id}/resultsrésultats agrégés (si publiés)Vérification de l’accès d’un citoyen à un service (éco-centre, bibliothèque, borne). Endpoints à données personnelles : clé requise.
/public-api-subscriptionsabonnements actifs d’un citoyen · PII/public-api-subscriptions/verifyvérifier l’accès à un service · PIISocle partagé : métadonnées de la ville, zones, lieux, sondes de disponibilité, pages légales et lookup cadastral.
/public-api-core/v1/tenantmétadonnées publiques de la ville/public-api-core/v1/zoneszones publiques (GeoJSON en option)/public-api-core/v1/tenant-locationslieux municipaux partagés/public-api-core/v1/citizens/lookuplookup cadastral par matricule · b2b/public-api-core/v1/legal/privacy-policypolitique de confidentialité publique/public-api-core/v1/pingsonde de disponibilitéUsage, limites et alertes agrégés sur l’ensemble des villes. Réservé aux clés plateforme Hubigo (hbg_pk_…).
/public-api-billing/v1/tenantsvilles de la plateforme/public-api-billing/v1/usageusage agrégé/public-api-billing/v1/tenants/{id}/usageusage d’une ville/public-api-billing/v1/tenants/{id}/limitslimites d’une ville/public-api-billing/v1/alertsalertes d’usage/public-api-billing/v1/tenants/{id}/modulesmodules actifs d’une villeSurface complète, paramètres, schémas JSON et exemples exécutables : contrat OpenAPI sur le portail développeur.