Vue d'ensemble de l'API
Découvrir l'API Syndic+ pour automatiser la gestion de votre syndicat depuis vos outils favoris.
Qu'est-ce que l'API Syndic+ ?#
Syndic+ expose ses fonctionnalités via deux protocoles complémentaires :
- Serveur MCP (Model Context Protocol) — pour les assistants IA (Claude, Cursor, Codex, etc.) et les agents
- OAuth 2.1 + JWT — pour les intégrations tierces via HTTP
Tout ce que vous faites dans l'interface peut être automatisé via l'API : créer un copropriétaire, générer un avis de cotisation, planifier une assemblée, enregistrer une tâche d'entretien.
URL de base#
| Environnement | URL |
|---|---|
| Production | https://app.syndicplus.ca/api |
| Serveur MCP | https://app.syndicplus.ca/api/mcp |
| Bac à sable / tests | https://staging.syndicplus.ca/api |
Modules disponibles#
L'API couvre 22 modules (181 outils MCP) :
| Module | Outils MCP |
|---|---|
| Copropriétaires | 4 |
| Unités | 4 |
| Chauffe-eau (Loi 141) | 4 |
| Assurances | 4 |
| Entrepreneurs | 4 |
| Assemblées | 4 |
| Projets | 4 + 15 (détails) |
| Carnet d'entretien | 13 |
| Avis de cotisation | 7 |
| Déclaration de copropriété | 9 |
| Documents (pièces jointes) | 3 |
| Demandes | 6 |
| Annonces | 4 |
| Litiges | 6 |
| Comptabilité | 13 |
| Conformité | 3 |
| Réservations d'espaces |
Voir MCP Server pour la liste complète.
Authentification#
Trois méthodes prises en charge :
- OAuth 2.1 + PKCE — recommandée pour les applications tierces, avec flux de consentement utilisateur
- Clés API (
sk_*) — générables depuis/tableau/settings/developer, simples pour les scripts - Cookie de session — pour les appels internes depuis le front-end
Voir le guide Authentification pour les détails.
Format de requête#
Toutes les API acceptent et retournent du JSON. Les dates sont au format ISO 8601 avec fuseau horaire Montréal (America/Montreal).
Exemple — Lister les copropriétaires#
curl https://app.syndicplus.ca/api/mcp \
-H "Authorization: Bearer sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_co_owners",
"arguments": {}
}
}'
Réponse#
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "[{ \"id\": \"...\", \"firstName\": \"Marie\", ... }]"
}
]
}
}
Erreurs standardisées#
Toutes les erreurs suivent le format JSON-RPC 2.0 :
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32000,
"message": "NOT_AUTHENTICATED"
}
}
Les messages d'erreur sont des codes (non traduits), à utiliser dans votre logique applicative. La traduction en langue naturelle se fait côté client.
Limites#
Voir Limites de taux pour les limites par plan.