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

HeaderRequiredDescription
AuthorizationYesBearer <PARTNER_API_KEY>.
Content-TypeYesapplication/json.
X-User-IDNoRegister the channel for one of your end users rather than your own account. See Acting for your end users.

Request body

FieldTypeRequiredDescription
providerstringYesThe platform: youtube, instagram, tiktok, facebook, rss or website.
valuestringYesOn 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

HTTPWhen
400provider 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
401No credential, or the credential is not recognised
403Channel management is not enabled on your account, or X-User-ID was sent from an account without end-user support
406These endpoints only produce JSON. Send Accept: application/json or */*
429Rate 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.