Appearance
SECTION 1 — CREATORS
1. GET /creators
Get all creators with filtering and sorting.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| category | string | No | all | comedy, music, lifestyle, sports, film_tv, art_design, gaming, education |
| tier | string | No | all | ambassador, platinum, gold, silver |
| sort | string | No | most_popular | most_popular, newest, trending |
| page | int | No | 1 | Page number |
| limit | int | No | 20 | Results per page |
Request
http
GET /creators?category=all&tier=all&sort=most_popular&page=1&limit=20Response 200 OK
json
{
"status": "success",
"data": {
"total": 19,
"page": 1,
"limit": 20,
"total_pages": 1,
"filters_applied": {
"category": "all",
"tier": "all",
"sort": "most_popular"
},
"creators": [
{
"id": "creator_001",
"name": "Chris Spencer",
"initials": "CS",
"avatar_color": "#4A90D9",
"avatar_url": null,
"tier": "ambassador",
"category": "comedy",
"subscribers": 15000,
"subscribers_formatted": "15K",
"is_live": true,
"is_verified": true,
"is_hot": false,
"watching_now": 13000,
"watching_now_formatted": "13K",
"channel_url": "/creators/chris-spencer"
}
]
}
}Errors
json
{
"status": "error",
"code": 400,
"message": "Invalid category value. Allowed: comedy, music, lifestyle, sports, film_tv, art_design, gaming, education"
}2. GET /creators/live
Get all currently live streaming creators.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | int | No | 10 | Results per page |
| page | int | No | 1 | Page number |
Request
http
GET /creators/live?limit=10&page=1Response 200 OK
json
{
"status": "success",
"data": {
"total_live": 3,
"page": 1,
"limit": 10,
"creators": [
{
"id": "creator_001",
"name": "Chris Spencer",
"initials": "CS",
"avatar_color": "#4A90D9",
"avatar_url": null,
"tier": "ambassador",
"is_live": true,
"is_verified": true,
"watching_now": 13000,
"watching_now_formatted": "13K",
"stream": {
"stream_id": "stream_abc123",
"title": "Late Night Comedy Show",
"started_at": "2024-11-01T20:00:00Z",
"thumbnail_url": "https://cdn.droptv.com/streams/stream_abc123/thumb.jpg"
},
"channel_url": "/creators/chris-spencer"
}
]
}
}3. GET /creators/featured
Get featured top talent creators.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | int | No | 10 | Number of creators to return |
Request
http
GET /creators/featured?limit=10Response 200 OK
json
{
"status": "success",
"data": {
"section_title": "Featured Creators",
"section_subtitle": "Top talent on Drop TV",
"total": 10,
"creators": [
{
"id": "creator_001",
"name": "Chris Spencer",
"initials": "CS",
"avatar_color": "#4A90D9",
"avatar_url": null,
"tier": "ambassador",
"category": "comedy",
"subscribers": 15000,
"subscribers_formatted": "15K",
"is_live": true,
"is_verified": true,
"is_hot": false,
"watching_now": 13000,
"watching_now_formatted": "13K",
"channel_url": "/creators/chris-spencer"
}
]
}
}4. GET /creators/search
Search creators by name or keyword.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| q | string | Yes | — | Search query |
| category | string | No | all | Filter by category |
| tier | string | No | all | Filter by tier |
| page | int | No | 1 | Page number |
| limit | int | No | 20 | Results per page |
Request
http
GET /creators/search?q=chris&category=comedy&tier=ambassador&page=1&limit=20Response 200 OK
json
{
"status": "success",
"data": {
"query": "chris",
"total": 1,
"page": 1,
"limit": 20,
"total_pages": 1,
"creators": [
{
"id": "creator_001",
"name": "Chris Spencer",
"initials": "CS",
"avatar_color": "#4A90D9",
"tier": "ambassador",
"category": "comedy",
"subscribers": 15000,
"subscribers_formatted": "15K",
"is_live": true,
"is_verified": true,
"channel_url": "/creators/chris-spencer"
}
]
}
}Errors
json
{
"status": "error",
"code": 400,
"message": "Search query 'q' is required"
}5. GET /creators/tiers
Get all creator tier definitions.
Request
http
GET /creators/tiersResponse 200 OK
json
{
"status": "success",
"data": {
"tiers": [
{
"id": "silver",
"label": "Silver",
"color": "#C0C0C0",
"min_subscribers": 0,
"max_subscribers": 24999,
"perks": ["Basic analytics", "Standard support"]
},
{
"id": "gold",
"label": "Gold",
"color": "#FFD700",
"min_subscribers": 25000,
"max_subscribers": 99999,
"perks": ["Advanced analytics", "Priority support", "Monetization"]
},
{
"id": "platinum",
"label": "Platinum",
"color": "#E5E4E2",
"min_subscribers": 100000,
"max_subscribers": 499999,
"perks": ["Full analytics suite", "Dedicated manager", "Monetization", "Featured placement"]
},
{
"id": "ambassador",
"label": "Ambassador",
"color": "#FF69B4",
"min_subscribers": 500000,
"max_subscribers": null,
"perks": ["All Platinum perks", "Brand deals", "Homepage feature", "Custom badge"]
}
]
}
}6. GET /creators/categories
Get all creator content categories.
Request
http
GET /creators/categoriesResponse 200 OK
json
{
"status": "success",
"data": {
"categories": [
{ "id": "comedy", "label": "Comedy", "icon": "comedy-icon", "creator_count": 42 },
{ "id": "music", "label": "Music", "icon": "music-icon", "creator_count": 38 },
{ "id": "lifestyle", "label": "Lifestyle", "icon": "lifestyle-icon", "creator_count": 55 },
{ "id": "sports", "label": "Sports", "icon": "sports-icon", "creator_count": 29 },
{ "id": "film_tv", "label": "Film & TV", "icon": "film-icon", "creator_count": 21 },
{ "id": "art_design", "label": "Art & Design", "icon": "art-icon", "creator_count": 18 },
{ "id": "gaming", "label": "Gaming", "icon": "gaming-icon", "creator_count": 33 },
{ "id": "education", "label": "Education", "icon": "education-icon", "creator_count": 14 }
]
}
}7. GET /creators/:id/profile
Get a single creator's full profile with stats and subscription info.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Creator ID |
Request
http
GET /creators/creator_001/profileResponse 200 OK
json
{
"status": "success",
"data": {
"id": "creator_001",
"name": "Chris Spencer",
"initials": "CS",
"avatar_color": "#4A90D9",
"avatar_url": null,
"is_verified": true,
"is_live": true,
"bio": "Comedian, Actor, Producer. Host of 'Go Big or Go Home'. Bringing laughs from Atlanta to the world.",
"tier": "ambassador",
"category": "comedy",
"stats": {
"subscribers": 124000,
"subscribers_formatted": "124K",
"views": 245000,
"views_formatted": "245K",
"likes": 89000,
"likes_formatted": "89K",
"clips": 45000,
"clips_formatted": "45K"
},
"watching_now": 13000,
"watching_now_formatted": "13K",
"social_links": {
"instagram": "https://instagram.com/chrisspencer",
"twitter": "https://twitter.com/chrisspencer",
"youtube": null
},
"subscription_plan": {
"price": 9.99,
"currency": "USD",
"interval": "month",
"perks": ["All Premium content", "Early access", "Exclusive Q&As"]
},
"user_state": {
"is_following": false,
"is_subscribed": false
},
"channel_url": "/creators/chris-spencer",
"joined_at": "2022-03-15T00:00:00Z"
}
}Errors
json
{
"status": "error",
"code": 404,
"message": "Creator not found"
}8. POST /creators/register
Register as a new creator. Requires authentication.
Request
http
POST /creators/register
Content-Type: application/json
Authorization: Bearer <token>Request Body
json
{
"name": "Jane Doe",
"email": "jane@example.com",
"channel_name": "Jane's World",
"category": "lifestyle",
"bio": "Lifestyle and travel creator.",
"social_links": {
"instagram": "https://instagram.com/janedoe",
"twitter": "https://twitter.com/janedoe",
"youtube": null
}
}Request Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Full name |
| string | Yes | Email address | |
| channel_name | string | Yes | Channel display name |
| category | string | Yes | Primary content category |
| bio | string | No | Short bio |
| social_links | object | No | Social media URLs |
Response 201 Created
json
{
"status": "success",
"message": "Creator registration successful. Pending review.",
"data": {
"creator_id": "creator_099",
"name": "Jane Doe",
"channel_name": "Jane's World",
"email": "jane@example.com",
"category": "lifestyle",
"tier": "silver",
"status": "pending_review",
"created_at": "2024-11-01T10:00:00Z"
}
}Errors
json
{
"status": "error",
"code": 409,
"message": "An account with this email already exists"
}json
{
"status": "error",
"code": 422,
"errors": [
{ "field": "email", "message": "Invalid email format" },
{ "field": "channel_name", "message": "Channel name is required" }
]
}