Getting Started
Quickstart
Make your first Rad TV API call and verify your connection.
Get up and running with the Rad TV API in under a minute. By the end you'll have confirmed your connection and queried your channel.
You need an active premium subscription (Premium, Premium+, or Creator+) to use the Rad TV API. Check your subscription.
1. Get your API key
Generate an API key from Developer Settings. For this quickstart, replace YOUR_API_KEY with your actual key.
2. Verify your connection
The verifyConnection query confirms your auth is working and returns your user info, channel, subscription, and permissions.
curl -X POST https://api.rad.live/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "{ verifyConnection { ok user { id username email } channel { id metadata { name } } subscription { plan { name } state } permissions } }"
}'const response = await fetch('https://api.rad.live/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
},
body: JSON.stringify({
query: `{
verifyConnection {
ok
user { id username email }
channel { id metadata { name } }
subscription { plan { name } state }
permissions
}
}`,
}),
});
const { data } = await response.json();
console.log(data.verifyConnection);import requests
response = requests.post(
"https://api.rad.live/graphql",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"query": """
{
verifyConnection {
ok
user { id username email }
channel { id metadata { name } }
subscription { plan { name } state }
permissions
}
}
"""
},
)
data = response.json()["data"]
print(data["verifyConnection"])Response
{
"data": {
"verifyConnection": {
"ok": true,
"user": {
"id": "did:rad.live:channel/abc123",
"username": "mychannel",
"email": "me@example.com"
},
"channel": {
"id": "did:rad.live:channel/abc123",
"metadata": { "name": "My Channel" }
},
"subscription": {
"plan": { "name": "Creator+" },
"state": "ACTIVE"
},
"permissions": ["content:create", "content:publish", "content:enhance"]
}
}
}3. Query your channel
Once verified, try querying your channel's content:
curl -X POST https://api.rad.live/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "{ me { channel { id metadata { name summary } features(first: 5) { edges { node { id metadata { title } } } } } } }"
}'const response = await fetch('https://api.rad.live/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
},
body: JSON.stringify({
query: `{
me {
channel {
id
metadata { name summary }
features(first: 5) {
edges {
node {
id
metadata { title }
}
}
}
}
}
}`,
}),
});
const { data } = await response.json();
console.log(data.me.channel);response = requests.post(
"https://api.rad.live/graphql",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"query": """
{
me {
channel {
id
metadata { name summary }
features(first: 5) {
edges {
node {
id
metadata { title }
}
}
}
}
}
}
"""
},
)
channel = response.json()["data"]["me"]["channel"]
print(channel)Next steps
- Pagination — How
edges,node, and cursors work for channel and catalog lists - Authentication — Learn about auth patterns and token types
- Workflows — See the key things you can build: publish videos, AI upscaling, YouTube sync
- GraphQL API — Explore the full GraphQL schema
- MCP — Connect AI agents via the Model Context Protocol