Hubigo — accueil Guides Hubigo Référence API Vérifier la disponibilité Obtenir de l’aide ← Revenir au site Hubigo

Référence de l’API publique Hubigo

Cette référence aide l’équipe TI de la municipalité à déterminer quelles données municipales peuvent être lues et quelles opérations exigent une autorisation. L’API donne surtout accès aux contenus publiés sur le portail citoyen. Certaines ressources intersystèmes, dites B2B, et certaines données personnelles ont des règles d’accès distinctes. Les schémas complets figurent dans le contrat OpenAPI, sur le portail technique.

Fonctionnement général

Les requêtes sont envoyées en HTTPS. L’API répond en JSON encodé en UTF-8. Chaque installation Hubigo utilise un domaine d’API qui lui est associé; l’adresse d’une instance dédiée est communiquée lors de sa mise en service.

URL de base
https://api-core.hubigo.ca

Une clé municipale limite l’accès aux données de la municipalité correspondante. Une ressource dite « publique » contient des données destinées au portail citoyen.

Premier appel

1. Dans Administration → Paramètres → API, créer une clé adaptée au système à connecter. 2. La conserver dans un gestionnaire de secrets. 3. L’envoyer dans l’en-tête X-API-Key. 4. Vérifier le code HTTP et le corps JSON retournés.

# 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" } ] }

Gestion des clés

Chaque appel transmet une clé dans l’en-tête X-API-Key. Le type est choisi selon la portée nécessaire :

hbg_…Clé municipale : accès aux domaines autorisés, à l’exception de la facturation de plateforme.
hbg_pk_…Clé de plateforme : accès réservé à la facturation; une autre clé reçoit 403 platform_key_required.

Les clés sont créées et révoquées dans Administration → Paramètres → API. Une ressource public peut accepter un appel sans clé; une clé permet toutefois d’associer l’usage à l’intégration. Les ressources B2B et PII exigent une clé.

X-API-Key: hbg_xxxxxxxxxxxxxxxxxxxx

Signature HMAC des requêtes

HMAC permet au serveur de vérifier qu’une requête n’a pas été modifiée. Si un secret de signature est associé à la clé, la signature de chaque requête est calculée et transmise dans X-Hubigo-Signature.

X-Hubigo-Signature: t=<unix>,v1=<hex>
# v1 = HMAC-SHA256(secret, "<t>.<corps_brut>")
# fenêtre de validité : 5 minutes

Formats de données

Les chemins et paramètres sont en anglais, par exemple status, limit et format. Le format GeoJSON est demandé avec ?format=geojson pour les ressources géographiques compatibles. Le domaine des loisirs propose aussi un flux iCal. Les opérations d’écriture documentées ci-dessous se trouvent dans le domaine Organismes.

Niveaux d’accès

Chaque point d’accès indique dans le contrat OpenAPI le niveau de données qu’il expose :

publicContenu destiné au portail citoyen; la clé peut être facultative.
b2bÉchange entre systèmes autorisés; une clé est requise.
piiRenseignements personnels sur une ressource dédiée; une clé est requise.

Cette API ne documente ni export général des citoyens, ni notes internes, ni secrets. Les appels peuvent être journalisés et certaines ressources, notamment les avis et la facturation, sont soumises à des quotas.

Traitement des erreurs

400Requête invalide · le détail nomme le champ fautif
401Clé manquante, révoquée ou invalide
403Clé insuffisante · p. ex. platform_key_required pour la Facturation
404Ressource introuvable dans l’instance
409Conflit · p. ex. plage déjà réservée
429Limite atteinte · voir Retry-After
{
  "error": {
    "code": "platform_key_required",
    "message": "Cette famille exige une clé plateforme."
  }
}

Limites de requêtes

Les limites sont appliquées par clé. Après une réponse 429, attendre la durée indiquée par Retry-After, puis espacer progressivement les nouvelles tentatives. Les avis et la facturation peuvent avoir des seuils plus restrictifs.

Communications

Avis publics, messages, catégories d’alerte, niveaux d’urgence et zones affectées.

