API publique · bêta en lecture seule · T3 2026 · clés d'accès anticipé disponibles maintenant

Bâtir sur le graphe STIM du Manitoba.

L'API publique de CommunATI est une interface REST + JSON en lecture seule sur le répertoire des organisations, programmes, événements et projets publics. Utilisez-la pour intégrer les fiches STIM du Manitoba sur un portail de division scolaire, alimenter une application de découverte régionale, mener des recherches sur les schémas d'accès, ou nourrir vos propres outils pédagogiques. Gratuite pour les usages non commerciaux avec attribution; palier payant pour les intégrateurs à fort volume.

Demander une clé d'accès anticipé Voir les points de terminaison

Feuille de route

Trois phases, dates publiques.

L'API est livrée par étapes pour éviter de promettre trop et livrer trop peu. Chaque phase a une date publique ferme; si nous la manquons, la page est mise à jour et la liste d'accès anticipé est avisée avant tout le monde.

T3 2026 · Bêta

Répertoire en lecture seule

Organisations, programmes, événements. JSON uniquement. Authentification par clé d'API statique. 60 requêtes / minute / clé. Points de terminaison bêta versionnés sous /v1beta.

T4 2026 · Stable

v1 + projets

Espace de noms stable /v1, point de terminaison de la galerie de projets, géorecherche, filtres par tranche d'âge, ETags + Last-Modified, schéma OpenAPI 3.1 publié.

T1 2027 · Écriture

OAuth 2.0 + webhooks

OAuth 2.0 avec jetons portée par organisation. Points de terminaison en écriture pour que les organisations membres gèrent leurs propres fiches par programmation. Webhooks sortants pour les nouveaux programmes et les changements d'événements.

T2 2027 · Fédéré

Pilote interprovincial

Recherche fédérée entre les répertoires compatibles CommunATI dans d'autres provinces (premières ententes avec les coordonnateurs de la Saskatchewan et du nord-ouest de l'Ontario). Portée pilote; pas GA.

Points de terminaison (prévus)

Ressources en lecture seule au lancement.

URL de base : https://api.communati.ca/v1beta (bêta) → https://api.communati.ca/v1 (stable). Tous les points de terminaison renvoient application/json; application/geo+json est disponible sur les points géo via l'en-tête Accept.

GET/organizations

Liste les organisations approuvées. Filtres : region, type, indigenous_led, has_active_programs. Pagination par ?cursor. Renvoie le nom, le slug, la région, lat/long, URL du logo, sommaire, et le nombre de programmes de l'organisation.

Auth : tout palier · Taux : 60/min bêta, 600/min stable · ETag supporté

GET/organizations/{slug}

Vue détaillée d'une organisation. Inclut la description complète, les coordonnées, l'URL d'inscription, la liste des programmes (sommaire) et les événements affichés.

Auth : tout palier · Taux : 60/min bêta · Cache-Control : public, max-age=300

GET/programs

Liste les programmes pour toutes les organisations. Filtres : age_band (moins de 5 ans, 5-7, 8-10, 11-13, 14-16, 17+), type (robotique, code, sciences, fabrication, IA, etc.), region, format (présentiel, virtuel, hybride), distance_km + near (lat,long). Renvoie le sommaire du programme et le slug de l'organisation parente.

Auth : tout palier · Taux : 60/min bêta · Supporte ?lang=fr pour les descriptions traduites quand disponibles

GET/programs/{slug}

Vue détaillée d'un programme. Inclut l'horaire, le lieu, la tranche d'âge, le nom des animateurs (si public), le coût, le lien d'inscription, et le nombre de programmes connexes de la même organisation.

Auth : tout palier · Taux : 60/min bêta

GET/events

Événements publics à venir, toutes organisations confondues. Filtres : start_after, start_before, region, age_band, category. Supporte format=icalendar pour un flux .ics à la place du JSON.

Auth : tout palier · Taux : 60/min bêta · Le format iCalendar reflète events.ics

GET/projects

Galerie de projets publics — projets soumis par les jeunes, approuvés par modération, provenant des organisations membres. Renvoie le titre, le résumé, l'URL de l'image, l'organisation contributrice, les étiquettes et la date de soumission. Aucune donnée personnelle sur les jeunes.

Auth : tout palier · Taux : 60/min bêta · Point de terminaison T4 2026, restreint avant cette date

GET/sponsors

Liste des commanditaires actuels — paliers Fondateur, Réseau et Pilier — avec l'URL du logo, le palier, et (lorsque le commanditaire l'autorise) une description publique. Exclut tout commanditaire qui refuse la mention publique.

