GraphQL API

GraphQL API

Query and mutate the Rad TV platform through a strongly-typed GraphQL interface.

The Rad TV GraphQL API lets you build on top of the full platform — browse content, manage channels, publish videos, engage audiences, and more.

What you can build

  • Content apps — browse channels, features, series, and streams
  • Creator tools — publish and manage videos, playlists, and metadata
  • Social features — likes, comments, follows, and engagement tracking
  • Cross-platform publishing — YouTube import and export
  • AI-powered workflows — upscaling, upmixing, virality prediction

Endpoint

POST https://api.rad.live/graphql

Making Requests

Send a JSON body with query and optional variables:

curl -X POST https://api.rad.live/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "query": "{ me { id username email } }"
  }'
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 { id username email } }',
  }),
});

const { data, errors } = await response.json();
import requests

response = requests.post(
    "https://api.rad.live/graphql",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY",
    },
    json={"query": "{ me { id username email } }"},
)

result = response.json()
data = result.get("data")
errors = result.get("errors")

Response Format

All responses follow the GraphQL spec:

{
  "data": { "me": { "id": "did:rad.live:channel/abc", "username": "creator", "email": "me@example.com" } },
  "errors": null
}
  • data — Present on success; keys match the operation name
  • errors — Array of { message, path, extensions } when something goes wrong

Structured error metadata

When GraphQL operations fail validation or authorization, errors[].extensions includes stable machine-readable fields:

  • code — error code (for example, GRAPHQL_VALIDATION_FAILED, UNAUTHENTICATED)
  • errorType — category label such as ValidationError
  • field — optional field associated with the failure
  • suggestedFix — optional remediation guidance
  • documentation — canonical troubleshooting URL under /docs/errors/...

See API Error Codes for the full code reference.

Authentication

All queries and mutations require Authorization: Bearer <token>. See Authentication.

Pagination

List endpoints return Relay connections (edges, node, pageInfo, totalCount), not plain arrays. Read Pagination (Relay connections) before querying channels, catalog lists, or comments.

Schema Introspection

The schema supports standard GraphQL introspection — you can use any GraphQL client or IDE to explore available types, queries, and mutations.

API Sections

On this page