Drokio — guardián digitalDROKIO
API v1.0

Documentación de la API de Drokio

Construí integraciones sobre Drokio: publicá telemetría desde tus sitios, dispará scans bajo demanda, consultá hallazgos de Brain IA, y conectá notificaciones con tus herramientas favoritas.

Inicio rápido

3 pasos para tu primera llamada

  1. 1

    Obtené tu API key

    Desde el dashboard → Configuración → API Keys. Generá una nueva con permisos de lectura/escritura. El formato es dk_live_… o dk_test_…

  2. 2

    Probá la autenticación

    Cualquier endpoint sirve para validar la key — abajo usamos /api/v1/auth/verify que responde con tu plan y uso actual.

  3. 3

    Construí tu primer flujo

    Con la key validada, podés empezar a publicar telemetría, consultar eventos o disparar scans desde tu app.

# 1. Verificá tu API key
curl -X POST https://drokio.com/api/v1/auth/verify \
  -H "Authorization: Bearer YOUR_API_KEY"
Autenticación

Bearer token en cada request

Todos los endpoints privados requieren el header Authorization: Bearer <api_key>. No usamos OAuth ni JWT — la API key es el único secreto que necesitás manejar. El único endpoint público (sin auth) es GET /api/v1/status.

Manejo de la key

Guardá la API key como variable de entorno (DROKIO_API_KEY). Nunca la hardcodees en el código ni la publiques en frontend.

Rotación

Desde el dashboard podés revocar y generar una nueva key en cualquier momento — la vieja deja de funcionar al instante.

Endpoints

9 endpoints para tu integración

POST
/api/v1/auth/verify

Confirma que la API key es válida, retorna el plan asociado y el uso actual (sitios_allowed / sitios_used). Útil para health-checks de tu integración al arrancar.

StarterBearer
POST
/api/v1/telemetry

Endpoint que usa el plugin Drako para publicar eventos desde el sitio monitoreado — login fallidos, cambios de archivos, escaneos, etc. El body es un evento individual; para batch usá varias llamadas.

StarterBearer
GET
/api/v1/sites

Lista todos los sitios monitoreados por la API key. Devuelve resumen: URL, plan, estado, última telemetría, contadores.

StarterBearer
GET
/api/v1/sites/{siteId}

Retorna el estado completo de un sitio: versiones de WP/PHP, plugins y themes activos, stats (espacio, tráfico, amenazas), últimos 20 eventos.

StarterBearer
GET
/api/v1/events

Devuelve eventos paginados para un sitio o toda la cuenta. Soporta filtros por severidad y rango temporal.

StarterBearer
POST
/api/v1/scan

Dispara un scan del sitio indicado. Endpoint de compatibilidad con plugins antiguos — preferí /api/v1/scanner para casos nuevos.

StarterBearer
POST
/api/v1/brain/analyze

Envía un fragmento de código o un evento crudo para análisis con el modelo de IA de Drokio. Retorna veredicto (malicioso, sospechoso, benigno), score de confianza y razones.

Pro+Bearer
GET
/api/v1/connect

CRUD del hub de integraciones: Slack, Discord, Telegram, PagerDuty, Teams, Email, Webhook. GET lista (secretos enmascarados), POST upsert (crea si no trae id, actualiza si sí), DELETE elimina por ?id=.

Pro+Bearer
GET
/api/v1/status

Endpoint público (sin autenticación). Retorna estado operativo de la API, latencia del procesamiento y versión.

StarterPúblico
SDKs

Bibliotecas oficiales por lenguaje

SDKs con tipado, retries, manejo de rate limits y helpers idiomáticos. Si tu lenguaje no está, usá los snippets de cURL/fetch directamente — la API sigue convenciones REST estándar.

Rate limits

100 requests por minuto por API key

Los límites se aplican por API key, no por IP. Si excedés el límite, la API responde 429 con un header Retry-After indicando los segundos para reintentar.

Requests / minuto
100
Burst / segundo
10
Reintento
Retry-After
header en 429
Headers en cada response
  • X-Drokio-Version: 1.0.0
  • X-RateLimit-Remaining: 92
Errores

Códigos y cómo manejarlos

Los errores siguen el envelope estándar: { success: false, error: { code, message } }. Usá el code (stable) para branching en tu lógica; el message puede cambiar y está pensado para logs humanos.

CódigoHTTPCuándo ocurre
UNAUTHORIZED401El header Authorization falta o no tiene formato Bearer.
INVALID_KEY401La API key no existe o fue revocada.
EXPIRED403La API key expiró — renovala desde el dashboard.
RATE_LIMITED429Excediste el límite de 100 requests/minuto. Incluye header Retry-After.
INVALID_PAYLOAD400El cuerpo del request no pasó la validación.
SITE_NOT_FOUND404El sitio solicitado no existe en esta cuenta.
INTEGRATION_NOT_FOUND404La integración no existe o ya fue eliminada.
PLAN_UPGRADE_REQUIRED403La operación requiere un plan superior al actual.
INTERNAL_ERROR500Error inesperado del servidor. Si persiste, reportalo con el request_id del response.