Hubigo Documentation API publique État des services Soutien ← Retour au site

Référence de l’API publique Hubigo

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.

Introduction

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.

Démarrage rapide

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

Authentification

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

Signature HMAC (optionnelle)

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

Conventions et formats

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.

Sensibilité et sécurité

Chaque endpoint porte un niveau de sensibilité, indiqué dans le contrat OpenAPI :

publicDéjà visible sur le portail citoyen : clé optionnelle.
b2bRéservé aux intégrateurs autorisés : clé requise.
piiDonnées personnelles, sur endpoints dédiés seulement : clé requise.

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).

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 votre 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 débit

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.

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 vos systèmes.

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

Surface complète, paramètres, schémas JSON et exemples exécutables : contrat OpenAPI sur le portail développeur.