API-first · MSP & agences web
Créez et suivez des audits de conformité (Loi 25 / CAI, PIPEDA, RGPD) par programmation — et intégrez les résultats structurés dans vos propres outils.
results.json déterministe (score, violations, transferts).Les objets que vous manipulez via l'API.
Jeton sk_soleo_… généré depuis le dashboard. Agit avec les permissions et le périmètre multi-organisations de son propriétaire.
Une cible à auditer (un domaine + un client). Identifiée par un mission_id qui sert de fil conducteur à toutes les étapes.
Petit outil de capture téléchargeable, lié à la mission par un token. Il s'exécute sur le poste depuis lequel vous auditez.
L2 = trafic réseau (requêtes, tiers, cookies). L3 = événements runtime (stockage, DOM, moment du consentement).
Sortie structurée déterministe : score, violations, cross_border, summary. Le cœur de l'intégration.
Livrable client brandé SoleoDigital, généré à partir de la capture et récupérable via l'API.
Votre premier audit, du token au rapport, en 5 minutes.
curl installé (ou un outil comme Postman)curl https://app.soleodigital.ca/api/v1/public/v1/whoami \
-H "X-API-Key: sk_soleo_votre_cle_ici"
{
"authenticated": true,
"user": "vous@agence.ca",
"organization_id": "org-123",
"key_name": "Agence Web X",
"scopes": ["audits:read", "audits:write"],
"api_base": "https://app.soleodigital.ca/api/v1/public/v1"
}
"authenticated": true, votre clé est valide. Sinon, vérifiez l'en-tête X-API-Key.curl -X POST https://app.soleodigital.ca/api/v1/public/v1/audits \
-H "X-API-Key: sk_soleo_votre_cle_ici" -H "Content-Type: application/json" \
-d '{"domain":"bnc.ca","name":"Audit BNC"}'
{
"mission_id": "mission-ab12cd34ef56",
"domain": "bnc.ca",
"name": "Audit BNC",
"status": "Prête",
"capture_status": "token_issued",
"score": null,
"agent_token": "eyJhbGci...",
"agent_token_expires_at": "2026-07-03T04:00:00+00:00",
"kit_download_url": "https://app.soleodigital.ca/api/v1/audit-missions/agent-kit?platform=windows&mission_id=mission-ab12cd34ef56",
"results_url": "https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56/results.json",
"report_pdf_url": "https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56/report.pdf"
}
mission_id — il sert pour toutes les étapes suivantes.kit_download_url dans votre navigateur (ou curl -O).bnc.ca dans l'exemple).curl https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56 \
-H "X-API-Key: sk_soleo_votre_cle_ici"
Surveillez le champ capture_status. Les principaux états :
| capture_status | Signification |
|---|---|
token_issued | Mission créée, kit prêt — en attente de la capture. |
capture_running | Des événements arrivent : la capture est en cours. |
capture_completed | Capture terminée, finalisation du dossier en cours. |
report_ready | Rapport et résultats structurés prêts à récupérer. |
results.json et attendez "ready": true. Un intervalle de 5 s est recommandé.curl https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56/results.json \
-H "X-API-Key: sk_soleo_votre_cle_ici"
{
"mission_id": "mission-ab12cd34ef56",
"domain": "bnc.ca",
"ready": true,
"score": 62,
"summary": {
"post_refusal_tracking_total": 3,
"pre_consent_tracking_total": 5
},
"violations": [ ... ],
"cross_border": [ ... ],
"report_pdf_url": "https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56/report.pdf"
}
curl -o rapport_bnc.pdf \
https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56/report.pdf \
-H "X-API-Key: sk_soleo_votre_cle_ici"
results.json renvoie "ready": false et le PDF n'est pas encore disponible.Vous venez de lancer votre premier audit automatisé avec SoleoDigital. 🎉
Prochaines étapes :
Le modèle d'exécution, de l'appel API au rapport.
POST /audits crée une mission et émet un token agent à courte durée de vie + un lien de kit.results.json déterministe et un rapport PDF brandé sont produits, puis récupérables par l'API.Conventions transverses : auth, pagination, polling, erreurs.
Chaque requête porte votre clé dans l'en-tête X-API-Key. Portées disponibles : audits:read, audits:write.
curl https://app.soleodigital.ca/api/v1/public/v1/whoami \
-H "X-API-Key: sk_soleo_votre_cle_ici"
GET /audits est paginé via ?limit= (1–500, défaut 50) et ?offset=. La réponse renvoie total, limit, offset et items.
curl "https://app.soleodigital.ca/api/v1/public/v1/audits?limit=50&offset=0" \
-H "X-API-Key: sk_soleo_votre_cle_ici"
Après le lancement du kit, interrogez results.json jusqu'à "ready": true. Intervalle recommandé : 5 s. Évitez d'interroger plus vite que 1 req/s par mission.
Les erreurs suivent le format { "detail": "message" } avec un code HTTP standard (voir codes d'erreur). Traitez notamment 402 (quota atteint) et 401 (clé invalide).
Chaque requête porte votre clé dans l'en-tête X-API-Key. Portées : audits:read, audits:write. La clé agit avec les permissions et le cloisonnement multi-organisations de son propriétaire.
Base : https://app.soleodigital.ca/api/v1/public/v1
En-tête : X-API-Key: sk_soleo_xxxxxxxxxxxxxxxx
| Champ | Type | Défaut | Description |
|---|---|---|---|
domain | string | — | Domaine à auditer (obligatoire) |
name | string | Audit <domaine> | Nom de la mission |
organization | string | votre org | Nom du client final |
expires_in_days | int | 30 | Validité de la mission (1–365) |
authorized | bool | true | Autoriser la capture immédiatement |
with_agent | bool | true | Générer token agent + lien kit |
agent_token_hours | int | 8 | Validité du token agent (1–24) |
Liste paginée des audits accessibles (?limit=50&offset=0) ou état d'un audit précis. Réponse : mission_id, domain, status, capture_status, score, results_url, report_pdf_url…
Résultats structurés une fois la capture finalisée : ready, score, summary, violations, cross_border, interpretation, stats. Renvoie "ready": false tant que la capture n'est pas terminée.
Rapport PDF brandé SoleoDigital, prêt à livrer à votre client.
| Code | Signification |
|---|---|
401 | Clé API manquante ou invalide |
403 | Portée insuffisante ou permission manquante |
402 | Quota de missions du plan atteint |
404 | Audit introuvable (ou hors de votre périmètre) |
Besoin d'aide ? contact@soleodigital.ca