Add a channel
Register a channel on the allowlist. On YouTube that is what stops our catalog generating Content-ID claims against it. See Platforms for what value is on each one.
POST/api/v4/allowlist/channels/
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PARTNER_API_KEY>. |
Content-Type | Yes | application/json. |
X-User-ID | No | Register the channel for one of your end users rather than your own account. See Acting for your end users. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
provider | string | Yes | The platform: youtube, instagram, tiktok, facebook, rss or website. |
value | string | Yes | On youtube, the channel id — the 24-character string beginning with UC, not a handle and not a URL. On every other platform, the profile URL. A feed URL has to answer where you point it: one that answers with a permanent redirect is refused. |
Example request
curl https://api.slipstreammusic.com/api/v4/allowlist/channels/ \
-X POST \
-H "Authorization: Bearer $PARTNER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "youtube",
"value": "UC_x5XG1OV2P6uZZ5FSM9Ttw"
}'Response — 201 Created
{
"id": "9b5c3d2e-0a8e-4b7c-8c4d-2f9e5f6b8d7c",
"channel_id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"name": "Google for Developers",
"provider": "youtube",
"image_url": "https://yt3.ggpht.com/..."
}The body is the channel object itself. name and image_url come from YouTube — you do not send them.
Example request — another platform
curl https://api.slipstreammusic.com/api/v4/allowlist/channels/ \
-X POST \
-H "Authorization: Bearer $PARTNER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "instagram",
"value": "https://instagram.com/creator"
}'{
"id": "3f1a7c88-5d2b-4e19-9a30-6c7e1b4f2d05",
"channel_id": null,
"name": "https://instagram.com/creator/",
"provider": "instagram",
"image_url": null
}Off YouTube the profile URL comes back as name, normalised, and channel_id is null.
Store the id: it is what removes the channel later. If you lose it, List channels and match on channel_id — a repeat POST will not give it back to you.
Errors
| HTTP | When |
|---|---|
| 400 | provider is not one of the platforms above; value could not be verified — an id that resolves to no YouTube channel, an Instagram URL on another host, a feed that is not publicly reachable; the channel is already registered; or the account’s channel allowance is used up |
| 401 | No credential, or the credential is not recognised |
| 403 | Channel management is not enabled on your account, or X-User-ID was sent from an account without end-user support |
| 406 | These endpoints only produce JSON. Send Accept: application/json or */* |
| 429 | Rate limit or usage allowance exceeded |
An already-registered channel is refused with one of two messages, and they mean different things — see One channel, one allowlist.