Dispara entregables de Sukora desde tu herramienta (Zapier, Make, n8n, un CRM o un script) y recibe un aviso por webhook cuando estén listos.
Todas las llamadas a la API usan tu API key en la cabecera
Authorization. La encuentras (y puedes regenerarla) en el Studio, en
Ajustes → Integraciones. Guárdala en secreto: da acceso a tus créditos.
Authorization: Bearer sk_tu_clave
URL base: https://sukora.xyz
Devuelve el catálogo: cada entregable con su clave y su coste en créditos.
curl https://sukora.xyz/api/v1/skills \
-H "Authorization: Bearer sk_tu_clave"
{
"skills": [
{ "key": "competitive-analysis", "name": "Análisis competitivo", "credits": 150 },
{ "key": "content-calendar", "name": "Calendario de contenido", "credits": 180 }
// …
]
}
Encola un entregable para tu negocio (usa la marca que tengas guardada). Responde al momento
con el id; el trabajo se hace en segundo plano. Los créditos se descuentan al
ejecutarse.
| Campo | Tipo | Descripción |
|---|---|---|
skill |
string | Clave del catálogo (obligatorio). P.ej. competitive-analysis. |
message |
string | Instrucción o contexto extra (opcional). |
curl -X POST https://sukora.xyz/api/v1/tasks \
-H "Authorization: Bearer sk_tu_clave" \
-H "Content-Type: application/json" \
-d '{ "skill": "competitive-analysis" }'
{ "id": "e514b0b7-…", "skill": "competitive-analysis", "status": "queued", "credits": 150 }
Cuando status sea done, incluye la url pública del
entregable y su pdfUrl.
curl https://sukora.xyz/api/v1/tasks/e514b0b7-… \
-H "Authorization: Bearer sk_tu_clave"
{
"id": "e514b0b7-…",
"skill": "competitive-analysis",
"status": "done",
"url": "https://sukora.xyz/d/e514b0b7-…",
"pdfUrl": "https://sukora.xyz/d/e514b0b7-…/informe.pdf"
}
Devuelve tus últimos entregables (para sondear desde Zapier/Make/n8n o un CRM). Parámetro
opcional ?limit=N (1–100, por defecto 20).
curl "https://sukora.xyz/api/v1/tasks?limit=10" \
-H "Authorization: Bearer sk_tu_clave"
{
"tasks": [
{
"id": "e514b0b7-…",
"skill": "competitive-analysis",
"status": "done",
"createdAt": "2026-07-25T00:00:00.000Z",
"url": "https://sukora.xyz/d/e514b0b7-…"
}
]
}
No necesitas escribir código: cualquier herramienta de automatización con módulos HTTP puede conectar Sukora usando esta API y los webhooks. Recetas listas:
Disparador: «Webhooks by Zapier → Catch Hook» y pega esa URL en
Ajustes → Integraciones de Sukora → recibirás un evento cada vez que un entregable
esté listo. Acción: «Webhooks by Zapier → POST» a
https://sukora.xyz/api/v1/tasks con la cabecera
Authorization: Bearer sk_… y el cuerpo
{ "skill": "competitive-analysis" } para pedir un entregable desde cualquier Zap.
Usa el módulo HTTP → Make a request: método POST, URL
https://sukora.xyz/api/v1/tasks, cabecera de autorización y cuerpo JSON con el
skill. Para avisos, apunta un Webhook de Make en Integraciones de Sukora.
Nodo HTTP Request (POST a /api/v1/tasks) para pedir, y nodo Webhook
como disparador de «entregable listo». Igual de simple.
Cualquier CRM o app que permita llamar a una URL o recibir webhooks encaja: dispara un
entregable con POST /api/v1/tasks cuando entra un lead, y recibe el resultado por
webhook o sondeando GET /api/v1/tasks. La API es REST estándar con
Bearer, así que cabe en casi cualquier flujo.
En vez de consultar el estado, puedes recibir un aviso automático. Pon la URL de tu
herramienta en Ajustes → Integraciones y Sukora enviará un POST
cuando cada entregable esté listo:
{
"event": "deliverable.ready",
"taskId": "e514b0b7-…",
"skillKey": "competitive-analysis",
"url": "https://sukora.xyz/d/e514b0b7-…",
"pdfUrl": "https://sukora.xyz/d/e514b0b7-…/informe.pdf",
"at": "2026-07-25T00:00:00.000Z"
}
Cada aviso lleva la cabecera X-Sukora-Signature: sha256=…, que es el HMAC-SHA256
del cuerpo con tu secreto de firma (también en Integraciones). Compruébalo para
asegurarte de que el aviso viene de Sukora:
// Node.js
const crypto = require('crypto');
function esDeSukora(rawBody, firma, secreto) {
const esperado = 'sha256=' +
crypto.createHmac('sha256', secreto).update(rawBody).digest('hex');
return crypto.timingSafeEqual(Buffer.from(firma), Buffer.from(esperado));
}
401 = API key ausente o inválida · 402 = créditos
insuficientes · 400 = skill no válido · 404 = la tarea no es de tu
cuenta.