ClippedDocs

Quickstart

A key, a first call, and a whole setup in five more.

1. Make a key

Everything is authenticated with an API key you make yourself under API & agents in the app. A key acts as you: it sees your recordings and nobody else's, it can change your settings, and it is limited by your plan. Treat it like a password; revoke it there if it leaks.

Send it as a bearer token on every request. X-Api-Key works too, for clients that only offer that. Bodies are JSON, and so is every answer.

2. Make a first call

GET /api/v1/me is the call to make first: it says which account the key is for, what the plan allows, how much of it is used, and who you are watching.

GET/api/v1/me

The account, its plan and allowance, the rate limits, and the lineup.

Who am I, and what may I do?Shell
curl https://app.clipped.so/api/v1/me \
  -H "Authorization: Bearer clip_sk_…"
The answerJSON
{
  "account": { "id": "8f1c…", "email": "you@example.com" },
  "plan": { "name": "Pro", "channelsAtOnce": 5, "streamHours": 300, "streamHoursUsed": 41.5, "status": "active" },
  "limits": { "perMinute": 120, "perDay": 20000 },
  "following": ["jynxzi", "kick:xqc"]
}

3. A whole setup in five calls

What most integrations do, start to finish: watch a streamer, decide what posts itself, hear about clips as they are found, and post the ones that did not post themselves.

Connecting a YouTube, TikTok or Instagram account is the one thing a key cannot do — it is a sign-in the account's owner does once, in the browser, under Settings → Accounts. Everything after that can be done from here.

Shell
KEY=clip_sk_…

# 1. Watch a streamer. They are recorded whenever they go live from now on.
curl -X POST https://app.clipped.so/api/v1/streamers -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" -d '{ "channel": "jynxzi" }'

# 2. Let their best clips post themselves: anything scoring 80 or more.
curl -X PATCH https://app.clipped.so/api/v1/streamers/jynxzi -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" -d '{ "autoPost": { "on": true, "minScore": 80 } }'

# 3. Cut everything vertical with captions, and post at most six a day.
curl -X PATCH https://app.clipped.so/api/v1/settings -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" -d '{ "format": "blur-fill", "captions": true, "postsPerDay": 6 }'

# 4. Be told when a clip is ready (or poll /api/v1/clips with a cursor instead).
curl -X POST https://app.clipped.so/api/v1/webhooks -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" -d '{ "url": "https://example.com/clipped", "events": ["clip.ready"] }'

# 5. Post one by hand.
curl -X POST "https://app.clipped.so/api/v1/clips/$CLIP_ID/publish" -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" -d '{ "destination": "youtube" }'

Where next