ClonifyDevelopersAnar al tauler

Començar

  • Autenticació
  • Errors
  • Paginació
  • Límits de peticions
  • Webhooks
  • Per a agents d'IA
  • Servidor MCP

Referència de l'API

  • Seguiment d'alumnes6
  • Lliuraments externs per API6
  • Xat amb el clon1
  • Contactes i etiquetes5
  • Accessos d'acadèmies4
  • Converses4
  • Catàleg de productes11
  • Vendes externes2
  • Coneixement12
  • Multimèdia4
  • Clons (versions a l'API)3
  • Reunions i reserves3
  • Webinars6
  • Compte i consum1
Clonify

Webinars

GET/api/v1/webinars

Llistar webinars

Els teus webinars amb el seu nº d'inscrits. Les credencials d'emissió mai viatgen.

Pla amb secció de Webinars

Paràmetres de consulta

scopestring

upcoming (per defecte): els que encara no han acabat, en ordre cronològic. past: els acabats o cancel·lats, del més recent al més antic. all: tots, en ordre cronològic.Valors: upcoming · past · all

product_idinteger

Només les sessions l'audiència de les quals inclou aquest producte, sigui el seu producte principal o un altre.

fromISO 8601

Només les sessions que comencen en aquesta data o després. ISO 8601 amb zona (2026-10-01T00:00:00Z) o un dia (2026-10-01, mitjanit UTC).

untilISO 8601

Només les sessions que comencen abans d'aquesta data (no inclosa). Mateix format que from.

starting_afterinteger

El next_starting_after de la pàgina anterior. Continua demanant mentre has_more sigui true; omet-lo a la primera pàgina.

limitinteger 1..200
bash
curl "https://www.clonify.com/api/v1/webinars" \
  -H "Authorization: Bearer clk_live_…"
json
{
  "object": "list",
  "data": [{
    "object": "webinar",
    "id": 410,
    "title": "Clase en directo: módulo 3",
    "start_at": "2026-10-07T16:00:00.000Z",
    "duration_minutes": 90,
    "status": "ended",
    "audience_product_id": 3161,
    "audience_product_ids": [3161],
    "replay_published": true,
    "registrant_count": 48
  }],
  "has_more": true,
  "next_starting_after": 410
}
POST/api/v1/webinars

webinars_create

Permís d'escripturaPla amb secció de Webinars

Cos (JSON)

titlestring (máx 200)obligatori
start_atISO 8601 (futuro)obligatori
descriptionstring (máx 2000)
duration_minutesinteger 1..600 (45 por defecto)
timezonezona IANA (Europe/Madrid por defecto)
capacityinteger | null
audience_product_idsinteger[]
session_kindstring

Valors: broadcast · group

broadcast_sourcestring

Valors: clonify · external

recurrencestring

Valors: once · weekly

recurrence_end{ type: forever | until | count, until_at?, count? }
auto_publish_replayboolean
bash
curl -X POST "https://www.clonify.com/api/v1/webinars" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"…","start_at":"…"}'
json
{
  "object": "list",
  "data": [{
    "object": "webinar",
    "id": 433,
    "title": "Asset allocation",
    "start_at": "2026-10-14T16:00:00.000Z",
    "duration_minutes": 120,
    "timezone": "Europe/Madrid",
    "status": "scheduled",
    "audience_product_ids": [3161],
    "session_kind": "group",
    "broadcast_source": "clonify",
    "public_slug": "42e59b8bdc0d",
    "replay_published": false,
    "auto_publish_replay": true,
    "registrant_count": 0
  }],
  "has_more": false,
  "next_starting_after": null,
  "calendar_activated": false
}
GET/api/v1/webinars/{id}

webinars_get

Pla amb secció de Webinars

Paràmetres de ruta

idintegerobligatori
bash
curl "https://www.clonify.com/api/v1/webinars/1" \
  -H "Authorization: Bearer clk_live_…"
PATCH/api/v1/webinars/{id}

webinars_update

Permís d'escripturaPla amb secció de Webinars

Paràmetres de ruta

idintegerobligatori

Cos (JSON)

titlestring (máx 200)
descriptionstring | null
start_atISO 8601
duration_minutesinteger 1..600
capacityinteger | null
audience_product_idsinteger[]
session_kindstring

Valors: broadcast · group

broadcast_sourcestring

Valors: clonify · external

auto_publish_replayboolean
bash
curl -X PATCH "https://www.clonify.com/api/v1/webinars/1" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"…","description":"…"}'
GET/api/v1/webinars/{id}/registrants

Llistar inscrits d'un webinar

Nom, correu electrònic i estat (registrat / va assistir / no va venir) de cada inscrit. El seu token d'accés a la sala mai viatja.

Pla amb secció de Webinars

Paràmetres de ruta

idintegerobligatori
bash
curl "https://www.clonify.com/api/v1/webinars/1/registrants" \
  -H "Authorization: Bearer clk_live_…"
