ClonifyDevelopersIr al panel

Empezar

  • Autenticación
  • Errores
  • Paginación
  • Límites de peticiones
  • Webhooks
  • Para agentes de IA
  • Servidor MCP

Referencia de la API

  • Seguimiento de alumnos6
  • Entregas externas por API6
  • Chat con el clon1
  • Contactos y etiquetas5
  • Accesos de academias4
  • Conversaciones4
  • Catálogo de productos11
  • Ventas externas2
  • Conocimiento12
  • Multimedia4
  • Clones (versions en la API)3
  • Reuniones y reservas3
  • Webinars6
  • Cuenta y consumo1
Clonify

Conocimiento

GET/api/v1/brain/sources

Listar fuentes del conocimiento

El índice del conocimiento del clon (título, tipo, palabras, estado). El texto completo lo da el detalle.

Parámetros de consulta

limitinteger 1..200
starting_afterinteger

Cursor: devuelve fuentes con id mayor que este.

source_typestring

Valores: youtube · text · pdf · video · website · instagram · vimeo

statusstring

Valores: pending · extracting · processing · ready · error

bash
curl "https://www.clonify.com/api/v1/brain/sources" \
  -H "Authorization: Bearer clk_live_…"
POST/api/v1/brain/sources

Entrenar al clon con texto

Crea una fuente de texto, la trocea, la embebe y la enlaza a todos tus clones. Igual que subirla por el panel. Consume cuota de palabras del plan (403 words_quota_exceeded si no queda).

Permiso de escritura

Cuerpo (JSON)

titlestring 2..200obligatorio
contentstring 10..200000obligatorio
content_dateYYYY-MM-DD

Fecha del contenido original (no de la subida). Omitir = hoy.

external_idstring

TU identificador estable del contenido. Si ya subiste uno con este id, se REEMPLAZA (upsert idempotente para sincronizar). La respuesta lleva replaced: true.

content_hashstring

Tu huella del contenido original. Te la devolvemos en los listados para detectar qué cambió y resubir solo eso.

folder_idinteger
bash
curl -X POST "https://www.clonify.com/api/v1/brain/sources" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"…","content":"…"}'
json
{
  "object": "brain_source",
  "id": 12438,
  "source_type": "text",
  "title": "Guía de sentadilla",
  "word_count": 210,
  "status": "ready",
  "chunk_count": 3,
  "replaced": false,
  "created_at": "2026-07-03T17:00:00.000Z",
  "updated_at": "2026-07-03T17:00:04.000Z"
}
POST/api/v1/brain/sources/link

Entrenar al clon con un enlace

Una página web (se extrae su contenido limpio) o un vídeo de YouTube donde habla SOLO el creador (se usa su transcripción). Mismo pipeline y cuota de palabras que el texto. Un vídeo con más voces necesita el archivo original en el panel: 422 youtube_needs_file.

Permiso de escritura

Cuerpo (JSON)

urlstring (URL)obligatorio

URL de la página web o del vídeo de YouTube.

has_other_speakersboolean

Solo vídeos: true si aparece otra persona además del creador (entrevista, podcast).

external_idstring

TU identificador estable del contenido. Si ya subiste uno con este id, se REEMPLAZA (upsert idempotente). La extracción va ANTES del reemplazo: un enlace roto no destruye la fuente anterior.

content_hashstring

Tu huella del contenido original. Te la devolvemos en los listados para detectar qué cambió.

folder_idinteger
bash
curl -X POST "https://www.clonify.com/api/v1/brain/sources/link" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"url":"…"}'
json
{
  "object": "brain_source",
  "id": 12440,
  "source_type": "website",
  "title": "Guía completa de la sentadilla",
  "word_count": 1480,
  "status": "ready",
  "chunk_count": 9,
  "replaced": false,
  "created_at": "2026-07-05T10:00:00.000Z",
  "updated_at": "2026-07-05T10:00:21.000Z"
}
POST/api/v1/brain/sources/pdf

Entrenar al clon con un PDF

Los bytes del PDF en base64, hasta ~3MB. Solo PDFs con texto seleccionable: uno escaneado (solo imágenes) devuelve 422 pdf_no_text. Pásalo por OCR o envía el texto con POST /brain/sources. Misma cuota de palabras que el texto.

Permiso de escritura

Cuerpo (JSON)

titlestring 2..200obligatorio
file_base64string (base64)obligatorio

Los bytes del PDF codificados en base64 (sin prefijo data:). Límite ~3MB de PDF. Para más grande, el panel.

content_dateYYYY-MM-DD

Fecha del contenido. Omitir = la fecha interna del PDF si la trae. Si no, hoy.

external_idstring

TU identificador estable (p. ej. la ruta del archivo). Si ya subiste uno con este id, se REEMPLAZA (upsert idempotente).