GET/public-api-noticesavis publics actifs
GET/public-api-notices/{id}détail d’un avis
GET/public-api-communications/v1/messagesmessages publics de la ville
GET/public-api-communications/v1/notification-categoriescatégories d’alertes actives
GET/public-api-communications/v1/urgency-levelsniveaux d’urgence
GET/public-api-communications/v1/notices/{id}/geojsonzones affectées (GeoJSON)

Services aux citoyens

Catalogue des types de demande, référentiels de formulaire, statistiques agrégées et suivi d’une demande par jeton.

GET/public-api-requests/v1/request-typestypes de demande actifs
GET/public-api-requests/v1/request-types/{id}détail + schéma de champs
GET/public-api-requests/v1/request-references/{listId}valeurs d’un référentiel
GET/public-api-requests/v1/request-statsvolumes agrégés (sans individu)
GET/public-api-requests/v1/request-types/{id}/helpcontenu d’aide / FAQ
GET/public-api-requests/v1/requests/by-tracking-token/{token}suivi d’une demande · PII

Loisirs

Catalogue d’activités, camps de jour, événements et plateaux réservables, plus un flux iCal public.

GET/public-api-loisirs/v1/activitiesactivités publiées
GET/public-api-loisirs/v1/activities/{code}fiche + occurrences
GET/public-api-loisirs/v1/day-campscamps de jour publiés
GET/public-api-loisirs/v1/eventsévénements à venir
GET/public-api-loisirs/v1/resourcesplateaux réservables
GET/public-api-loisirs/v1/resources/{id}/availabilitydisponibilités · b2b
GET/public-api-loisirs/v1/icalflux iCal public

Organismes

La seule famille en écriture : synchronisation des organismes et de leurs réservations de plateaux avec les systèmes de la ville.

POST/public-api-organizations/organizationscréer ou mettre à jour (upsert)
GET/public-api-organizations/organizations/{external_id}lire un organisme
GET/public-api-organizations/resourcesplateaux réservables
GET/public-api-organizations/allocationsallocations et heures consommées
GET/public-api-organizations/reservationsréservations de l’organisme
POST/public-api-organizations/reservationscréer une demande de réservation
DELETE/public-api-organizations/reservations/{reservation_id}annuler une réservation
POST/public-api-organizations/eventssoumettre un événement à publier

Participation

Consultations publiques et résultats agrégés, lorsque la ville les publie.

GET/public-api-consultations/v1/consultationsconsultations publiées ou closes
GET/public-api-consultations/v1/consultations/{id}métadonnées d’une consultation
GET/public-api-consultations/v1/consultations/{id}/resultsrésultats agrégés (si publiés)

Abonnements

Vérification de l’accès d’un citoyen à un service (éco-centre, bibliothèque, borne). Endpoints à données personnelles : clé requise.

GET/public-api-subscriptionsabonnements actifs d’un citoyen · PII
GET/public-api-subscriptions/verifyvérifier l’accès à un service · PII

Administration ville

Socle partagé : métadonnées de la ville, zones, lieux, sondes de disponibilité, pages légales et lookup cadastral.

GET/public-api-core/v1/tenantmétadonnées publiques de la ville
GET/public-api-core/v1/zoneszones publiques (GeoJSON en option)
GET/public-api-core/v1/tenant-locationslieux municipaux partagés
GET/public-api-core/v1/citizens/lookuplookup cadastral par matricule · b2b
GET/public-api-core/v1/legal/privacy-policypolitique de confidentialité publique
GET/public-api-core/v1/pingsonde de disponibilité

Facturation plateforme

Usage, limites et alertes agrégés sur l’ensemble des villes. Réservé aux clés plateforme Hubigo (hbg_pk_…).

GET/public-api-billing/v1/tenantsvilles de la plateforme
GET/public-api-billing/v1/usageusage agrégé
GET/public-api-billing/v1/tenants/{id}/usageusage d’une ville
GET/public-api-billing/v1/tenants/{id}/limitslimites d’une ville
GET/public-api-billing/v1/alertsalertes d’usage
GET/public-api-billing/v1/tenants/{id}/modulesmodules actifs d’une ville

La validation d’une intégration s’appuie sur les paramètres, les schémas JSON et les exemples du contrat OpenAPI, dans le portail technique.