Developers

API & MCP

Connect CueTwin to your tools: send scripts and files through the API, or let an AI assistant (Claude, Cursor, VS Code…) create and edit scripts for you through MCP.

To start, create a key in CueTwin → Developers. It is free and works on every plan.

MCP server

With MCP, your AI assistant can list, write, edit and import scripts. Ask it, for example: “Write a 2-minute launch script and save it to CueTwin.”

URLhttps://cuetwin.com/api/mcp

In the examples, replace ct_live_A_TUA_CHAVE with your key. Create it in CueTwin → Developers.

Install in CursorOpens Cursor to confirm. Or, by hand, in Settings → MCP → Add, paste:
{
  "mcpServers": {
    "cuetwin": {
      "url": "https://cuetwin.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ct_live_A_TUA_CHAVE"
      }
    }
  }
}
Available tools
  • list_scripts · get_script · get_account
  • create_script · update_script · delete_script
  • import_file (.txt, .md, .html, .docx, .pdf)

API

A JSON REST API. Authenticate each request with the Authorization header. Your plan limits apply, and changes to a script show straight away on screens presenting it.

Base URLhttps://cuetwin.com/api/v1
Authorization: Bearer ct_live_A_TUA_CHAVE
GET/meYour account, plan and scripts used.
GET/scriptsLists scripts (optional: ?folder=YouTube/Shorts for one folder, ?folder= for the root).
POST/scriptsCreates a script: { title, content, folder? }. The folder is a name or path and is created if missing.
POST/scripts/importCreates a script from a .txt, .md, .html, .docx or .pdf file.
GET/scripts/:idOne script with its full text.
PATCH/scripts/:idChanges the title, text or folder.
POST/scripts/:id/importReplaces a script’s text with a file’s.
DELETE/scripts/:idDeletes a script.

Create a script

curl https://cuetwin.com/api/v1/scripts \
  -H "Authorization: Bearer ct_live_A_TUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"title": "Launch", "content": "## Opening\n\nHello everyone! [SMILE]"}'

Upload a file

curl https://cuetwin.com/api/v1/scripts/import \
  -H "Authorization: Bearer ct_live_A_TUA_CHAVE" \
  -F "file=@speech.docx" \
  -F "folder=Events"
JSON works too: { "filename": "speech.pdf", "data": "<base64>" }. 10 MB maximum. Document headings become sections.

JavaScript

const res = await fetch('https://cuetwin.com/api/v1/scripts', {
  method: 'POST',
  headers: { Authorization: 'Bearer ct_live_A_TUA_CHAVE', 'Content-Type': 'application/json' },
  body: JSON.stringify({ title: 'Tuesday video', content: 'Hi! Today we talk about…' }),
});
const script = await res.json(); // { id, title, content, wordCount, seconds, … }

Script format

Errors: 401 missing or invalid key, 403 plan limit, 404 script not found, 429 too many requests (120 a minute). Send x-ct-locale: en to get messages in English.
API & MCP — CueTwin