MakeMyContent Clips

MakeMyContent Clips API

REST + MCP for rights-gated clipping. Machine-readable spec: /openapi.json (OpenAPI 3.1). Agent quickstart: /docs/agents.

Authentication

Send Authorization: Bearer cw_... (or X-Api-Key). Create a key from your account. No key or a bad key: 401. A key without the needed scope (read / write / billing): 403 insufficient_scope. Unknown job or clip: 404. Bad input: 400.

Endpoints

OperationWhatScope
GET /healthLiveness-
GET /api/v1/programsList opt-in clipper programmesread
POST /api/v1/rights/checkAsk the rights gate whether a source may be clipped (200 ALLOW, 403 REFUSE)read
GET /api/v1/grantsList your rights grantsread
POST /api/v1/grantsRegister a rights grant (customer keys: kind=owned, self_file)write
POST /api/v1/uploadsMultipart upload (field `file`) of a source videowrite
POST /api/v1/uploads/initStart a chunked uploadwrite
POST /api/v1/uploads/{upload_id}/chunk/{index}Send one raw-bytes chunk (not rate-limited per call)write
POST /api/v1/uploads/{upload_id}/completeFinish a chunked uploadwrite
POST /api/v1/uploads/{upload_id}/abortAbort a chunked upload (idempotent)write
GET /api/v1/uploads/{upload_id}Chunked upload statusread
POST /api/v1/clipsCreate 9:16 captioned clips from an uploaded source (counts 1 source video)write
POST /api/v1/jobsOne-call path: attestation + uploaded file in, gated job out (counts 1 source video)write
GET /api/v1/clips/{jid}Job status; each finished clip carries download_url and thumbnail_urlread
GET /api/v1/clips/{jid}/filesDownload a rendered clip or its thumbnailread
POST /api/v1/scheduleRecord a publish intent for the Distributor (publishes nothing)write
GET /api/v1/tiktok/draftTikTok creator_info draft (never posts)read
GET /api/v1/usagePlan, monthly source-video usage, limitread
GET /v1/usageUsage incl. metered call counts and the price listread
GET /v1/exportExport all your jobs, grants, schedule intents and usage events (json, or csv=jobs)read
DELETE /api/v1/accountDESTRUCTIVE: delete your jobs, clips, uploads and revoke this keywrite
POST /mcpRemote MCP server (JSON-RPC 2.0: initialize, tools/list, tools/call). create_clips counts 1 source video.read (tools/list) / write (write tools)

Errors

Always JSON {"error": code, "detail": text}.

Rate limits

120 requests/minute per key, 20/minute per IP when unauthenticated. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (seconds). Over the limit: 429 with Retry-After.

Idempotency

POST /api/v1/clips, /jobs, /schedule, /grants accept Idempotency-Key; a retry with the same key and body returns the first response for 24 hours.

Prices

PlanPriceIncludedStripe lookup key
Free$0 / month2 source videos / month-
Solo$9 / month10 source videos / monthf5312_clipwright_creator
Clipper$19 / month40 source videos / monthf5312_clipwright_clipper
Agency$49 / month150 source videos / monthf5312_clipwright_agency

Unit: one source video (a job created via POST /api/v1/clips, /api/v1/jobs or MCP clipwright_create_clips). Clips per source, captions, thumbnails and all reads are unmetered. Past the quota the call returns 402 quota_exceeded; nothing is billed as overage.

Your data

GET /v1/export returns everything stored for your key as JSON (?format=csv for jobs). DELETE /api/v1/account with {"confirm":true} deletes jobs, clips and uploads and revokes the key.