API-first · MSP & agences web

Documentation API SoleoDigital

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.

Pourquoi l'API SoleoDigital
Démarrer
Explorer

Concepts

Les objets que vous manipulez via l'API.

Clé 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.

Mission (audit)

Une cible à auditer (un domaine + un client). Identifiée par un mission_id qui sert de fil conducteur à toutes les étapes.

Kit agent

Petit outil de capture téléchargeable, lié à la mission par un token. Il s'exécute sur le poste depuis lequel vous auditez.

Capture L2 / L3

L2 = trafic réseau (requêtes, tiers, cookies). L3 = événements runtime (stockage, DOM, moment du consentement).

Résultats (results.json)

Sortie structurée déterministe : score, violations, cross_border, summary. Le cœur de l'intégration.

Rapport PDF

Livrable client brandé SoleoDigital, généré à partir de la capture et récupérable via l'API.


Quickstart

Votre premier audit, du token au rapport, en 5 minutes.

1 · Clé API 2 · Créer l'audit 3 · Lancer le kit 4 · Suivre le statut 5 · Récupérer le rapport

Prérequis

Vérifiez que votre clé fonctionne
curl https://app.soleodigital.ca/api/v1/public/v1/whoami \
  -H "X-API-Key: sk_soleo_votre_cle_ici"
Réponse
{
  "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"
}
Si vous voyez "authenticated": true, votre clé est valide. Sinon, vérifiez l'en-tête X-API-Key.
1

Créez un audit

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"}'
Réponse
{
  "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"
}
Ce que vous venez de faire : créé une mission d'audit, généré un token agent, et obtenu le lien du kit de capture. Notez le mission_id — il sert pour toutes les étapes suivantes.
2

Téléchargez et lancez le kit

  1. Ouvrez le kit_download_url dans votre navigateur (ou curl -O).
  2. Installez le kit sur le poste depuis lequel vous auditez.
  3. Lancez le kit de la mission.
  4. Naviguez sur le domaine audité (bnc.ca dans l'exemple).
  5. Cliquez sur « Refuser » sur la bannière de cookies — c'est ce qui produit la preuve de tracking post-refus.
La capture est maintenant en cours. Chaque requête réseau et événement runtime est enregistré.
3

Suivez l'avancement

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_statusSignification
token_issuedMission créée, kit prêt — en attente de la capture.
capture_runningDes événements arrivent : la capture est en cours.
capture_completedCapture terminée, finalisation du dossier en cours.
report_readyRapport et résultats structurés prêts à récupérer.
4

Récupérez les résultats

Résultats structurés (intégration dans votre outil)
curl https://app.soleodigital.ca/api/v1/public/v1/audits/mission-ab12cd34ef56/results.json \
  -H "X-API-Key: sk_soleo_votre_cle_ici"
Réponse
{
  "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"
}
Rapport PDF livrable client
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"
Tant que la capture n'est pas finalisée, results.json renvoie "ready": false et le PDF n'est pas encore disponible.

Félicitations

Vous venez de lancer votre premier audit automatisé avec SoleoDigital. 🎉

Prochaines étapes :


Comment ça marche

Le modèle d'exécution, de l'appel API au rapport.

POST /audits Token + kit agent Capture locale (L2 + L3) Analyse conformité results.json + PDF
  1. Création. Votre appel POST /audits crée une mission et émet un token agent à courte durée de vie + un lien de kit.
  2. Capture souveraine. Le kit s'exécute sur le poste de votre client : il enregistre le trafic réseau (L2) et les événements runtime (L3) pendant la navigation. Les preuves brutes ne transitent pas par un tiers.
  3. Ingestion & analyse. Les événements remontent à SoleoDigital, qui détecte trackers pré-consentement, tracking post-refus, transferts hors Canada et écarts Loi 25.
  4. Résultats. Un results.json déterministe et un rapport PDF brandé sont produits, puis récupérables par l'API.
  5. Rejeu. Chaque session reste rejouable dans le dashboard (console replay L2/L3), comme un enregistrement du live.
Souveraineté : la capture est locale au client. SoleoDigital ne revend jamais vos données et ne les utilise que pour produire vos livrables.

Utiliser l'API

Conventions transverses : auth, pagination, polling, erreurs.

Authentification

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"
Vous pouvez aussi tester chaque endpoint en direct dans le Playground Swagger (bouton « Authorize » → collez votre clé).

Pagination

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"

Polling des résultats

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.

Gestion des erreurs

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).


Référence API

Endpoints Authentification & URL de base POST /audits — créer un audit GET /audits — lister / statut GET /audits/{id}/results.json GET /audits/{id}/report.pdf Codes d'erreur

Authentification & URL de base

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

POST /audits

ChampTypeDéfautDescription
domainstringDomaine à auditer (obligatoire)
namestringAudit <domaine>Nom de la mission
organizationstringvotre orgNom du client final
expires_in_daysint30Validité de la mission (1–365)
authorizedbooltrueAutoriser la capture immédiatement
with_agentbooltrueGénérer token agent + lien kit
agent_token_hoursint8Validité du token agent (1–24)

GET /audits  ·  GET /audits/{mission_id}

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…

GET /audits/{mission_id}/results.json

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.

GET /audits/{mission_id}/report.pdf

Rapport PDF brandé SoleoDigital, prêt à livrer à votre client.

Codes d'erreur

CodeSignification
401Clé API manquante ou invalide
403Portée insuffisante ou permission manquante
402Quota de missions du plan atteint
404Audit introuvable (ou hors de votre périmètre)

Besoin d'aide ? contact@soleodigital.ca