For developers and SaaS products

Add AI video to your product in a few calls

A REST API, an MCP server and webhooks: your product creates explainer videos and cuts long videos into shorts, without your users ever opening ClipOnIt.

Starter plan or above · create the key in Settings → Integrations

Three ways to use it

ClipOnIt's two products, called from your code or by an agent.

  • AI Explainer

    A training tool: one explainer video per lesson

    Your product sends the lesson's title or text; ClipOnIt writes the scenes, illustrates them, adds the voice and captions, then renders a vertical MP4 you show next to the course.

    POST /api/agent/produce

  • Smart Clipper

    A podcast platform: the shorts of every episode

    Each time an episode goes live, your server sends the video link; ClipOnIt finds the best moments, scores them out of 100, reframes them to 9:16 and captions them. You export the ones you want.

    POST /api/videos/url

  • MCP

    An AI agent that drives ClipOnIt

    Your agent (Claude, Cursor, VS Code or your own) connects to the MCP server: it imports a video, picks clips, starts an explainer video and waits for the result with tools that are already described.

    POST /mcp

Always the same flow

A video takes minutes, not milliseconds: you create a task, follow its state, then fetch the file.

  1. Create the task

    One POST with the topic or the video link. Immediate response with an id.

  2. Follow the state

    A GET every 10 s or so: step, percentage, time left. For the Explainer, a webhook can notify you instead.

  3. Fetch the video

    Once done, the MP4 URL is in the response. Download it or show it in your product.

AI Explainer

An explainer video from a topic

POST /api/agent/produce takes a topic (or a script, or an audio recording) and starts writing then rendering. GET /api/jobs/{id} returns status, step, percent, then url once the video is ready.

  • duration_s15 to 180 seconds
  • style22 visual styles, and yours: GET /api/explainer/styles
  • voicea catalogue voice, by name or id
  • dry_runtrue: checks quota and cost without starting anything
curl -s -X POST https://cliponit.app/api/agent/produce \
  -H "Authorization: Bearer $CLIPONIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"topic": "Photosynthesis in 3 steps", "duration_s": 45}'

curl -s https://cliponit.app/api/jobs/JOB_ID \
  -H "Authorization: Bearer $CLIPONIT_API_KEY"

curl -s -o lesson.mp4 "JOB_URL"

Smart Clipper

The shorts of a long video

POST /api/videos/url imports a link (YouTube or an https video file); POST /api/videos also accepts a file upload. Once state is ready, clips holds the moments found, each with score, title and reason.

POST /api/clips/{id}/export renders the reframed, captioned clip (vertical or horizontal orientation); GET /api/exports/{id} gives url once done.

curl -s -X POST https://cliponit.app/api/videos/url \
  -H "Authorization: Bearer $CLIPONIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/episode-42.mp4"}'

curl -s https://cliponit.app/api/videos/VIDEO_ID \
  -H "Authorization: Bearer $CLIPONIT_API_KEY"

curl -s -X POST "https://cliponit.app/api/clips/CLIP_ID/export?orientation=vertical" \
  -H "Authorization: Bearer $CLIPONIT_API_KEY"

curl -s https://cliponit.app/api/exports/EXPORT_ID \
  -H "Authorization: Bearer $CLIPONIT_API_KEY"

MCP

An MCP server for agents

Single address https://cliponit.app/mcp, over streamable HTTP. The tools cover both products: import, wait, create and export clips, produce an explainer video and wait for it. The ones that change something are annotated so the agent asks first.

Claude Desktop and Claude.ai: Settings → Connectors → Add custom connector, with the address above. Sign-in goes through OAuth, no key to copy; ChatGPT works the same way. Step by step

claude mcp add --transport http cliponit https://cliponit.app/mcp \
  --header "Authorization: Bearer $CLIPONIT_API_KEY"

Get notified instead of polling

In Settings → Integrations, add up to 3 https URLs. When an Explainer production ends, ClipOnIt sends job.done or job.failed there, with the same object as GET /api/jobs/{id}. Six attempts on failure, over about 8 hours.

There are no webhooks for Smart Clipper clips yet: follow the state with GET.

import hashlib, hmac, time

def verify(secret: str, header: str, body: bytes, tolerance: int = 300) -> bool:
    """header = X-ClipOnIt-Signature, body = raw request bytes."""
    parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
    if abs(time.time() - int(parts.get("t", 0))) > tolerance:
        return False
    mac = hmac.new(secret.encode(), parts["t"].encode() + b"." + body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(mac, parts.get("v1", ""))

Limits and quotas per plan

API calls count the same as in the app: same quotas, same account. See pricing

FreeStarterProBusiness
API and MCP—✓✓✓
Smart Clipper videos per month22060200
Source video minutes per month404809002 400
Explainer videos per month—1530100
Explainer productions at once—222
API keys per account—101010
Webhooks per account—333

Security

Call ClipOnIt from your server, never from your users' browser.

Privacy policy
  • The key stays on your server.It gives access to the whole ClipOnIt account: never in the browser, a mobile app or a Git repo. Keep it in an environment variable and call ClipOnIt from your backend.
  • One key per use, with its scope.“Read” scope (look up, check) or “production” scope (create videos). Each key has a name and a last-used date, and is revoked in one click: it returns 401 from the next call.
  • The secret is shown once.ClipOnIt only keeps its hash (SHA-256). A lost key is replaced, never read back.
  • Signed webhooks.Every delivery carries X-ClipOnIt-Signature (HMAC-SHA256 of the timestamp and body); reject anything older than 5 minutes. Receiving URLs are https and checked on every delivery.
  • Hosted in the European Union.Hetzner servers in the EU; processors listed in the privacy policy.

Frequently asked questions

SDK, widget, timing, quotas and volume.

Which plan do I need for the API?

Starter or above. The free plan has no API or MCP access: no key can be created and the MCP server answers “plan without API access”. API quotas are the account's quotas, the same as in the app.

Is there an SDK?

No official SDK for now. The API is HTTP and JSON, described in OpenAPI 3.1 (/openapi.json): the examples on this page fit in a few lines of fetch or standard Python, and you can generate a client from the OpenAPI file.

Can I embed a ClipOnIt player or editor in my site?

No, there is no embeddable widget. You fetch the MP4 file and show it in your own player, or host it yourself.

How long does a video take?

An explainer video: a few minutes (writing then rendering, about 4 min for the render). Clips: about 1 to 5 minutes for 20 minutes of video, then each clip's export. The API returns the step, the percentage and an estimate of the time left.

What happens when a quota is reached?

The API returns 402 with a clear message (monthly quota or AI budget), 403 if the feature is not in the plan, 429 if two Explainer productions are already running. For the Explainer, "dry_run": true checks everything before starting, without creating or billing anything.

I want to connect ClipOnIt for all my users.

A key acts on a single ClipOnIt account: videos and quotas belong to that account. For larger-scale use, write to contact@cliponit.app with your volume and use case.

Your first video through the API, today

Create a key, copy an example, run it. A question about your integration: contact@cliponit.app.

llms-api.txt · OpenAPI 3.1 · mcp.json