ClonifyDevelopersOpen panel

Getting started

  • Authentication
  • Errors
  • Pagination
  • Rate limits
  • Webhooks
  • For AI agents
  • MCP server

API reference

  • Student learning activity6
  • External API deliveries6
  • Chat with the clone1
  • Contacts & tags5
  • Academy access4
  • Conversations4
  • Product catalogue11
  • External sales2
  • Knowledge12
  • Multimedia4
  • Clones (versions in the API)3
  • Meetings & bookings3
  • Webinars6
  • Account & usage1
Clonify

Academy access

GET/api/v1/access/mappings

List external course mappings

Returns the dictionary that translates stable academy IDs into your Clonify Products.

Query parameters

providerstring

Filter by platform or connector.

account_idstring

Filter by a specific school within that platform.

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

Map an external course

Creates or updates the link between an academy course and a Product in your account. Idempotent by platform, account and external ID.

Write permission

Body (JSON)

providerstringrequired

Stable connector identifier, such as wordpress or custom_web.

account_idstringrequired

Stable school or installation identifier.

external_product_idstringrequired

Immutable academy course ID; never use the title.

external_product_namestring

Display name, for diagnostics only.

product_idintegerrequired

ID of the corresponding Clonify Product.

access_urlstring

Optional URL where the learner opens the course. Must be http(s).

bash
curl -X POST "https://www.clonify.com/api/v1/access/mappings" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"provider":"…","account_id":"…","external_product_id":"…","product_id":1}'
DELETE/api/v1/access/mappings

Remove a course mapping

Deletes the dictionary entry; it does not delete access history already received.

Delete permission

Query parameters

providerstringrequired

Platform or connector for the mapping.

account_idstringrequired

Specific school for the mapping.

external_product_idstringrequired

Stable external course ID.

bash
curl -X DELETE "https://www.clonify.com/api/v1/access/mappings" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
json
{ "deleted": true }
POST/api/v1/access/sync

Sync a person's access

The single gateway for WordPress, academies and custom websites. It grants or expires passes using stable IDs, joins identity by email and stops the clone reselling something the person already owns.

Write permission

Body (JSON)

providerstringrequired

Stable connector identifier.

account_idstringrequired

Stable school or installation identifier.

modestringrequired

snapshot = full current picture; patch = only the included changes.Values: snapshot · patch

observed_atISO 8601required

When the platform observed this state. An older event cannot overwrite a recent one.

event_idstring

Optional webhook or delivery reference for audit.

personobjectrequired

Object with external_user_id and email; name is optional.

accessesobject[] (0..200)required

Course list: external_product_id, active/revoked status and optional product_id, name, URL, grant and expiry dates.

notifyboolean

Defaults to true. Queues the welcome for newly gained products; respects products with access email disabled. false silences it.

trigger_automationsboolean

Defaults to true. Triggers active student-tag sequences when access is gained. For a silent import, send false together with notify=false.

bash
curl -X POST "https://www.clonify.com/api/v1/access/sync" \
  -H "Authorization: Bearer clk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"provider":"…","account_id":"…","mode":"snapshot","observed_at":"2026-07-01T00:00:00Z","person":[{"…":"…"}],"accesses":[{"…":"…"}]}'
json
{
  "object": "access_sync",
  "provider": "wordpress",
  "account_id": "academia-principal",
  "mode": "snapshot",
  "received": 2,
  "activated": 2,
  "revoked": 1,
  "stale_ignored": 0,
  "unmapped": [],
  "follow_up": {
    "job_id": 123,
    "product_ids": [42, 43],
    "welcome_requested": true,
    "automations_requested": true,
    "status": "queued"
  }
}