Create a checklist
/checklistsNeedscontent.editCreates a draft checklist. Nothing is shown to visitors until you publish it (or send isActive: true).
Authorization
secretKeyAuthorizationBearer <sk_…>A secret API key from Settings → API keys. It acts with its creator's role.
Request Body
application/json- body
name*stringName. Only your team sees this. Default: "New checklist".
length <= 255urlPattern*stringPages it appears on: a full URL or path with * wildcards, e.g. https://app.acme.com/billing*, */settings/*, or * for every page.
length <= 500isActive?booleantrue also publishes the item to production in the same request (needs content.publish; refused with approval_required when the workspace requires review). Omit it to keep a draft.
title?stringTitle. Default: "Get started".
length <= 200description?|Description.
items?array<>Items. Up to 20 tasks, each with an optional action and how it completes.
items <= 20launcher?Launcher. Where the launcher button sits, its label, and whether the panel opens by itself.
{}completionMessage?|Completion message. Shown when every item is done. Default: "You're all set!".
styling?Styling. Accent, background and text colors (the player's defaults when empty).
{}audienceRules?|Audience Rules. Advanced audience targeting rules.
priority?integerPriority. When several pop-ups qualify on the same page, the highest priority shows first. Default: 50.
0 <= value <= 100frequencyType?"always"Frequency. One of: "always" (Until finished or dismissed). Default: "always".
"always"Response Body
Created
application/json- response
checklist*A checklist with its working draft. What visitors see is the version in publication.
curl -X POST 'https://app.cueston.com/api/checklists' \
-H 'Content-Type: application/json' \
-d '{
"name": "Onboarding tour",
"urlPattern": "https://app.acme.com/*"
}'{
"checklist": {
"id": 42,
"name": "Onboarding tour",
"urlPattern": "https://app.acme.com/*",
"isActive": true,
"title": "Welcome to Acme",
"description": "string",
"items": [
{
"id": 42,
"title": "Welcome to Acme",
"description": "string",
"action": {
"type": "none"
},
"completion": {
"type": "manual"
},
"translations": {
"property1": {
"title": "Welcome to Acme",
"description": "string"
},
"property2": {
"title": "Welcome to Acme",
"description": "string"
}
}
}
],
"launcher": {},
"completionMessage": "string",
"styling": {},
"audienceRules": {
"enabled": false,
"matchType": "all",
"rules": [
{
"id": "string",
"attribute": "string",
"operator": "equals",
"value": "string",
"key": "string"
}
]
},
"priority": 0,
"frequencyType": "always",
"createdAt": "2026-10-26T09:30:00Z",
"updatedAt": "2026-10-26T09:30:00Z",
"publication": {
"production": {
"versionId": 7,
"version": 3,
"publishedAt": "2026-10-26T09:30:00Z"
},
"staging": {
"versionId": 7,
"version": 3,
"publishedAt": "2026-10-26T09:30:00Z"
}
},
"hasUnpublishedChanges": true
}
}