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

MethodBest For
API KeyDirect API access, scripts, server-side integrations
OAuth 2.1MCP 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 Bearer prefix: 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

On this page