Auth : tout palier · Taux : 60/min bêta · Point de terminaison T1 2027

POST/organizations/{slug}/programs

Crée ou met à jour un programme appartenant à votre organisation. Requiert un jeton d'accès OAuth 2.0 avec la portée programs:write, délivré à un administrateur d'organisation vérifié.

Auth : OAuth 2.0 (portée organisation) · Taux : 30/min · Point de terminaison T1 2027

Authentification

Clés statiques en bêta, OAuth 2.0 en 2027.

Les clés bêta sont statiques, à portée par développeur ou par organisation, et renouvelables sur demande. L'accès en écriture en production utilise OAuth 2.0 avec des jetons à portée organisation (l'administrateur autorise l'intégration depuis le tableau de bord de l'organisation).

# Bêta : clé d'API statique dans l'en-tête Authorization
curl https://api.communati.ca/v1beta/programs?age_band=8-10&region=winnipeg \
  -H "Authorization: Bearer cmnt_pk_live_xxxxxxxxxxxxxxxxxxxxxx" \
  -H "Accept: application/json"

# Stable : OAuth 2.0 client_credentials (serveur à serveur)
curl https://api.communati.ca/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=cmnt_ci_xxxxxxxxxxxx \
  -d client_secret=cmnt_cs_xxxxxxxxxxxx \
  -d scope=programs:read events:read

Les jetons sont des JWT signés en ES256. Les clés publiques sont publiées à /.well-known/jwks.json dès la mise en service du point de terminaison de production. Durée de vie par défaut : une heure pour client_credentials, douze heures pour les jetons OAuth 2.0 à portée utilisateur.

Limites de taux + usage équitable

Prudent en bêta, généreux en stable.

Les limites bêta sont à 60 requêtes par minute par clé avec bursting jusqu'à 120 RPM. Les limites stables passent à 600 RPM en palier gratuit et 6 000 RPM en palier payant. Le palier payant ajoute aussi le soutien prioritaire, un SLA 99,5 % sur la lecture, des plans sur mesure pour les divisions scolaires et la garantie de livraison des webhooks.

Toutes les limites sont indicatives durant la bêta — dépasser renvoie HTTP 429 avec un en-tête Retry-After au lieu de bloquer la clé. Un abus soutenu, le moissonnage ou tout comportement qui dégrade le service pour les autres entraîne la révocation. Les conditions d'utilisation complètes vivront à /developers/terms à la mise en service.

Schéma + modèle de données

OpenAPI 3.1 en stable, JSON Schema en bêta.

La bêta est livrée avec des fragments JSON Schema par point de terminaison à /v1beta/_schema/{resource}.json. Le stable publie un seul openapi.yaml couvrant chaque point public, plus des bibliothèques client générées pour TypeScript, Python et Swift. Le schéma est versionné indépendamment du runtime; l'ajout de champs non bloquants ne fait pas évoluer la version majeure.

Les champs des ressources de base utilisent snake_case. Les horodatages sont en ISO 8601 UTC. Lat/long en WGS 84 décimal. La devise est CAD uniquement. Les codes de langue suivent BCP 47 (en-CA, fr-CA).

Cas d'usage

Ce que les gens construisent.

Partenaires d'accès anticipé confirmés — constructions concrètes que des organisations nous ont annoncées et que nous avons accepté de soutenir :

Si votre projet figure dans cette liste et que nous ne vous avons pas encore contacté, écrivez-nous — nous accélérerons votre clé d'accès anticipé.

Accès anticipé

Obtenir une clé bêta.

Les clés bêta sont délivrées individuellement, pas par formulaire web. Deux raisons : nous voulons savoir qui construit pour aligner la surface sur de vrais usages, et nous voulons signaler les attentes LPRPDE et LRMP Manitoba à tout intégrateur dont l'outil touche aux enfants ou aux familles.

Écrivez à developers@communati.ca avec :

Réponse en moins de 48 heures généralement. Les clés approuvées arrivent avec un guide de démarrage d'une page, un point de terminaison bac à sable pré-rempli des cinq organisations de démonstration, et une invitation Slack au petit canal des premiers développeurs où les changements d'API sont prévisualisés.

Questions ouvertes

Où votre rétroaction façonne la surface.

Quelques décisions de conception API encore ouvertes. Si vous avez une préférence, écrivez-nous — la décision est ouverte jusqu'à la version stable :

Rester informé du déploiement.

Le journal des modifications de l'API sera publié à /developers/changelog à la bêta. D'ici là, écrivez-nous et nous vous ajouterons à la liste des mises à jour développeurs — courte, peu fréquente, sans marketing.

Rejoindre la liste de mises à jour Nous joindre