Documentation

Tout ce qu'il vous faut pour déployer Consentio rapidement

API publique

Documentation complète de l'API REST Consentio pour les développeurs

Vue d'ensemble

L'API publique Consentio permet d'accéder par programmation à vos données de consentement. Vous pouvez l'utiliser pour :

  • Intégrer vos propres outils d'analyse
  • Exporter des données pour vos rapports
  • Automatiser la gestion de vos sites
  • Créer des tableaux de bord personnalisés
Important : l'API publique est disponible uniquement avec le forfait Pro. Le forfait Gratuit n'a pas accès à l'API.

Authentification

L'API utilise l'authentification par clé API. Transmettez la clé dans l'en-tête Authorization :

En-tête HTTP
Authorization: ApiKey sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Obtenir une clé API

  1. Connectez-vous au tableau de bord Consentio
  2. Allez dans Paramètres → Clés API
  3. Cliquez sur Générer une nouvelle clé
  4. Copiez la clé et conservez-la en lieu sûr
Sécurité : ne partagez jamais votre clé API et ne la stockez jamais dans un dépôt public. Cette clé donne accès à toutes les données de votre compte.

URL de base

Adressez toutes les requêtes API à :

URL
https://consentio.cz/api/v1

Limitation de débit

L'API impose une limite sur le nombre de requêtes par heure :

Forfait Requêtes/heure
Pro 1 000

La réponse inclut des en-têtes contenant les informations de limitation de débit :

En-têtes de réponse
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1704067200

Format de réponse

Toutes les réponses sont au format JSON, avec une structure cohérente :

Réponse réussie

JSON
{
  "success": true,
  "data": { ... }
}

Réponse d'erreur

JSON
{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Error description"
  }
}

Endpoints

GET /websites

Retourne la liste de tous les sites associés à votre compte.

Exemple de requête

curl
curl -X GET "https://consentio.cz/api/v1/websites" \
  -H "Authorization: ApiKey sk_live_xxx"

Exemple de réponse

JSON
{
  "success": true,
  "data": [
    {
      "id": "clx1234567890",
      "name": "My e-shop",
      "domain": "my-eshop.com",
      "description": "Main e-shop",
      "status": "active",
      "cookieCount": 15,
      "consentCount": 1250,
      "consentRate": 78,
      "viewsThisMonth": 450,
      "lastScanAt": "2025-01-15T10:30:00.000Z",
      "createdAt": "2024-06-01T08:00:00.000Z",
      "updatedAt": "2025-01-15T10:30:00.000Z"
    }
  ]
}

GET /websites/:id

Retourne les détails d'un site en particulier, y compris ses paramètres.

Paramètres

