Skip to content

SECTION 4 — CREATOR CONTENT

15. GET /creators/:id/episodes

Get free episodes filterable by season.

Query Parameters

ParameterTypeRequiredDefaultDescription
seasonintNo1Season number
pageintNo1Page number
limitintNo10Results per page

Request

http
GET /creators/creator_001/episodes?season=1&page=1&limit=10

Response 200 OK

json
{
  "status": "success",
  "data": {
    "creator_id": "creator_001",
    "creator_name": "Chris Spencer",
    "section_title": "Free Episodes",
    "section_subtitle": "Watch now — no subscription required",
    "total_seasons": 3,
    "seasons": [1, 2, 3],
    "selected_season": 1,
    "total_episodes": 4,
    "page": 1,
    "limit": 10,
    "episodes": [
      {
        "episode_id": "ep_001",
        "episode_number": 1,
        "season": 1,
        "title": "E1: Pilot Episode",
        "label": "1: E1: Pilot Episode",
        "thumbnail_url": "https://cdn.droptv.com/episodes/ep_001/thumb.jpg",
        "duration_seconds": 1472,
        "duration_formatted": "24:32",
        "views": 1200000,
        "views_formatted": "1.2M",
        "is_free": true,
        "is_premium": false,
        "stream_url": "https://cdn.droptv.com/episodes/ep_001/stream.m3u8"
      }
    ]
  }
}

16. GET /creators/:id/episodes/:episode_id

Get full detail of a single episode.

Path Parameters

ParameterTypeRequiredDescription
idstringYesCreator ID
episode_idstringYesEpisode ID

Request

http
GET /creators/creator_001/episodes/ep_001

Response 200 OK

json
{
  "status": "success",
  "data": {
    "episode_id": "ep_001",
    "episode_number": 1,
    "season": 1,
    "title": "E1: Pilot Episode",
    "description": "Chris Spencer kicks off the series with a bang in this hilarious pilot episode.",
    "thumbnail_url": "https://cdn.droptv.com/episodes/ep_001/thumb.jpg",
    "duration_seconds": 1472,
    "duration_formatted": "24:32",
    "views": 1200000,
    "views_formatted": "1.2M",
    "is_free": true,
    "is_premium": false,
    "stream_url": "https://cdn.droptv.com/episodes/ep_001/stream.m3u8",
    "air_date": "2023-01-15T00:00:00Z",
    "creator": {
      "id": "creator_001",
      "name": "Chris Spencer",
      "is_verified": true
    }
  }
}

Errors

json
{
  "status": "error",
  "code": 404,
  "message": "Episode not found"
}

17. GET /creators/:id/premium

Get premium content. Returns locked state for non-subscribers. Requires authentication.

Query Parameters

ParameterTypeRequiredDefaultDescription
pageintNo1Page number
limitintNo10Results per page

Request

http
GET /creators/creator_001/premium?page=1&limit=10
Authorization: Bearer <token>

Response 200 OK (Subscribed)

json
{
  "status": "success",
  "data": {
    "creator_id": "creator_001",
    "section_title": "Premium Content",
    "section_subtitle": "Exclusive for subscribers · $9.99/month",
    "is_subscribed": true,
    "total": 3,
    "content": [
      {
        "content_id": "prem_001",
        "title": "Behind the Scenes",
        "description": "Exclusive content",
        "thumbnail_url": "https://cdn.droptv.com/premium/prem_001/thumb.jpg",
        "duration_seconds": 2700,
        "duration_formatted": "45:00",
        "is_premium": true,
        "is_locked": false,
        "stream_url": "https://cdn.droptv.com/premium/prem_001/stream.m3u8"
      }
    ]
  }
}

Response 200 OK (Not Subscribed)

json
{
  "status": "success",
  "data": {
    "creator_id": "creator_001",
    "is_subscribed": false,
    "total": 3,
    "content": [
      {
        "content_id": "prem_001",
        "title": "Behind the Scenes",
        "thumbnail_url": "https://cdn.droptv.com/premium/prem_001/thumb.jpg",
        "duration_formatted": "45:00",
        "is_premium": true,
        "is_locked": true,
        "stream_url": null
      }
    ],
    "subscription_prompt": {
      "message": "Subscribe to Chris Spencer to unlock all premium content",
      "price": 9.99,
      "currency": "USD",
      "interval": "month",
      "cta": "Subscribe Now"
    }
  }
}

18. POST /creators/:id/premium/unlock

Unlock all premium content by subscribing. Requires authentication.

Request

http
POST /creators/creator_001/premium/unlock
Authorization: Bearer <token>
Content-Type: application/json

Request Body

json
{
  "payment_method_id": "pm_abc123",
  "currency": "USD"
}

Response 200 OK

json
{
  "status": "success",
  "message": "All premium content unlocked for Chris Spencer",
  "data": {
    "subscription_id": "sub_001abc",
    "creator_id": "creator_001",
    "is_subscribed": true,
    "unlocked_content_count": 3,
    "renewal_date": "2024-12-01T12:00:00Z"
  }
}

19. GET /creators/:id/ppv

Get Special Drops & PPV items.

Query Parameters

ParameterTypeRequiredDefaultDescription
pageintNo1Page number
limitintNo10Results per page

Request

http
GET /creators/creator_001/ppv?page=1&limit=10

Response 200 OK

json
{
  "status": "success",
  "data": {
    "creator_id": "creator_001",
    "section_title": "Special Drops & PPV",
    "section_subtitle": "One-time purchase · Own forever",
    "total": 2,
    "items": [
      {
        "ppv_id": "ppv_001",
        "title": "Live Comedy Special",
        "description": "One-time purchase",
        "thumbnail_url": "https://cdn.droptv.com/ppv/ppv_001/thumb.jpg",
        "duration_seconds": 4500,
        "duration_formatted": "1:15:00",
        "price": 3.99,
        "currency": "USD",
        "label": "$3.99",
        "is_purchased": false,
        "stream_url": null
      }
    ]
  }
}

20. POST /creators/:id/ppv/:ppv_id/purchase

Purchase a PPV item. Requires authentication.

Path Parameters

ParameterTypeRequiredDescription
idstringYesCreator ID
ppv_idstringYesPPV item ID

Request

http
POST /creators/creator_001/ppv/ppv_001/purchase
Authorization: Bearer <token>
Content-Type: application/json

Request Body

json
{
  "payment_method_id": "pm_abc123",
  "currency": "USD"
}

Response 201 Created

json
{
  "status": "success",
  "message": "Purchase successful. You now own 'Live Comedy Special'.",
  "data": {
    "purchase_id": "purch_xyz001",
    "ppv_id": "ppv_001",
    "creator_id": "creator_001",
    "title": "Live Comedy Special",
    "amount_paid": 3.99,
    "currency": "USD",
    "is_purchased": true,
    "purchased_at": "2024-11-01T12:00:00Z",
    "stream_url": "https://cdn.droptv.com/ppv/ppv_001/stream.m3u8"
  }
}

Errors

json
{
  "status": "error",
  "code": 409,
  "message": "You have already purchased this item"
}
json
{
  "status": "error",
  "code": 402,
  "message": "Payment failed. Please check your payment method."
}