Connect your AI

Use Cursor, Claude, or ChatGPT to write scripts, render videos, and publish to YouTube — without leaving the chat. You only need an API key and a few minutes to set it up.

What you can do

MCP is the bridge between your AI and oDarkly. Instead of clicking through the dashboard, you describe what you want and the assistant runs it: create a project, generate a script, render the MP4, queue YouTube uploads, or create and track automations. Everything runs in the cloud — nothing to install locally.

Works in Cursor, Claude Desktop, ChatGPT (MCP connectors), and any client that supports remote HTTPS servers.

1. Create your API key

The key identifies your account when the AI connects to oDarkly. It is shown only once — copy it and store it somewhere safe.

  1. Sign in to your dashboard.
  2. Go to Settings → Connect your AI.
  3. Create the key and copy the odk_live_… value right away.
  4. Want full video + YouTube automation? Also enable the generate and youtube:write scopes.

2. Connect your assistant

Paste the URL below into the app you use. No Node install or local script — the server is already live.

https://odarkly.com/api/mcp

Send your API key on every request:

Authorization: Bearer odk_live_YOUR_KEY_HERE

Client without remote support?

If the app only accepts local (stdio) MCP, use the mcp-remote package as a bridge — it connects to the oDarkly remote server for you:

{
  "mcpServers": {
    "odarkly": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://odarkly.com/api/mcp",
        "--header",
        "Authorization: Bearer odk_live_YOUR_KEY_HERE"
      ]
    }
  }
}

Test connection

With your odk_live_… key from the dashboard, this command should return protocolVersion and odarkly serverInfo:

curl -X POST https://odarkly.com/api/mcp \
  -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

Security

Remote MCP uses the same authentication as API v1. Each user can only access their own account — there is no shared login.

  • Keys are personal: create them in Settings → Connect your AI and revoke if leaked.
  • You choose what each key can do: read-only, create projects, generate videos, or publish to YouTube.
  • All requests must use HTTPS. Never expose your key on public sites or repositories.
  • Per-key and per-IP rate limits help prevent abuse.
  • During dashboard maintenance, MCP is unavailable for regular users (admins retain access).

Cursor configuration

Add to .cursor/mcp.json or Cursor Settings → MCP. Paste the remote URL and Authorization header with your odk_live_… key.

{
  "mcpServers": {
    "odarkly": {
      "url": "https://odarkly.com/api/mcp",
      "headers": {
        "Authorization": "Bearer odk_live_YOUR_KEY_HERE"
      }
    }
  }
}

Claude configuration

In Claude Desktop: Settings → Connectors → Add custom connector. URL: https://odarkly.com/api/mcp with Bearer auth and your API key. In Claude Code, use the JSON block below.

{
  "mcpServers": {
    "odarkly": {
      "url": "https://odarkly.com/api/mcp",
      "headers": {
        "Authorization": "Bearer odk_live_YOUR_KEY_HERE"
      }
    }
  }
}

ChatGPT configuration

ChatGPT only connects to remote MCP servers over HTTPS (no local stdio).

  1. Open ChatGPT → Settings → Connectors (or Developer / Apps).
  2. Add a custom MCP connector.
  3. Server URL: https://odarkly.com/api/mcp — auth: Bearer odk_live_…
https://odarkly.com/api/mcp

From script to YouTube

With the right scopes on your key, you can ask for all of this in one conversation. The AI calls the tools in order — you do not need to memorize the names.

  1. Create the project and generate script, images, and narration. create_project · generate_script · generate_scene_images · generate_audio
  2. Render the video and wait until it is ready. start_render · get_render_job
  3. Check your channels and queue the video for publishing. list_youtube_channels · queue_youtube_video
  4. Set up a funnel to publish on a fixed schedule if you want the channel on autopilot. create_funnel · update_funnel
  5. Create and track dashboard Automations: which are ready, which ran, and which already posted. create_automation · list_automations · list_automation_runs
  6. Create influencer, carousel, UGC, cinema, or GUM Animator from chat — the same tools as the dashboard. create_influencer · create_gum_character · create_carousel · create_ugc_video · create_cinema_video · prepare_gum_animator · create_gum_animator

To publish on YouTube, connect your channel once under Channels in the dashboard — the AI uses the connection you already set up.

Example prompts

Copy, tweak, and send these in your assistant after connecting MCP:

  • Create a horror Short about an abandoned lighthouse, generate everything, and render the video.

  • List my ready projects and queue the latest one on my main channel.

  • Create a funnel on channel X posting Mon–Fri at 6pm with review before upload.

  • List my automations, tell me which are ready and whether the last run posted to YouTube. Then create a horror Short automation through publish.

  • Create a female influencer, 25, curly hair, casual look. Then a 7-slide Instagram carousel about a skincare routine with her.

  • List my GUM Creator sheets. Prepare this MP4 in GUM Animator and recast the main person as the latest sheet.

Tool reference

These are the commands your AI can run for you. Each one needs the scope shown on the right — without it, the tool will not appear in the list.

