L'API REST vous permet d'integrer Expert Copro Gestion a vos outils existants : logiciels de comptabilite, extensions navigateur, scripts d'automatisation, ou toute application tierce.
L'API est organisee autour de ressources REST. Elle accepte les corps de requete en JSON, retourne des reponses JSON et utilise les codes de statut HTTP standards.
# Lister vos taches curl -H "X-API-Key: ecg_votre_cle_api" \ https://www.expert-copro-gestion.fr/api/client/v1/tasks.php
{
"success": true,
"data": [
{
"id": 12,
"title": "Verifier etancheite toiture bat A",
"status": "todo",
"priority": "high",
"due_date": "2026-04-10"
}
],
"meta": { "total": 47, "page": 1 }
}
L'API utilise des cles API pour authentifier les requetes. Chaque cle est liee a un utilisateur et une organisation.
Connectez-vous a votre espace client et allez dans Parametres > Cles API.
Generez une cle avec les permissions souhaitees : read (lecture seule) ou read + write (lecture/ecriture).
Ajoutez le header X-API-Key a chaque requete HTTP.
X-API-Key: ecg_a1b2c3d4e5f6...
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Cle API invalide ou expiree."
}
}
L'API applique un rate limiting pour garantir la stabilite du service.
429 Too Many Requests. Attendez quelques secondes avant de retenter.HTTP/1.1 429 Too Many Requests Content-Type: application/json Retry-After: 60
Toutes les reponses suivent le meme format. En cas d'erreur, success vaut false et un objet error decrit le probleme.
200 Succes201 Ressource creee400 Requete invalide401 Non authentifie403 Permission insuffisante404 Ressource introuvable422 Erreur de validation429 Trop de requetes500 Erreur serveur{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Tache introuvable."
}
}
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Champs invalides.",
"fields": {
"title": "Titre requis.",
"due_date": "Format de date invalide."
}
}
}
Les endpoints de liste retournent des resultats pagines. Utilisez les parametres page et per_page.
| Parametre | Defaut | Description |
|---|---|---|
page | 1 | Numero de page |
per_page | 20 | Resultats par page (max 100) |
{
"success": true,
"data": [ /* ... resultats ... */ ],
"meta": {
"page": 2,
"per_page": 20,
"total": 47,
"pages": 3
}
}
Retourne la liste paginee des taches de votre organisation avec filtres optionnels.
| Parametre | Type | Description | |
|---|---|---|---|
status | string | optionnel | todo, in_progress, done, cancelled. Virgule pour multi. |
priority | string | optionnel | low, medium, high |
assigned_to_user_id | integer | optionnel | ID du membre assigne |
overdue | boolean | optionnel | 1 = taches en retard |
q | string | optionnel | Recherche texte (titre + description) |
sort | string | optionnel | created_at, due_date, priority, status, title |
order | string | optionnel | asc ou desc (defaut) |
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/tasks.php?status=todo,in_progress&sort=due_date&order=asc"
{
"success": true,
"data": [
{
"id": 12,
"title": "Verifier etancheite toiture bat A",
"description": "Infiltrations au 3e etage",
"status": "todo",
"priority": "high",
"assigned_to": "Duclim SARL",
"assigned_to_user_id": 8,
"assignee_name": "Nicolas Lambert",
"property_name": "Residence Les Pins",
"due_date": "2026-04-10",
"document_count": 2,
"created_at": "2026-04-01 09:00:00"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 47,
"pages": 3
}
}
Retourne le detail complet d'une tache avec ses documents attaches.
| Parametre | Type | Description | |
|---|---|---|---|
id | integer | requis | ID de la tache |
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/tasks.php?id=12"
{
"success": true,
"data": {
"id": 12,
"title": "Verifier etancheite toiture bat A",
"description": "Infiltrations au 3e etage",
"status": "todo",
"priority": "high",
"due_date": "2026-04-10",
"creator_name": "Sophie Martin",
"assignee_name": "Nicolas Lambert",
"property_name": "Residence Les Pins",
"documents": [
{
"id": 1,
"original_name": "devis-toiture.pdf",
"mime_type": "application/pdf",
"size": 245000
}
]
}
}
Retourne les compteurs par statut et les statistiques globales.
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/tasks.php?stats=1"
{
"success": true,
"data": {
"total": 47,
"todo": 18,
"in_progress": 12,
"done": 14,
"cancelled": 3,
"overdue": 5,
"high_priority": 8
}
}
Cree une nouvelle tache. Necessite la permission write.
| Champ | Type | Description | |
|---|---|---|---|
title | string | requis | Titre (max 255 car.) |
description | string | optionnel | Description detaillee |
status | string | optionnel | todo (defaut), in_progress, done, cancelled |
priority | string | optionnel | low, medium (defaut), high |
assigned_to_user_id | integer | optionnel | ID du membre assigne |
assigned_to | string | optionnel | Prestataire externe (texte libre) |
property_id | integer | optionnel | ID du bien concerne |
due_date | string | optionnel | Echeance (YYYY-MM-DD) |
curl -X POST \ -H "X-API-Key: ecg_votre_cle" \ -H "Content-Type: application/json" \ -d '{ "title": "Verifier etancheite toiture", "priority": "high", "assigned_to_user_id": 8, "due_date": "2026-04-15" }' \ https://www.expert-copro-gestion.fr/api/client/v1/tasks.php
{
"success": true,
"data": {
"id": 48,
"title": "Verifier etancheite toiture",
"status": "todo",
"priority": "high",
"assigned_to_user_id": 8,
"assignee_name": "Nicolas Lambert",
"due_date": "2026-04-15",
"created_at": "2026-04-08 14:30:00"
}
}
Met a jour une tache existante. Envoyez uniquement les champs a modifier. Permission write requise.
curl -X PUT \ -H "X-API-Key: ecg_votre_cle" \ -H "Content-Type: application/json" \ -d '{ "status": "done" }' \ "https://www.expert-copro-gestion.fr/api/client/v1/tasks.php?id=48"
{
"success": true,
"data": {
"id": 48,
"status": "done",
"completed_at": "2026-04-08 16:00:00",
// ... tous les champs
}
}
Supprime definitivement une tache et tous ses documents. Permission write requise.
curl -X DELETE \ -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/tasks.php?id=48"
{
"success": true,
"data": {
"deleted": 48
}
}
Retourne la liste des documents attaches a une tache (PDF, images, Word, Excel).
PDF, JPEG, PNG, GIF, WebP, Word (.doc, .docx), Excel (.xls, .xlsx). Maximum 20 documents par tache, 10 Mo par fichier.
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/tasks.php?id=12&documents=1"
{
"success": true,
"data": [
{
"id": 1,
"original_name": "devis-toiture.pdf",
"mime_type": "application/pdf",
"size": 245000,
"uploaded_by_name": "Julie Moreau",
"created_at": "2026-04-01 14:30:00"
}
]
}
Retourne la liste paginee des biens et immeubles de votre organisation.
| Parametre | Type | Description | |
|---|---|---|---|
page | integer | optionnel | Page (defaut: 1) |
per_page | integer | optionnel | Par page (defaut: 20, max: 100) |
curl -H "X-API-Key: ecg_votre_cle" \
https://www.expert-copro-gestion.fr/api/client/v1/properties.php
{
"success": true,
"data": [
{
"id": 1,
"name": "Residence Les Pins",
"address": "12 rue des Pins, 75016 Paris",
"lots_count": 45,
"created_at": "2026-01-15 10:00:00"
}
],
"meta": { "page": 1, "total": 3 }
}
Retourne le detail complet d'un bien ou immeuble.
| Champ | Type | Description |
|---|---|---|
id | integer | Identifiant unique |
name | string | Nom du bien |
address | string | Adresse complete |
lots_count | integer | Nombre de lots |
notes | string | Notes internes |
created_at | datetime | Date de creation |
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/properties.php?id=1"
{
"success": true,
"data": {
"id": 1,
"name": "Residence Les Pins",
"address": "12 rue des Pins, 75016 Paris",
"lots_count": 45,
"notes": "Gardien: M. Fernandez",
"created_at": "2026-01-15 10:00:00"
}
}
Met a jour en lot les references internes de vos proprietes. Permet d'associer votre numerotation interne aux numeros d'immatriculation RNCOP.
| Champ | Type | Description | |
|---|---|---|---|
bindings | array | requis | Tableau d'objets de liaison (max 500) |
bindings[].numero_immatriculation | string | requis | Numero d'immatriculation RNCOP de la propriete |
bindings[].internal_ref | string | requis | Reference interne a associer |
internal_ref est suivi dans user_modified_fields pour eviter l'ecrasement lors des enrichissements RNCOP ulterieurs.curl -X POST \ -H "X-API-Key: ecg_votre_cle" \ -H "Content-Type: application/json" \ -d '{ "bindings": [ { "numero_immatriculation": "ABC1234567", "internal_ref": "COPRO-001" }, { "numero_immatriculation": "DEF7654321", "internal_ref": "COPRO-002" } ] }' \ "https://www.expert-copro-gestion.fr/api/client/v1/properties.php?action=bind-refs"
{
"success": true,
"data": {
"updated": 2,
"errors": [],
"total_errors": 0
}
}
Recherche dans le Registre National des Coproprietes (RNCOP) toutes les proprietes gerees par un syndic identifie par son numero SIREN.
Utilise le filtre siret_representant_legal__contains sur la base data.gouv.fr pour retrouver toutes les coproprietes associees au SIREN.
| Parametre | Type | Description | |
|---|---|---|---|
siren | string | requis | Numero SIREN du syndic (9 chiffres exactement) |
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/v1/rncop.php?siren=123456789"
{
"success": true,
"data": [
{
"numero_immatriculation": "ABC1234567",
"nom_copropriete": "Residence Les Pins",
"adresse": "12 rue des Pins 75016 Paris",
"nombre_lots": 45,
"siret_representant_legal": "12345678900012"
}
]
}
Retourne la liste des assemblees generales (AG) de votre organisation, avec filtres optionnels et pagination.
| Parametre | Type | Description | |
|---|---|---|---|
status | string | optionnel | planifiee, en_cours, ag_tenue, cloturee, annulee. Virgule pour multi. |
type | string | optionnel | ordinaire ou extraordinaire |
property_id | integer | optionnel | Filtre sur un immeuble precis |
q | string | optionnel | Recherche texte (nom de l'immeuble) |
page | integer | optionnel | Numero de page (defaut 1) |
per_page | integer | optionnel | Resultats par page (10 a 100, defaut 20) |
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php?status=planifiee,en_cours&type=ordinaire"
{
"success": true,
"data": {
"ag": [
{
"id": 42,
"property_id": 7,
"property_name": "Residence Les Pins",
"type": "ordinaire",
"status": "planifiee",
"date_ag": "2026-09-15",
"exercice": "2025",
"gestionnaire_name": "Sophie Martin"
}
]
}
}
Retourne le detail d'une AG : ses informations, les taches de son retroplanning (pivot_tasks), la fiche recapitulative (recap) et les documents attaches.
| Parametre | Type | Description | |
|---|---|---|---|
id | integer | requis | ID de l'AG (dans le chemin) |
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/42"
{
"success": true,
"data": {
"ag": {
"id": 42,
"property_name": "Residence Les Pins",
"type": "ordinaire",
"status": "planifiee",
"date_ag": "2026-09-15"
},
"pivot_tasks": [
{ "id": 310, "title": "Verification des comptes", "due_date": "2026-07-15", "status": "todo" }
],
"recap": {},
"documents": []
}
}
Cree une AG pour un immeuble. A la creation (statut planifiee), le retroplanning est genere automatiquement : une tache par etape du modele de votre organisation, datee a partir de date_ag.
Necessite une cle API avec la permission write.
| Champ | Type | Description | |
|---|---|---|---|
property_id | integer | requis | ID de l'immeuble |
date_ag | string | requis | Date de l'AG au format YYYY-MM-DD |
type | string | optionnel | ordinaire (defaut) ou extraordinaire |
exercice | string | optionnel | Exercice comptable concerne (ex : 2025) |
date_verif_comptes | string | optionnel | Date de verification des comptes (YYYY-MM-DD), ancre certaines etapes |
gestionnaire_user_id | integer | optionnel | Gestionnaire (defaut : herite de l'immeuble) |
comptable_user_id | integer | optionnel | Comptable (defaut : herite de l'immeuble) |
observations | string | optionnel | Notes libres |
curl -X POST -H "X-API-Key: ecg_votre_cle" -H "Content-Type: application/json" \ -d '{"property_id":7,"date_ag":"2026-09-15","type":"ordinaire","exercice":"2025"}' \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php"
{
"success": true,
"data": { "id": 42 }
}
Cree plusieurs AG en une seule requete (max 500 lignes). Chaque ligne resout l'immeuble par sa reference (property_ref : reference interne, puis numero d'immatriculation RNCOP, puis nom approchant). Chaque AG creee genere son retroplanning.
Necessite une cle API avec la permission write.
| Champ | Type | Description | |
|---|---|---|---|
rows | array | requis | Lignes a importer (1 a 500) |
rows[].property_ref | string | requis | Reference interne, n° d'immatriculation ou nom de l'immeuble |
rows[].date_ag | string | requis | Date au format YYYY-MM-DD |
rows[].type | string | optionnel | AGO/ordinaire (defaut) ou AGE/extraordinaire |
rows[].gestionnaire_email | string | optionnel | Email du gestionnaire (resolu en interne) |
rows[].exercice | string | optionnel | Exercice comptable |
options.create_missing_properties | boolean | optionnel | Cree l'immeuble via RNCOP si introuvable (property_ref = n° d'immatriculation) |
curl -X POST -H "X-API-Key: ecg_votre_cle" -H "Content-Type: application/json" \ -d '{"rows":[{"property_ref":"LES-PINS","date_ag":"2026-09-15","type":"AGO"}],"options":{"create_missing_properties":false}}' \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/import"
{
"success": true,
"data": {
"imported": 1,
"errors": [],
"agIds": [42],
"createdPropIds": []
}
}
Modification partielle : seuls les champs fournis sont mis a jour. Si date_ag ou date_verif_comptes change, les echeances des taches non terminees du retroplanning sont recalculees automatiquement.
Necessite une cle API avec la permission write.
| Champ | Type | Description | |
|---|---|---|---|
date_ag | string | optionnel | Nouvelle date (YYYY-MM-DD) |
status | string | optionnel | planifiee, en_cours, ag_tenue, cloturee, annulee |
exercice | string | optionnel | Exercice comptable |
observations | string | optionnel | Notes libres |
curl -X PUT -H "X-API-Key: ecg_votre_cle" -H "Content-Type: application/json" \ -d '{"date_ag":"2026-09-22"}' \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/42"
{ "success": true, "data": { "ok": true } }
Marque une AG comme cloturee. La transition n'est possible que depuis le statut ag_tenue (AG tenue, en attente de cloture). Necessite la permission write.
curl -X POST -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/42/close"
{ "success": true, "data": { "ok": true } }
Marque une AG comme annulee. Les taches non terminees de son retroplanning passent automatiquement en cancelled. Necessite la permission write.
curl -X POST -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/42/cancel"
{ "success": true, "data": { "ok": true } }
Supprime definitivement une AG. Les taches de son retroplanning sont supprimees en cascade. Necessite la permission write.
curl -X DELETE -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/42"
{ "success": true, "data": { "ok": true } }
Retourne les resolutions votees en assemblee (lecture seule), telles qu'enregistrees apres l'AG (extraction du PV). Necessite la permission read.
curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/42/resolutions"
{
"success": true,
"data": {
"resolutions": [
{
"id": 5,
"numero": "1",
"titre": "Approbation des comptes de l'exercice 2025",
"majorite_article": "25",
"resultat": "adoptee"
}
]
}
}
Retourne, toutes AG confondues, les decisions votees (resolutions adoptee ou reportee) de votre organisation, avec un statut d'execution derive des taches de suivi qui leur sont rattachees. Permet de repondre a « qu'a-t-on vote qui n'est pas encore execute ? ».
| Parametre | Type | Description | |
|---|---|---|---|
property_id | integer | optionnel | Filtre sur un immeuble |
exercice | string | optionnel | Filtre sur un exercice comptable |
status | string | optionnel | Filtre sur le statut d'execution : a_lancer, en_cours, en_souffrance, fait, reportee, abandonnee, en_attente |
q | string | optionnel | Recherche texte sur l'intitule |
page | integer | optionnel | Numero de page (defaut 1) |
per_page | integer | optionnel | Resultats par page (10-100, defaut 50) |
execution_status est derive des taches liees : a_lancer, en_cours, fait, en_souffrance (au moins une tache en retard), ou reportee. Il peut aussi refleter un statut force manuellement : abandonnee, fait ou en_attente. La reponse est paginee (total, page, per_page).curl -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/client/v1/ag.php/decisions?status=reportee"
{
"success": true,
"data": {
"decisions": [
{
"id": 5,
"numero": "1",
"titre": "Ravalement de la facade",
"majorite_article": "25",
"resultat": "adoptee",
"property_name": "Residence Les Pins",
"date_ag": "2026-05-15",
"execution_status": "en_souffrance",
"has_tasks": true
}
],
"total": 1,
"page": 1,
"per_page": 50
}
}
Retourne la liste des cles API actives de votre organisation. Reservee aux administrateurs d'organisation.
| Champ | Type | Description |
|---|---|---|
id | integer | Identifiant unique de la cle |
name | string | Nom descriptif de la cle |
key_display | string | Prefixe masque (ex: ecg_a1b2...x9z0) |
permissions | array | ["read"] ou ["read","write"] |
expires_at | datetime|null | Date d'expiration (null = illimitee) |
last_used | datetime|null | Derniere utilisation |
created_at | datetime | Date de creation |
key_display) est visible.curl -H "X-API-Key: ecg_votre_cle" \
https://www.expert-copro-gestion.fr/api/v1/api-keys.php
{
"success": true,
"data": [
{
"id": 3,
"name": "Extension Chrome",
"key_display": "ecg_a1b2...x9z0",
"permissions": ["read", "write"],
"expires_at": "2026-07-15 00:00:00",
"last_used": "2026-04-16 09:12:00",
"created_at": "2026-04-15 10:00:00"
}
]
}
Genere une nouvelle cle API. La cle complete est retournee une seule fois dans la reponse. Reservee aux administrateurs d'organisation avec un plan payant.
| Champ | Type | Description | |
|---|---|---|---|
name | string | requis | Nom descriptif (max 100 car.) |
permissions | array | requis | ["read"] ou ["read","write"] |
expires_in_days | integer|null | optionnel | null (illimitee), 30, 90 ou 365 jours |
curl -X POST \ -H "X-API-Key: ecg_votre_cle" \ -H "Content-Type: application/json" \ -d '{ "name": "Extension Chrome", "permissions": ["read", "write"], "expires_in_days": 90 }' \ https://www.expert-copro-gestion.fr/api/v1/api-keys.php
{
"success": true,
"data": {
"id": 4,
"name": "Extension Chrome",
"key": "ecg_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"permissions": ["read", "write"],
"expires_at": "2026-07-15 00:00:00",
"created_at": "2026-04-16 10:00:00"
}
}
Met a jour le nom et/ou les permissions d'une cle existante. Envoyez uniquement les champs a modifier. Admin org uniquement.
| Champ | Type | Description | |
|---|---|---|---|
name | string | optionnel | Nouveau nom (max 100 car.) |
permissions | array | optionnel | ["read"] ou ["read","write"] |
curl -X PUT \ -H "X-API-Key: ecg_votre_cle" \ -H "Content-Type: application/json" \ -d '{ "name": "Script backup", "permissions": ["read"] }' \ "https://www.expert-copro-gestion.fr/api/v1/api-keys.php?id=4"
{
"success": true,
"data": {
"id": 4,
"name": "Script backup",
"key_display": "ecg_a1b2...x9z0",
"permissions": ["read"],
"expires_at": "2026-07-15 00:00:00",
"created_at": "2026-04-16 10:00:00"
}
}
Revoque une cle API (suppression logique). La cle ne pourra plus etre utilisee pour s'authentifier. Admin org uniquement.
curl -X DELETE \ -H "X-API-Key: ecg_votre_cle" \ "https://www.expert-copro-gestion.fr/api/v1/api-keys.php?id=4"
{
"success": true,
"data": {
"revoked": 4
}
}
Retourne les informations du profil de l'utilisateur connecte, incluant le jeton CSRF et l'etat des tutoriels completes.
| Champ | Type | Description |
|---|---|---|
id | integer | Identifiant utilisateur |
name | string | Nom complet |
email | string | Adresse email |
role | string | Role dans l'organisation |
tutorials_completed | object | Tutoriels completes avec timestamps (ex: {"tasks": "2026-04-16T10:00:00"}) |
csrf_token | string | Jeton CSRF pour les ecritures |
curl -H "X-API-Key: ecg_votre_cle" \
https://www.expert-copro-gestion.fr/api/v1/me.php
{
"success": true,
"data": {
"id": 1,
"name": "Sophie Martin",
"email": "sophie@example.com",
"role": "admin_org",
"tutorials_completed": {
"tasks": "2026-04-16T10:00:00"
},
"csrf_token": "a1b2c3d4e5f6..."
}
}
Marque un tutoriel comme termine pour l'utilisateur connecte. Le timestamp de completion est enregistre dans le champ JSON tutorials_completed.
| Champ | Type | Description | |
|---|---|---|---|
action | string | requis | Doit etre "complete-tutorial" |
module | string | requis | Nom du module (ex: "tasks", "properties") |
curl -X POST \ -H "X-API-Key: ecg_votre_cle" \ -H "Content-Type: application/json" \ -d '{ "action": "complete-tutorial", "module": "tasks" }' \ https://www.expert-copro-gestion.fr/api/v1/me.php
{
"success": true,
"data": {
"module": "tasks",
"completed_at": "2026-04-16T10:00:00"
}
}