Documentación

Todo lo que necesitas saber para implementar Consentio en minutos

API pública

Documentación completa de la API REST de Consentio para desarrolladores

Visión general

La API pública de Consentio te da acceso programático a tus datos de consentimiento. Puedes usarla para:

  • Integrarla con tus propias herramientas de analítica
  • Exportar datos para informes
  • Automatizar la gestión de tu web
  • Crear paneles personalizados
Importante: La API pública solo está disponible en el plan Pro. El plan Free no tiene acceso a la API.

Autenticación

La API usa autenticación mediante clave de API. Pasa la clave en la cabecera Authorization:

Cabecera HTTP
Authorization: ApiKey sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Cómo obtener una clave de API

  1. Inicia sesión en el panel de Consentio
  2. Ve a Ajustes → Claves de API
  3. Haz clic en Generar nueva clave
  4. Copia la clave y guárdala en un lugar seguro
Seguridad: Nunca compartas tu clave de API ni la guardes en repositorios públicos. La clave da acceso a todos los datos de tu cuenta.

URL base

Envía todas las peticiones de la API a:

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

Límite de peticiones

La API tiene un límite en el número de peticiones por hora:

Plan Peticiones/hora
Pro 1000

La respuesta incluye cabeceras con información sobre el límite de peticiones:

Cabeceras de respuesta
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1704067200

Formato de respuesta

Todas las respuestas están en formato JSON con una estructura coherente:

Respuesta correcta

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

Respuesta de error

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

Endpoints

GET /websites

Devuelve una lista de todas las webs asignadas a tu cuenta.

Ejemplo de petición

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

Ejemplo de respuesta

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

Devuelve los detalles de una web concreta, incluida su configuración.

Parámetros

Parámetro Tipo Descripción
id string ID de la web (en la URL)

Ejemplo de petición

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

GET /websites/:id/cookies

Devuelve una lista de las cookies detectadas en la web.

Ejemplo de petición

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

GET /analytics

Devuelve los datos analíticos de una web: estadísticas de consentimiento, geografía, dispositivos y tendencias.

Parámetros de consulta

Parámetro Tipo Obligatorio Descripción
websiteId string Sí ID de la web
period string No Periodo: 7d, 30d, 90d, all (por defecto: 30d)

Ejemplo de petición

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

Ejemplo de respuesta

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

Devuelve una lista de consentimientos individuales con paginación.

Parámetros de consulta

Parámetro Tipo Obligatorio Descripción
websiteId string Sí ID de la web
startDate ISO 8601 No Fecha de inicio (p. ej. 2025-01-01)
endDate ISO 8601 No Fecha de fin
limit number No Número de registros (por defecto: 100, máx.: 1000)
offset number No Registros a omitir (por defecto: 0)

Ejemplo de petición

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

Ejemplo de respuesta

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

Exporta los consentimientos a un archivo CSV o JSON.

Parámetros del cuerpo

Parámetro Tipo Obligatorio Descripción
websiteId string Sí ID de la web
startDate ISO 8601 No Fecha de inicio
endDate ISO 8601 No Fecha de fin
format string No "csv" o "json" (por defecto: json)

Ejemplo de petición

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

Devuelve el uso actual de la cuenta frente a los límites del plan.

Ejemplo de petición

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

Ejemplo de respuesta

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"
    }
  }
}

Códigos de error

Estado HTTP Código Descripción
400 MISSING_WEBSITE_ID Falta el parámetro obligatorio websiteId
400 INVALID_FORMAT Formato de exportación no válido
401 UNAUTHORIZED Clave de API ausente o no válida
403 API_ACCESS_DENIED Tu plan no tiene acceso a la API
404 WEBSITE_NOT_FOUND Web no encontrada o acceso denegado
429 RATE_LIMIT_EXCEEDED Límite de peticiones superado
500 INTERNAL_ERROR Error interno del servidor

SDKs y librerías

Estamos preparando SDKs oficiales para los lenguajes más usados:

  • JavaScript/TypeScript (npm)
  • Python (pip)
  • PHP (composer)
Consejo: ¿Quieres que te avisemos cuando lancemos los SDKs? Sigue nuestras novedades o escríbenos a [email protected].
Idiomas