Tool Description API endpoint Scope
Account & projects
list_projects See your video projects GET /api/v1/projects.php read
get_project Open one project with scenes and status GET /api/v1/projects.php?id= read
create_project Start a SHORT, LONG, or MUSIC_VIDEO POST /api/v1/projects.php projects:write
get_credits Check credit balance and plan GET /api/v1/credits.php read
get_me See your profile (name, email, credits) GET /api/v1/me.php read
Retention videos
create_retention_video Create a retention video job (OpenAI script uses credits; B-roll and render are unlimited on the plan) MCP only generate
get_retention_job Get status and MP4 URL of a retention job MCP only read | generate
list_retention_jobs List your recent retention video jobs MCP only read
Video production
generate_script Generate script and scenes (uses script credits) MCP only generate
generate_scene_images Generate scene images (uses image credits) MCP only generate
generate_audio Generate narration and captions (uses audio credits) MCP only generate
start_render Render the MP4 on the server MCP only generate
get_render_job Track render progress MCP only read | generate
YouTube & funnels
list_youtube_channels See connected channels, funnels, and publish queue MCP only read | youtube:write
queue_youtube_video Queue a finished video for YouTube MCP only youtube:write
bulk_queue_youtube Fill the queue with multiple projects at once MCP only youtube:write
youtube_post_action Approve, cancel, retry, or edit a queued post MCP only youtube:write
create_funnel Create a publishing funnel on a channel MCP only youtube:write
update_funnel Change schedule, metadata, or review settings MCP only youtube:write
delete_funnel Remove a funnel (blocked if active posts remain) MCP only youtube:write
Automations
list_automations See automations: ready, on, running, and the next topic MCP only read
get_automation Open one automation with status and whether videos posted MCP only read
list_automation_runs Run history: success, errors, and YouTube posted status MCP only read
create_automation Create an automation (same flow as the dashboard) MCP only projects:write
update_automation Change topics, pipeline, voice, or style of an automation MCP only projects:write
toggle_automation Turn an automation on or pause it MCP only projects:write
delete_automation Delete an automation (videos already created are kept) MCP only projects:write
Influencer & GUM Creator
list_influencers List UGC library influencers GET /api/ugc/influencers.php read
get_influencer Open one influencer with photos GET /api/ugc/influencers.php?id= read
create_influencer Create an influencer from a look description (uses credits) POST /api/ugc/influencers.php generate
list_gum_characters List GUM Creator character sheets GET /api/ai-influencer/sheets.php read
get_gum_character See a GUM Creator sheet and generation status GET /api/ai-influencer/status.php read | generate
create_gum_character Generate a GUM Creator character POST /api/ai-influencer/generate.php generate
save_gum_character Save a finished sheet into the influencer library POST /api/ai-influencer/sheets.php generate
Carousel
list_carousels List carousels GET /api/carousel/list.php read
get_carousel See carousel slides, status, and download GET /api/carousel/status.php read | generate
create_carousel Create a viral carousel (uses credits) POST /api/carousel/generate.php generate
UGC & Cinema
list_ugc_jobs List UGC studio clips MCP only read
get_ugc_job See UGC or Cinema clip status and URL GET /api/ugc/status.php read | generate
create_ugc_video Generate a UGC clip (livre or product) POST /api/ugc/generate.php generate
list_cinema_jobs List Cinema Studio jobs MCP only read
create_cinema_video Generate a Cinema video (Wan, Kling, motion, Genjutsu) POST /api/ugc/generate.php generate
GUM Animator
list_gum_animator_jobs List GUM Animator jobs GET /api/gum-animator/jobs.php read
get_gum_animator See recast video status and URL GET /api/gum-animator/status.php read | generate
prepare_gum_animator Prepare an HTTPS video and detect people POST /api/gum-animator/prepare.php generate
create_gum_animator Swap the detected person with a GUM Creator character POST /api/gum-animator/generate.php generate

REST API v1

All endpoints live under /api/v1/. Send JSON for POST requests with Content-Type: application/json. Authenticate with a Bearer token.

Authentication

Include your API key in every request:

Authorization: Bearer odk_live_YOUR_KEY_HERE
Method Path Description Scope
GET /api/v1/projects.php List projects (optional ?limit=1–100) read
GET /api/v1/projects.php?id={id} Get one project by ID (?id=) read
POST /api/v1/projects.php Create a new project (JSON body: type, topic, niche, …) projects:write
GET /api/v1/credits.php Credit balance and plan read
GET /api/v1/me.php Authenticated user profile read

API key scopes

Enable only what you need. Default keys can read and create projects. To produce and publish videos through your AI, turn on the two extra scopes below.

  • read View projects, automations, credits, profile, and render progress
  • projects:write Create projects and manage automations
  • generate Generate script, images, audio, and render the MP4
  • youtube:write Publish to YouTube and manage channel funnels

Rate limits

Limits apply per API key. When exceeded, the API returns HTTP 429.

  • 300 read requests per minute per API key
  • 30 write requests (POST) per minute per API key

Example requests

Replace odk_live_YOUR_KEY_HERE with your actual key. Never commit keys to version control.

Get profile

curl -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
  https://odarkly.com/api/v1/me.php

Get credits

curl -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
  https://odarkly.com/api/v1/credits.php

List projects

curl -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
  "https://odarkly.com/api/v1/projects.php?limit=10"

Create a SHORT project

curl -X POST \
  -H "Authorization: Bearer odk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"type":"SHORT","topic":"A haunted lighthouse","niche":"TERROR"}' \
  https://odarkly.com/api/v1/projects.php

Want to try it now?

Create your account, generate a key in Settings, and paste it into Cursor or Claude. In a few minutes you can ask for your first video in chat.

Start free →