Guide
Getting started
Three steps stand between you and an authenticated call: get developer access, register an application, then trade an authorization code for a token. Everything below is a real request against api.velora.tv — paste it, swap the placeholders, and it runs.
Base URL
All API requests are made to the following base URL:
https://api.velora.tvCreate an application
Before this step: creating an application needs developer access, and we review every request. Request access first — a real person reads what you write, so tell them what you are building.
Once you are approved, create an application in the Developer Dashboard. This gives you a Client ID and Client Secret for authentication.
- 1Go to the Developer Dashboard
- 2Click “New Application”
- 3Fill in your application name and description
- 4Add your OAuth redirect URI(s) — required for login to work
- 5Save your Client ID and Client Secret securely
Important:Your Client Secret is only shown once. Store it securely — you'll need it for authentication. And your redirect URI must be setbefore the OAuth authorize URL will work — you can add or edit it anytime under your app's Edit details.
Authentication
Velora uses OAuth 2.0 with PKCE for secure authentication. For server-to-server requests, you can use Client Credentials.
Authorization Code Flow
For user-specific access, exchange the authorization code for tokens:
curl -X POST https://api.velora.tv/api/developer/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "authorization_code",
"code": "AUTH_CODE_FROM_CALLBACK",
"redirect_uri": "YOUR_REDIRECT_URI",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"code_verifier": "YOUR_PKCE_CODE_VERIFIER"
}'{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI...",
"token_type": "Bearer",
"expires_in": 3600
}For user-specific actions, see the Authentication guide.
Make your first request
Now you can make authenticated requests to the API. Let's get a list of live streams:
curl "https://api.velora.tv/api/streams/live?limit=5" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
{
"streams": [
{
"id": "aa09068d-cca4-4440-ae63-0817553cd443",
"userId": "d02b4dd9-aab7-43c3-a18d-25484ffacad5",
"username": "electriccyder",
"displayName": "ElectricCyder",
"title": "EDM Nostalgia - Breaks, House, Trance",
"category": "Music & DJs",
"categorySlug": "music-and-djs",
"viewerCount": 12,
"startedAt": "2026-09-05T02:11:44.000Z",
"thumbnail": "https://assets.velora.tv/preview/.../poster.jpg",
"tags": ["edm", "house"],
"language": "en"
}
]
}Rate limits
The API has rate limits to ensure fair usage:
| Environment | Rate limit |
|---|---|
| Sandbox | 30 requests/minute |
| Production | 800 requests/minute |
See the Rate Limits guide for more details.
Next steps
Where developers go from here, in the order most of them need it.