Appearance
SECTION 4 — CREATOR CONTENT
15. GET /creators/:id/episodes
Get free episodes filterable by season.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| season | int | No | 1 | Season number |
| page | int | No | 1 | Page number |
| limit | int | No | 10 | Results per page |
Request
http
GET /creators/creator_001/episodes?season=1&page=1&limit=10Response 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Creator ID |
| episode_id | string | Yes | Episode ID |
Request
http
GET /creators/creator_001/episodes/ep_001Response 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| page | int | No | 1 | Page number |
| limit | int | No | 10 | Results 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/jsonRequest 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| page | int | No | 1 | Page number |
| limit | int | No | 10 | Results per page |
Request
http
GET /creators/creator_001/ppv?page=1&limit=10Response 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Creator ID |
| ppv_id | string | Yes | PPV item ID |
Request
http
POST /creators/creator_001/ppv/ppv_001/purchase
Authorization: Bearer <token>
Content-Type: application/jsonRequest 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."
}