Getting Started
Authentication
Understand Bearer tokens, API keys, and OAuth 2.1 patterns for the Rad TV API.
All Rad TV API requests (except browsing ratings and genres) require authentication via the Authorization header.
Bearer Token
Every authenticated request uses the same header format:
Authorization: Bearer <your-api-key>Auth Methods
| Method | Best For |
|---|---|
| API Key | Direct API access, scripts, server-side integrations |
| OAuth 2.1 | MCP clients (Claude, Cursor), third-party apps with delegated access |
API Keys
The simplest way to authenticate. Generate one from Developer Settings, then include it in every request.
See API Keys for details.
OAuth 2.1
For MCP clients and third-party apps that need delegated access. Uses PKCE (S256) for security.
Key endpoints:
- Discovery:
GET /.well-known/oauth-authorization-server - Register your app:
POST /oauth/register - Authorize:
GET /oauth/authorize - Get tokens:
POST /oauth/token - Revoke access:
POST /oauth/revoke
See MCP Server for the full OAuth connection flow.
Making Authenticated Requests
curl -X POST https://api.rad.live/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"query": "{ me { id username } }"}'const API_KEY = 'YOUR_API_KEY';
const response = await fetch('https://api.rad.live/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`,
},
body: JSON.stringify({
query: '{ me { id username } }',
}),
});
const { data, errors } = await response.json();import requests
API_KEY = "YOUR_API_KEY"
response = requests.post(
"https://api.rad.live/graphql",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
},
json={"query": "{ me { id username } }"},
)
result = response.json()
data = result.get("data")
errors = result.get("errors")Troubleshooting
If you get "Not authorized" errors:
- Check that your API key is valid and hasn't been revoked
- Make sure the header uses the
Bearerprefix:Authorization: Bearer <key> - Verify you're calling
https://api.rad.live(not a typo or old URL) - Confirm you have an active premium subscription (Premium, Premium+, or Creator+) — check your subscription
You can always verify your connection with the verifyConnection query — it confirms your auth is working and shows your permissions. See Quickstart.
Next steps
- API Keys — Generate your first API key
- Identifiers — Understand how resources are addressed