Skip to content

SECTION 1 — CREATORS

1. GET /creators

Get all creators with filtering and sorting.

Query Parameters

ParameterTypeRequiredDefaultDescription
categorystringNoallcomedy, music, lifestyle, sports, film_tv, art_design, gaming, education
tierstringNoallambassador, platinum, gold, silver
sortstringNomost_popularmost_popular, newest, trending
pageintNo1Page number
limitintNo20Results per page

Request

http
GET /creators?category=all&tier=all&sort=most_popular&page=1&limit=20

Response 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

ParameterTypeRequiredDefaultDescription
limitintNo10Results per page
pageintNo1Page number

Request

http
GET /creators/live?limit=10&page=1

Response 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"
      }
    ]
  }
}

Get featured top talent creators.

Query Parameters

ParameterTypeRequiredDefaultDescription
limitintNo10Number of creators to return

Request

http
GET /creators/featured?limit=10

Response 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"
      }
    ]
  }
}

Search creators by name or keyword.

Query Parameters

ParameterTypeRequiredDefaultDescription
qstringYesSearch query
categorystringNoallFilter by category
tierstringNoallFilter by tier
pageintNo1Page number
limitintNo20Results per page

Request

http
GET /creators/search?q=chris&category=comedy&tier=ambassador&page=1&limit=20

Response 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/tiers

Response 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/categories

Response 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

ParameterTypeRequiredDescription
idstringYesCreator ID

Request

http
GET /creators/creator_001/profile

Response 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

FieldTypeRequiredDescription
namestringYesFull name
emailstringYesEmail address
channel_namestringYesChannel display name
categorystringYesPrimary content category
biostringNoShort bio
social_linksobjectNoSocial 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" }
  ]
}