Paramètre Type Description
id string ID du site (dans l'URL)

Exemple de requête

curl
curl -X GET "https://consentio.cz/api/v1/websites/clx1234567890" \
  -H "Authorization: ApiKey sk_live_xxx"

GET /websites/:id/cookies

Retourne la liste des cookies détectés sur le site.

Exemple de requête

curl
curl -X GET "https://consentio.cz/api/v1/websites/clx1234567890/cookies" \
  -H "Authorization: ApiKey sk_live_xxx"

GET /analytics

Retourne les données statistiques d'un site : consentement, géographie, appareils et tendances.

Paramètres de requête

Paramètre Type Obligatoire Description
websiteId string Oui ID du site
period string Non Période : 7d, 30d, 90d, all (par défaut : 30d)

Exemple de requête

curl
curl -X GET "https://consentio.cz/api/v1/analytics?websiteId=clx123&period=30d" \
  -H "Authorization: ApiKey sk_live_xxx"

Exemple de réponse

JSON
{
  "success": true,
  "data": {
    "summary": {
      "totalViews": 1250,
      "consentRate": 78.5,
      "acceptedCount": 850,
      "rejectedCount": 275,
      "customCount": 125,
      "uniqueVisitors": 980,
      "totalImpressions": 2500
    },
    "consentBreakdown": {
      "acceptAll": 68,
      "rejectAll": 22,
      "custom": 10
    },
    "categoryConsent": {
      "necessary": 100,
      "analytics": 72,
      "marketing": 45,
      "functionality": 58
    },
    "geographic": [
      {
        "country": "Czechia",
        "countryCode": "CZ",
        "flag": "🇨🇿",
        "count": 850,
        "percentage": 68
      }
    ],
    "devices": {
      "desktop": 55,
      "mobile": 40,
      "tablet": 5
    },
    "trend": [
      {
        "date": "2025-01-01",
        "views": 45,
        "accepted": 35,
        "rejected": 10
      }
    ],
    "utmBreakdown": {
      "sources": [...],
      "mediums": [...],
      "campaigns": [...]
    }
  }
}

GET /consents

Retourne une liste de consentements individuels, avec pagination.

Paramètres de requête

Paramètre Type Obligatoire Description
websiteId string Oui ID du site
startDate ISO 8601 Non Date de début (ex. 2025-01-01)
endDate ISO 8601 Non Date de fin
limit number Non Nombre d'enregistrements (par défaut : 100, max : 1000)
offset number Non Enregistrements à ignorer (par défaut : 0)

Exemple de requête

curl
curl -X GET "https://consentio.cz/api/v1/consents?websiteId=clx123&limit=50&offset=0" \
  -H "Authorization: ApiKey sk_live_xxx"

Exemple de réponse

JSON
{
  "success": true,
  "data": [
    {
      "id": "consent_abc123",
      "visitorId": "v_xyz789",
      "action": "ACCEPT_ALL",
      "categories": {
        "necessary": true,
        "analytics": true,
        "marketing": true,
        "functionality": true
      },
      "ipCountry": "CZ",
      "device": "desktop",
      "utmSource": "google",
      "utmMedium": "cpc",
      "utmCampaign": "brand",
      "createdAt": "2025-01-15T14:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 50,
    "total": 1250,
    "hasMore": true
  }
}

POST /consents/export

Exporte les consentements dans un fichier CSV ou JSON.

Paramètres du corps de la requête

Paramètre Type Obligatoire Description
websiteId string Oui ID du site
startDate ISO 8601 Non Date de début
endDate ISO 8601 Non Date de fin
format string Non "csv" ou "json" (par défaut : json)

Exemple de requête

curl
curl -X POST "https://consentio.cz/api/v1/consents/export" \
  -H "Authorization: ApiKey sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "websiteId": "clx1234567890",
    "startDate": "2025-01-01",
    "endDate": "2025-01-31",
    "format": "csv"
  }' \
  -o consents.csv

GET /account/usage

Retourne l'utilisation actuelle du compte par rapport aux limites du forfait.

Exemple de requête

curl
curl -X GET "https://consentio.cz/api/v1/account/usage" \
  -H "Authorization: ApiKey sk_live_xxx"

Exemple de réponse

JSON
{
  "success": true,
  "data": {
    "plan": "PRO",
    "websites": {
      "used": 3,
      "limit": 15
    },
    "pageviews": {
      "used": 45000,
      "limit": 250000,
      "periodStart": "2025-01-01T00:00:00.000Z",
      "periodEnd": "2025-01-31T23:59:59.999Z"
    },
    "analyticsRetention": "unlimited",
    "scanInterval": "1 day",
    "apiRequests": {
      "used": 150,
      "limit": 1000,
      "resetAt": "2025-01-15T15:00:00.000Z"
    }
  }
}

Codes d'erreur

Statut HTTP Code Description
400 MISSING_WEBSITE_ID Le paramètre requis websiteId est manquant
400 INVALID_FORMAT Format d'export invalide
401 UNAUTHORIZED Clé API manquante ou invalide
403 API_ACCESS_DENIED Votre forfait n'a pas accès à l'API
404 WEBSITE_NOT_FOUND Site introuvable ou accès refusé
429 RATE_LIMIT_EXCEEDED Limite de requêtes dépassée
500 INTERNAL_ERROR Erreur interne du serveur

SDK et bibliothèques

Nous préparons des SDK officiels pour les langages les plus utilisés :

  • JavaScript/TypeScript (npm)
  • Python (pip)
  • PHP (composer)
Astuce : vous souhaitez être informé dès la sortie des SDK ? Suivez notre actualité ou contactez-nous à [email protected].
Langues