GET/api/v1/webinars/attendance

Exportar l'assistència als directes d'un curs

Una fila per sessió i persona de totes les sessions d'un curs o producte que ja han començat (les cancel·lades no surten), per no haver de demanar els inscrits sessió a sessió. status val attended quan consta que la persona va arribar al directe (va reproduir l'emissió o va arribar a la porta de la taula de grup); registered_not_attended si té inscripció però no consta la seva entrada; no_show si és inscrita d'una sessió pública i se la va marcar absent en acabar. Durant les 24 hores prèvies a una sessió de curs, Clonify inscriu qui té accés als seus productes (fins a 500 per producte, i ningú si el producte és obert a tothom), així que registered_not_attended sol voler dir «convidat i no va venir»; qui queda fora d'aquest límit no té inscripció. En una sessió compartida per diversos productes només surten els alumnes del product_id demanat: es treu qui, en començar la sessió, només tenia accés pels altres productes, i es manté qui no té cap accés registrat. Amb include_not_joined=true s'hi afegeixen files not_joined: persones amb accés al producte quan va començar la sessió i sense inscripció. Aquest estat es DEDUEIX dels accessos que consten avui (una compra o etiqueta d'accés des que es va registrar a Clonify, una inclusió en un pack des que es va obrir) i de la seva caducitat; no és un registre del que va fer la persona, no recupera accessos retirats o retornats després i, en productes oberts a tothom, només inclou qui té un accés registrat. status_source diu d'on surt cada fila (registration o access). live_seconds mesura la connexió confirmada a la taula de grup o el temps de reproducció visible de l'emissió, i replay_watched_seconds la repetició vista; tots dos són null si no hi ha mesura, que va començar el setembre de 2026 i no es reconstrueix cap enrere. Són dades de connexió i reproducció, no prova d'atenció. Una pàgina pot portar menys files que limit, o cap, amb has_more encara a true: continua demanant fins que sigui false. L'objecte measurement de cada resposta resumeix què mesura cada camp.

Pla amb secció de Webinars

Paràmetres de consulta

product_idintegerobligatori

El curs o producte. Surten les sessions l'audiència de les quals l'inclou, i les files not_joined es calculen sobre l'accés a aquest producte. Obligatori.

fromISO 8601

Només les sessions que comencen en aquesta data o després. ISO 8601 amb zona (2026-10-01T00:00:00Z) o un dia (2026-10-01, mitjanit UTC).

untilISO 8601

Només les sessions que comencen abans d'aquesta data (no inclosa). Mateix format que from.

webinar_idinteger

Limita l'exportació a una sola sessió del producte.

include_not_joinedboolean

true hi afegeix qui tenia accés al producte quan va començar la sessió i no té inscripció (status not_joined, deduït de l'accés). Per defecte false: només inscripcions.

starting_afterstring

El next_starting_after de la pàgina anterior, tal qual (és un cursor opac). Omet-lo a la primera pàgina.

limitinteger 1..200

Màxim de files per pàgina: 1–200; per defecte 100.

bash
curl "https://www.clonify.com/api/v1/webinars/attendance" \
  -H "Authorization: Bearer clk_live_…"
json
{
  "object": "list",
  "data": [{
    "object": "webinar_attendance",
    "id": "WzQxMCwiYW5hQGV4YW1wbGUuY29tIl0",
    "webinar_id": 410,
    "webinar_title": "Clase en directo: módulo 3",
    "webinar_start_at": "2026-10-07T16:00:00.000Z",
    "webinar_status": "ended",
    "session_kind": "group",
    "registrant_id": 9120,
    "contact_id": 3,
    "visitor_id": 88,
    "name": "Ana Pérez",
    "email": "ana@example.com",
    "status": "attended",
    "status_source": "registration",
    "registered_at": "2026-10-06T16:00:04.000Z",
    "live_seconds": 4980,
    "live_seconds_source": "group_room_connections",
    "replay_watched": false,
    "replay_watched_seconds": null
  }, {
    "object": "webinar_attendance",
    "id": "WzQxMCwibHVpc0BleGFtcGxlLmNvbSJd",
    "webinar_id": 410,
    "webinar_title": "Clase en directo: módulo 3",
    "webinar_start_at": "2026-10-07T16:00:00.000Z",
    "webinar_status": "ended",
    "session_kind": "group",
    "registrant_id": null,
    "contact_id": 41,
    "visitor_id": 97,
    "name": "Luis Gómez",
    "email": "luis@example.com",
    "status": "not_joined",
    "status_source": "access",
    "registered_at": null,
    "live_seconds": null,
    "live_seconds_source": null,
    "replay_watched": true,
    "replay_watched_seconds": 1830
  }],
  "has_more": true,
  "next_starting_after": "WzQxMCwibHVpc0BleGFtcGxlLmNvbSJd",
  "measurement": { "status": "…", "not_joined": "…", "live_seconds": "…" }
}