Docs
Checklists

Create a checklist

POST/checklistsNeedscontent.edit

Creates a draft checklist. Nothing is shown to visitors until you publish it (or send isActive: true).

Authorization

secretKey
headerAuthorizationBearer <sk_…>

A secret API key from Settings → API keys. It acts with its creator's role.

Request Body

application/json
  1. body
name*string

Name. Only your team sees this. Default: "New checklist".

Lengthlength <= 255
urlPattern*string

Pages it appears on: a full URL or path with * wildcards, e.g. https://app.acme.com/billing*, */settings/*, or * for every page.

Lengthlength <= 500
isActive?boolean

true 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?string

Title. Default: "Get started".

Lengthlength <= 200
description?|

Description.

items?array<>

Items. Up to 20 tasks, each with an optional action and how it completes.

Itemsitems <= 20
launcher?

Launcher. Where the launcher button sits, its label, and whether the panel opens by itself.

Default{}
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).

Default{}
audienceRules?|

Audience Rules. Advanced audience targeting rules.

priority?integer

Priority. When several pop-ups qualify on the same page, the highest priority shows first. Default: 50.

Range0 <= value <= 100
frequencyType?"always"

Frequency. One of: "always" (Until finished or dismissed). Default: "always".

Value in"always"

Response Body

Created

application/json
  1. response
checklist*

A checklist with its working draft. What visitors see is the version in publication.

Shell
curl -X POST 'https://app.cueston.com/api/checklists' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Onboarding tour",
  "urlPattern": "https://app.acme.com/*"
}'
Example Response
JSON
{
  "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
  }
}