content_hashstring
folder_idinteger
bash
curl -X POST "https://www.clonify.com/api/v1/brain/sources/pdf" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"…","file_base64":"…"}'
GET/api/v1/brain/sources/{id}

Leer una fuente

Una fuente con su texto completo (content_text). Puede pesar: el listado no lo arrastra.

Parámetros de ruta

idintegerobligatorio
bash
curl "https://www.clonify.com/api/v1/brain/sources/1" \
  -H "Authorization: Bearer clk_live_…"
DELETE/api/v1/brain/sources/{id}

Borrar una fuente

Borra la fuente PERMANENTEMENTE, con sus trozos. LIBERA cuota de palabras. Es la pieza del patrón «quitar y resubir» para sincronizar contenido. No hay papelera.

Permiso de borrado

Parámetros de ruta

idintegerobligatorio
bash
curl -X DELETE "https://www.clonify.com/api/v1/brain/sources/1" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
json
{ "id": 12438, "deleted": true }
DELETE/api/v1/brain/sources

Borrar una fuente por tu id

Igual que el borrado por id numérico, pero usando TU external_id (el que pasaste al crearla): tu sincronización no necesita conocer nuestros ids.

Permiso de borrado

Parámetros de consulta

external_idstringobligatorio

Tu identificador estable de la fuente.

bash
curl -X DELETE "https://www.clonify.com/api/v1/brain/sources" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
json
{ "id": 12438, "external_id": "notion-doc-42", "deleted": true }
GET/api/v1/brain/folders

Listar carpetas del conocimiento

Las carpetas donde se organiza el material del clon, con su id. Es lo que necesitas para pasar folder_id al subir una fuente. Lista plana: cada carpeta dice de cuál cuelga en parent_id, y el árbol lo montas tú. Vienen todas, sin paginar.

bash
curl "https://www.clonify.com/api/v1/brain/folders" \
  -H "Authorization: Bearer clk_live_…"
json
{
  "object": "list",
  "data": [{
    "object": "brain_folder",
    "id": 88,
    "name": "Clases del curso",
    "description": null,
    "parent_id": null,
    "product_id": 172,
    "is_course": true,
    "created_at": "2026-05-02T08:12:00.000Z",
    "updated_at": "2026-07-19T11:40:00.000Z"
  }],
  "has_more": false,
  "next_starting_after": null
}
POST/api/v1/brain/folders

Crear una carpeta

Crea una carpeta para archivar el material que subas. IDEMPOTENTE: si ya existe una con ese nombre en el mismo nivel, te devuelve la que hay (created: false) en vez de duplicarla, así que una sincronización que se ejecute cada noche no te llena el conocimiento de copias.

Permiso de escritura

Cuerpo (JSON)

namestring 2..120obligatorio
parent_idinteger

Carpeta de la que cuelga. Omitir = carpeta de primer nivel.

descriptionstring ..2000
bash
curl -X POST "https://www.clonify.com/api/v1/brain/folders" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"…"}'
json
{
  "object": "brain_folder",
  "id": 91,
  "name": "Newsletter 2026",
  "description": null,
  "parent_id": null,
  "product_id": null,
  "is_course": false,
  "created_at": "2026-07-30T10:00:00.000Z",
  "updated_at": "2026-07-30T10:00:00.000Z",
  "created": true
}
GET/api/v1/brain/guided-answers

Listar respuestas

Las preguntas frecuentes de tu Conocimiento (primero las fijadas).

Parámetros de consulta

include_archivedboolean
bash
curl "https://www.clonify.com/api/v1/brain/guided-answers" \
  -H "Authorization: Bearer clk_live_…"
POST/api/v1/brain/guided-answers

Crear respuesta

Dos modos. CON TEXTO (con answer): el clon se apoya en ese texto con fidelidad cuando la pregunta encaje, dicho con su voz y leyendo la conversación. LIBRE (sin answer): el clon habla libre y se disparan las actions declaradas.

Permiso de escritura

Cuerpo (JSON)

questionstring 3..300obligatorio

UNA pregunta natural, como la escribiría un visitante (sin amontonar varias con «/»).

answerstring 1..4000

La respuesta en la que se apoya el clon. Vacío = modo libre (entonces actions es obligatorio).

variantsstring[] (máx 10)

Otras formas de preguntar LO MISMO. Cada una amplía el match por significado.

actionsobject[]

Acciones al dispararse: {type: asset|product|external_link|video_embed|escalate_offer, …}.

bash
curl -X POST "https://www.clonify.com/api/v1/brain/guided-answers" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"question":"…"}'
DELETE/api/v1/brain/guided-answers/{id}

Borrar respuesta

Borra la respuesta PERMANENTEMENTE, con sus variantes. No hay papelera.

Permiso de borrado

Parámetros de ruta

idintegerobligatorio
bash
curl -X DELETE "https://www.clonify.com/api/v1/brain/guided-answers/1" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
json
{ "id": 204, "deleted": true }