Conventions
Format JSON, dates, énumérations, pagination, suppression et archivage, envoi et téléchargement de fichiers.
JSON
- Requêtes et réponses en JSON UTF-8 (
Content-Type: application/json). - Propriétés en camelCase dans les réponses ; la casse des propriétés est indifférente dans les requêtes.
- Les valeurs
nullsont écrites explicitement. - Les nombres sont écrits comme des nombres. Le document OpenAPI déclare les entiers
integer | stringparce que l’API accepte aussi un nombre écrit entre guillemets en entrée ; la référence les présente comme des nombres.
Énumérations
Les énumérations sont écrites par leur nom, tel qu’il est défini dans le code, en PascalCase : par exemple "Standard", "Important", "High", "Critical" pour la criticité d’un actif (criticalityScore). La référence de l’API donne la liste des valeurs de chaque énumération.
Quelques champs ne sont pas des énumérations mais des chaînes avec leurs propres valeurs ; la référence les présente comme string. Les plus utiles :
| Champ | Valeurs |
|---|---|
Statut d’un contrôle (status) | not_started, in_progress, implemented, non_compliant, not_applicable (en entrée, la casse et les tirets bas sont indifférents ; le filtre de liste accepte plusieurs valeurs séparées par des virgules) |
Criticité d’un contrôle (criticality) | critical, important, standard |
Rôle dans le jeton (roles[].role) | admin, rssi, contributor, auditor |
Dates
- Les horodatages sont en UTC, au format ISO 8601 avec le suffixe
Z(2026-10-10T08:30:00Z). Envoyez vos dates en UTC. - Les dates sans heure s’écrivent
AAAA-MM-JJ.
Identifiants
La plupart des ressources sont identifiées par un UUID (les référentiels par leur code, le Trust Center public par un identifiant court). Dans les chemins qui attendent un UUID, un identifiant mal formé ne correspond à aucune route et donne 404.
Pagination
Les listes ne suivent pas toutes la même convention. Les quatre formes en usage :
| Ressources | Paramètres | Réponse |
|---|---|---|
| Actifs, incidents, tâches, fournisseurs, notifications, exports et planifications de rapports, RGPD (traitements, AIPD, demandes de droits, violations) | page (à partir de 1), pageSize (20 par défaut ; 100 au plus, borne non contrôlée sur les rapports) | { "items": [...], "pagination": { "total", "page", "pageSize" } } |
| Risques, politiques | page, pageSize (1 à 100, 25 par défaut) | { "data": [...], "meta": { "total", "page", "pageSize" } } |
| Journal d’accès et demandes du Trust Center | page, pageSize (20 par défaut) | { "data": [...], "meta": { "total", "page", "pageSize" } } |
| Journal d’audit (50 par défaut), utilisateurs (20 par défaut, 100 au plus) | page, pageSize | { "items": [...], "totalCount", "page", "pageSize" } |
| Contrôles | limit (1 à 100, 100 par défaut), offset | { "data": [...], "totalCount" } |
D’autres listes (règles d’automatisation, par exemple) renvoient tout, sans pagination. Pour chaque opération, la référence indique les paramètres et le schéma de réponse exacts. La recherche plein texte s’appelle q sur la plupart des listes, search sur le journal d’audit et les utilisateurs.
Supprimer ou archiver
La plupart des ressources ne sont pas effacées mais archivées : elles disparaissent des listes et restent en base.
- Certains
DELETEarchivent en réalité : actifs, fournisseurs, exports et planifications de rapports. - D’autres ressources ont une opération
POST …/archiveexplicite : entités, politiques, traitements, référentiels et modèles. DELETE /api/v1/entities/{entityId}/risks/{id}clôture le risque et attend un corps JSON avec la justification de clôture.
Fichiers
Envoi (multipart/form-data) : il n’existe que deux points d’envoi de fichiers, l’image d’une certification du Trust Center (PNG, JPEG ou WebP, contenu vérifié) et les pièces jointes du portail fournisseur (PDF, PNG ou JPEG, 10 Mo au plus). Les autres imports prennent du JSON : lignes d’actifs ou de fournisseurs, document d’un référentiel personnalisé ou d’un modèle de questionnaire (5 Mo au plus).
Téléchargement : certaines opérations renvoient un fichier plutôt que du JSON, avec un nom de fichier dans l’en-tête Content-Disposition :
- CSV : export du journal d’audit, modèles d’import d’actifs et de fournisseurs ;
- Excel : modèle d’import de fournisseurs, registre d’informations DORA ;
- PDF ou Excel : rapports générés ;
- JSON : export d’une version de référentiel personnalisé ou d’un modèle de questionnaire ;
- PNG : QR code du Trust Center ;
- format d’origine : images de certification du Trust Center, pièces jointes des questionnaires fournisseurs.
En-têtes de sécurité
Toutes les réponses portent X-Content-Type-Options: nosniff, X-Frame-Options: DENY, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy: camera=(), microphone=(), geolocation=() et Strict-Transport-Security: max-age=31536000; includeSubDomains.
État du service
GET https://api.conformitly.fr/health répond {"status":"ok"} sans authentification ; GET /api/v1/health répond {"status":"healthy","timestamp":"…"}. Ils indiquent que l’API répond, pas l’état de ses dépendances.
Mise à jour : 10 octobre 2026. Signaler une inexactitude