Download OpenAPI specification:
| types | string Example: types=tv-series,clip,movie Comma-separated list of content types (e.g. tv-series, clip, movie) |
| search | string Text to search data |
| category | string Example: category=drama Filter by category slug |
| season_id | integer Example: season_id=3 Season ID to filter content |
| season_slug | string Example: season_slug=season-1 Season slug to filter content |
| order | string Enum: "newest" "popularity" Example: order=newest Sort order of the content |
| page | integer The default value is |
| page_size | integer The default value is |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object (OdxV4ContentPagination) | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 5,
- "page_next": 0,
- "page_previous": 0,
- "page_size": 10,
- "results": [
- {
- "type": "content",
- "data": {
- "view": {
- "title": "第20190911期",
- "image": {
- "language": "en",
- "orientation": "landscape"
}, - "badge(Deprecated)": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}, - "badges": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}
}, - "info": {
- "content_id": 1104,
- "content_slug": "经济半小时-第20190911期-韧性十足的中国外贸-52802",
- "season_id": 66,
- "series_slug": "health-plus",
- "duration": "string",
- "display_duration": "string",
- "dubbing_mode": true,
- "episode_order": 1
}
}
}
]
}
}| slug required | string |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (OdxV4ContentDetail) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "id": 100,
- "title": "방랑의객 : 경기 화성시 양감면",
- "slug": "vagrant-doctor--e09",
- "thumbnail(Deprecated)": {
- "id": 100,
- "is_representative": true,
- "orientation": "landscape",
- "language": "en"
}, - "poster": {
- "id(Deprecated)": 144,
- "is_representative(Deprecated)": true,
- "orientation": "landscape",
- "language": "ko"
}, - "synopsis": "방랑의객",
- "genres": "string",
- "duration": "string",
- "display_duration": "string",
- "season": {
- "id": 5,
- "title": "방랑의객",
- "slug": "vagrant-doctor",
- "posters": [
- {
- "id(Deprecated)": 144,
- "is_representative(Deprecated)": true,
- "orientation": "landscape",
- "language": "ko"
}
]
}, - "categories": [
- {
- "id": 11,
- "title": "news",
- "slug": "news",
- "description": "string"
}
], - "tags": [
- "string"
], - "cast": [
- {
- "id": 6,
- "name": "데프콘",
- "name_en": "Defcon",
- "slug": "defcon",
- "thumbnail": ""
}
], - "content_type": "tv-series",
- "age_rating": "All",
- "dubbing_mode": true,
- "episode_order": 1,
- "release_year": 2025,
- "subtitles": [
- "ko",
- "en"
]
}
}| category | string Example: category=drama Filter by category slug |
| search | string Text to search data |
| series_id | integer Example: series_id=5 Filter by series ID |
| page | integer The default value is |
| page_size | integer The default value is |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object (OdxV4SeasonPagination) | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 5,
- "page_next": 0,
- "page_previous": 0,
- "page_size": 10,
- "results": [
- {
- "type": "season",
- "data": {
- "view": {
- "title": "파워특강 건강이 최고",
- "image": {
- "language": "en",
- "orientation": "landscape"
}, - "badge(Deprecated)": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}, - "badges": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}
}, - "info": {
- "season_id": 7,
- "season_slug": "health-best",
- "content_ids": [
- 96,
- 74,
- 72,
- 42,
- 33,
- 27
], - "series_slug": "health-best",
- "dubbing_mode": true,
- "season_order": 1
}
}
}
]
}
}| slug required | string |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (OdxV4SeasonDetail) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "id": 7,
- "title": "파워특강 건강이 최고",
- "synopsis": "12주 동안 매주 한가지씩의 건강 아이템을 소개...",
- "slug": "health-best",
- "direct_play_content_id": 946,
- "direct_play_content_slug": "health-best-1",
- "total_number_of_seasons": 1,
- "dubbing_mode": true,
- "seasons": [
- {
- "id": 7,
- "title": "파워특강 건강이 최고",
- "slug": "health-best",
- "is_current_season": true,
- "total_content_count": 9,
- "season_order": 1,
- "short_title": "Season 1"
}
], - "posters(Deprecated)": [
- {
- "id(Deprecated)": 144,
- "is_representative(Deprecated)": true,
- "orientation": "landscape",
- "language": "ko"
}
], - "poster(": {
- "id(Deprecated)": 144,
- "is_representative(Deprecated)": true,
- "orientation": "landscape",
- "language": "ko"
}, - "subtitles": [
- "ko",
- "en"
], - "series": {
- "id": 7,
- "title": "파워특강 건강이 최고 시리즈",
- "slug": "health-best"
}, - "cast": [
- {
- "id": 6,
- "name": "데프콘",
- "name_en": "Defcon",
- "slug": "defcon",
- "thumbnail": ""
}
], - "categories": [
- {
- "id": 11,
- "title": "news",
- "slug": "news",
- "description": "string"
}
], - "tags": [
- {
- "id": 1,
- "title": "action",
- "slug": "action",
- "description": "action"
}
], - "types_of_contents": [
- "tv-series"
], - "release_date_start": "2025-03-04",
- "release_date_end": "2019-08-24",
- "release_year": 2025,
- "season_order": 1
}
}| category | string Example: category=drama Filter by category slug |
| search | string Text to search data |
| page | integer The default value is |
| page_size | integer The default value is |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object (OdxV4SeriesPagination) | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 5,
- "page_next": 0,
- "page_previous": 0,
- "page_size": 10,
- "results": [
- {
- "type": "series",
- "data": {
- "view": {
- "title": "파워특강 건강이 최고 시리즈",
- "image": {
- "language": "en",
- "orientation": "landscape"
}, - "badge(Deprecated)": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}, - "badges": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}
}, - "info": {
- "series_id": 7,
- "series_slug": "health-best",
- "season_ids": [
- 7,
- 6
], - "dubbing_mode": true
}
}
}
]
}
}| slug required | string |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (OdxV4SeasonDetail) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "id": 7,
- "title": "파워특강 건강이 최고",
- "synopsis": "12주 동안 매주 한가지씩의 건강 아이템을 소개...",
- "slug": "health-best",
- "direct_play_content_id": 946,
- "direct_play_content_slug": "health-best-1",
- "total_number_of_seasons": 1,
- "dubbing_mode": true,
- "seasons": [
- {
- "id": 7,
- "title": "파워특강 건강이 최고",
- "slug": "health-best",
- "is_current_season": true,
- "total_content_count": 9,
- "season_order": 1,
- "short_title": "Season 1"
}
], - "posters(Deprecated)": [
- {
- "id(Deprecated)": 144,
- "is_representative(Deprecated)": true,
- "orientation": "landscape",
- "language": "ko"
}
], - "poster(": {
- "id(Deprecated)": 144,
- "is_representative(Deprecated)": true,
- "orientation": "landscape",
- "language": "ko"
}, - "subtitles": [
- "ko",
- "en"
], - "series": {
- "id": 7,
- "title": "파워특강 건강이 최고 시리즈",
- "slug": "health-best"
}, - "cast": [
- {
- "id": 6,
- "name": "데프콘",
- "name_en": "Defcon",
- "slug": "defcon",
- "thumbnail": ""
}
], - "categories": [
- {
- "id": 11,
- "title": "news",
- "slug": "news",
- "description": "string"
}
], - "tags": [
- {
- "id": 1,
- "title": "action",
- "slug": "action",
- "description": "action"
}
], - "types_of_contents": [
- "tv-series"
], - "release_date_start": "2025-03-04",
- "release_date_end": "2019-08-24",
- "release_year": 2025,
- "season_order": 1
}
}| slug required | string |
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object (OdxV4CategoryContentsPagination) | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 5,
- "page_next": 0,
- "page_previous": 0,
- "page_size": 10,
- "results": [
- {
- "type": "series",
- "data": {
- "view": {
- "title": "파워특강 건강이 최고 시리즈",
- "image": {
- "language": "en",
- "orientation": "landscape"
}, - "badge(Deprecated)": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}, - "badges": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}
}, - "info": {
- "series_id": 7,
- "series_slug": "health-best",
- "season_ids": [
- 7,
- 6
], - "dubbing_mode": true
}
}
}
]
}
}| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||
| title | string (title) | ||||
| messages | object (messages) | ||||
object (OdxV4CarouselGroupList) | |||||
| |||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "browser": "browser-group",
- "channel": "channel-group"
}
}| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||
| title | string (title) | ||||||||||||||
| messages | object (messages) | ||||||||||||||
object (OdxV4CarouseGrouplList) | |||||||||||||||
| |||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "refresh_time": 3600,
- "items": [
- {
- "id": 34,
- "title": "Categories",
- "slug": "category-carousel",
- "image_orientation": "landscape"
}
]
}
}
}| page | integer The default value is |
| page_size | integer The default value is |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (optional). When provided, user-based data is used. |
| did | string Example: test-device-001 Device ID |
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object (OdxV4CarouselList) | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 14,
- "previous": null,
- "page_next": 2,
- "page_previous": null,
- "page_size": 10,
- "results": [
- {
- "type": "content",
- "data": {
- "view": {
- "title": "방랑의객 : 연천 열두개울 버섯마을",
- "image": {
- "language": "ko",
- "orientation": "landscape"
}, - "badges": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}, - "landing_option": "info"
}, - "info": {
- "content_type": "tv-series",
- "content_id": 91,
- "season_id": 5,
- "season_slug": "vagrant-doctor",
- "series_id": null,
- "series_slug": null
}
}
}
]
}
}| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||
| title | string (title) | ||||||||
| messages | object (messages) | ||||||||
Array of objects (OdxV4CarouselChannelGroup) | |||||||||
Array
| |||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": [
- {
- "id": 1,
- "title": "For money",
- "slug": "test-channel-carousel",
- "image_orientation": "portrait"
}
]
}| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object (OdxV4CarouselChannelList) | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 2,
- "next": null,
- "previous": null,
- "page_next": null,
- "page_previous": null,
- "page_size": 10,
- "results": [
- {
- "type": "channel",
- "data": {
- "view": {
- "title": "JTBC (종합편성)",
- "image": {
- "language": "ko",
- "orientation": "landscape"
}, - "badges": {
- "top_left": "string",
- "top_right": "string",
- "bottom_left": "string",
- "bottom_right": "string"
}, - "channel_info": {
- "start_time": "2025-03-28T04:47:56.515000Z",
- "end_time": "2025-03-28T06:28:12.815000Z"
}
}, - "info": {
- "channel_id": 100,
- "channel_slug": null,
- "category_slug": "entertainment"
}
}
}
]
}
}| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||||||||
object (OdxV4CoverPagination) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "count": 5,
- "page_next": 0,
- "page_previous": 0,
- "page_size": 10,
- "results": [
- {
- "id": 1,
- "slug": "test-cover",
- "rolling_time": 1500,
- "refresh_time": 3600,
- "type": "home",
- "enabled": true
}
]
}
}| slug required | string |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (OdxV4CoverDetail) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "id": 1,
- "slug": "test-cover",
- "rolling_time": 1500,
- "type": "home",
- "enabled": true,
- "items": [
- {
- "title": "ok-madam-1",
- "title_image": null,
- "image": {
- "orientation": "landscape",
- "url": null
}, - "type": "content",
- "content_type": "movie",
- "description": null,
- "call_to_action": "Watch Movie Now",
- "video": null,
- "order": 1,
- "content_id": 4192,
- "season_id": 462,
- "series_id": 376,
- "channel_id": null,
- "multichannel_id": null,
- "content_slug": "ask-us-anything-e381",
- "season_slug": "ask-us-anything",
- "series_slug": "ask-us-anything",
- "channel_slug": null,
- "multichannel_slug": null,
- "landing_option": "info"
}
]
}
}| content_id required | integer |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||||||||||||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||||||||||||||||||||||||
object (OdxV4Playback) | |||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "duration": 67867,
- "id": 2,
- "cue_points": [
- {
- "metadata": "string",
- "name": "intro-start",
- "type": "CODE",
- "timecode": 123.456
}
], - "manifests": [ ],
- "is_chromecast_able": true,
- "ad_tag": null,
- "next_content": {
- "is_last_episode": false,
- "title": "HOT! ODK 픽 3분 뉴스! : 2/19 TV조선",
- "content_id": 1333,
- "content_slug": "hot-odk-pick-3-minute-news-e3817",
- "season_id": 140,
- "season_slug": "hot-odk-pick-3-minute-news",
- "series_id": 393,
- "series_slug": "hot-odk-pick-3-minute-news"
}
}
}| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||
| title | string (title) | ||||||||
| messages | object (messages) | ||||||||
Array of objects (OdxV4ChannelSectionList) | |||||||||
Array
| |||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": [
- {
- "slug": "featured",
- "title": "Featured",
- "order": 1,
- "channels": [
- {
- "id": 207,
- "order": 4,
- "slug": "amasian-tv-movies-and-more",
- "title": "Amasian TV Movies & More",
- "description": "The shortcut to the trending Asian programming you love to watch 24/7...",
- "color": "#00a44a",
- "number": 220
}
]
}
]
}| channel_ids required | string Comma-separated list of channel IDs (e.g. 1,2,3) |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||||||
| title | string (title) | ||||||||||||||
| messages | object (messages) | ||||||||||||||
object (OdxV4ChannelEpgResult) | |||||||||||||||
| |||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "start_time": "2025-04-01T01:06:14.255687Z",
- "column_size": 2,
- "column": 3,
- "results": [
- {
- "id": 34,
- "epgs": [ ]
}
]
}
}| q required | string search term |
| Service-Name required | string Value: "amasian" |
| Accept-Language | string Default: en Enum: "ko" "en" "es" "zh-Hans" "zh-Hant" "zh-hans" "zh-hant" "pt"
|
| code | string (code) | ||||||||||
| title | string (title) | ||||||||||
| messages | object (messages) | ||||||||||
object (OdxV4SearchResult) | |||||||||||
| |||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "results": [
- {
- "type": "content",
- "data": {
- "view": {
- "image": {
- "orientation": "landscape"
}
}, - "info": {
- "content_id": 1266,
- "series_id": 1,
- "content_type": "movie",
- "content_slug": "my-dear-enemy"
}
}
}
], - "auto_complete": [
- "My Dear Enemy",
- "My Boss, My Hero"
]
}
}| code | string (code) | ||||
| title | string (title) | ||||
| messages | object (messages) | ||||
Array of objects (OdxV4RecommendationItem) | |||||
Array
| |||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": [
- {
- "type": "series",
- "data": {
- "view": {
- "image": {
- "orientation": "landscape",
}
}, - "info": {
- "series_id": 46,
- "series_slug": "save-me"
}
}
}, - {
- "type": "content",
- "data": {
- "view": {
- "image": {
- "orientation": "landscape",
}
}, - "info": {
- "content_id": 2199,
- "content_type": "movie",
- "content_slug": "the-roundup-e1"
}
}
}
]
}| Service-Name required | string Value: "amasian" |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| email required | string <email> |
| code | string (code) | ||||
| title | string (title) | ||||
| messages | object (messages) | ||||
object | |||||
| |||||
{- "email": "user@example.com"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "Verification code sent",
- "email": "user@example.com"
}
}| Service-Name required | string Value: "amasian" |
| email required | string <email> |
| code required | string = 6 characters |
| code | string (code) | ||||||
| title | string (title) | ||||||
| messages | object (messages) | ||||||
object | |||||||
| |||||||
{- "email": "user@example.com",
- "code": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string",
- "email": "string",
- "verified": true
}
}Sets refresh_token cookie on success.
| Service-Name required | string Value: "amasian" |
| did | string Example: test-device-001 Device ID |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| email required | string <email> |
| password required | string >= 8 characters |
| display_name | string <= 100 characters |
| code | string (code) | ||||||||||||||||||
| title | string (title) | ||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||
object (AmasianAuthResponse) | |||||||||||||||||||
| |||||||||||||||||||
{- "email": "user@example.com",
- "password": "stringst",
- "display_name": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "user": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true
}, - "merge_needed": true
}
}| Service-Name required | string Value: "amasian" |
| email required | string <email> |
| code | string (code) | ||||
| title | string (title) | ||||
| messages | object (messages) | ||||
object | |||||
| |||||
{- "email": "user@example.com"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "Verification code sent",
- "email": "user@example.com"
}
}Sets refresh_token cookie on success.
| Service-Name required | string Value: "amasian" |
| did | string Example: test-device-001 Device ID |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| email required | string <email> |
| password required | string |
| code | string (code) | ||||||||||||||||||
| title | string (title) | ||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||
object (AmasianAuthResponse) | |||||||||||||||||||
| |||||||||||||||||||
{- "email": "user@example.com",
- "password": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "user": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true
}, - "merge_needed": true
}
}Uses refresh_token from cookie. Sets new refresh_token cookie.
| Service-Name required | string Value: "amasian" |
| did | string Example: test-device-001 Device ID |
| code | string (code) | ||||||||||||||||||
| title | string (title) | ||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||
object (AmasianAuthResponse) | |||||||||||||||||||
| |||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "user": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true
}, - "merge_needed": true
}
}| email required | string <email> |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||||
| title | string (title) | ||||
| messages | object (messages) | ||||
object (AmasianRegistrationStatus) | |||||
| |||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "registered": true,
- "login_methods": [
- "email",
- "google"
]
}
}| Service-Name required | string Value: "amasian" |
| email required | string <email> |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "email": "user@example.com"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}| Service-Name required | string Value: "amasian" |
| token required | string |
| new_password required | string >= 8 characters |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "token": "string",
- "new_password": "stringst"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}CTV device requests an activation code for login.
| Service-Name required | string Value: "amasian" |
| did required | string Example: test-device-001 Device ID (required for anonymous users) |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| code | string (code) | ||||||||
| title | string (title) | ||||||||
| messages | object (messages) | ||||||||
object | |||||||||
| |||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "code": "ACDF3467",
- "expires_in": 900,
}
}CTV device polls for activation confirmation. Returns tokens when confirmed.
| code required | string Example: code=ACDF3467 Activation code (case-insensitive) |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||
object | |||||||||||||||||||||
| |||||||||||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "status": "pending",
- "access_token": "string",
- "refresh_token": "string",
- "user": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true
}
}
}Authenticated user confirms CTV device activation code.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| code required | string Activation code (case-insensitive) |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "code": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}Sets refresh_token cookie on success.
| Service-Name required | string Value: "amasian" |
| did | string Example: test-device-001 Device ID |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| id_token required | string Google ID token |
| code | string (code) | ||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||
object (AmasianSocialAuthResponse) | |||||||||||||||||||||||
| |||||||||||||||||||||||
{- "id_token": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "user": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true
}, - "merge_needed": true,
- "is_new_user": false,
- "auto_linked": false
}
}Sets refresh_token cookie on success.
| Service-Name required | string Value: "amasian" |
| did | string Example: test-device-001 Device ID |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| id_token required | string Apple ID token |
| name | string <= 100 characters User name (optional, first sign-in only) |
| code | string (code) | ||||||||||||||||||||||
| title | string (title) | ||||||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||||||
object (AmasianSocialAuthResponse) | |||||||||||||||||||||||
| |||||||||||||||||||||||
{- "id_token": "string",
- "name": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "user": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true
}, - "merge_needed": true,
- "is_new_user": false,
- "auto_linked": false
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| id_token required | string |
| code | string (code) | ||||||
| title | string (title) | ||||||
| messages | object (messages) | ||||||
object | |||||||
| |||||||
{- "id_token": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "provider": "google",
- "provider_email": "user@gmail.com",
- "message": "string"
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| id_token required | string |
| code | string (code) | ||||||
| title | string (title) | ||||||
| messages | object (messages) | ||||||
object | |||||||
| |||||||
{- "id_token": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "provider": "google",
- "provider_email": "user@gmail.com",
- "message": "string"
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||||||||||||
| title | string (title) | ||||||||||||
| messages | object (messages) | ||||||||||||
object (AmasianProfile) | |||||||||||||
| |||||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true,
- "created": "2019-08-24T14:15:22Z"
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| display_name | string <= 100 characters |
| code | string (code) | ||||||||||||
| title | string (title) | ||||||||||||
| messages | object (messages) | ||||||||||||
object (AmasianProfile) | |||||||||||||
| |||||||||||||
{- "display_name": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "id": 6,
- "uuid": "dfb01c64-3e44-4022-a983-b1b329e0aa70",
- "email": "user@example.com",
- "display_name": "John",
- "is_email_verified": true,
- "created": "2019-08-24T14:15:22Z"
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||||||||
| title | string (title) | ||||||||
| messages | object (messages) | ||||||||
Array of objects (AmasianLinkedAccount) | |||||||||
Array
| |||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": [
- {
- "type": "google",
- "email": "user@gmail.com",
- "is_primary": false,
- "linked_at": "2019-08-24T14:15:22Z"
}
]
}| provider required | string Enum: "google" "apple" Social login provider |
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}Deletes refresh_token cookie after success.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| current_password required | string |
| new_password required | string >= 8 characters |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "current_password": "string",
- "new_password": "stringst"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| new_email required | string <email> |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "new_email": "user@example.com"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| code required | string = 6 characters |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "code": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}Deletes refresh_token cookie.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}For email accounts, provide password.
For social-only accounts, provide provider and id_token.
Deletes refresh_token cookie.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| password | string Required for email-based accounts |
| provider | string Enum: "google" "apple" Required for social-only accounts |
| id_token | string Required for social-only accounts |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "password": "string",
- "provider": "google",
- "id_token": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}Merge a secondary account into the current (primary) account. Provide either email+password or provider+id_token for the secondary account.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
string <email> Secondary account email (for email merge) | |
| password | string Secondary account password (for email merge) |
| provider | string Enum: "google" "apple" Social provider (for social merge) |
| id_token | string Social ID token (for social merge) |
| code | string (code) | ||
| title | string (title) | ||
| messages | object (messages) | ||
object | |||
| |||
{- "email": "user@example.com",
- "password": "string",
- "provider": "google",
- "id_token": "string"
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "message": "string"
}
}Merges device-based favorites and continue watching data into the authenticated user's account.
Should be called after sign-in when merge_needed is true.
| Authorization required | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (e.g. |
| Service-Name required | string Value: "amasian" |
| did | string Example: test-device-001 Device ID |
| X-Device-Type | string Enum: "web" "mobile" "tablet" "ctv" Device type (e.g. web, mobile, tablet, ctv) |
| code | string (code) | ||||
| title | string (title) | ||||
| messages | object (messages) | ||||
object | |||||
| |||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "success": true,
- "device_id": "test-device-001"
}
}Returns user-based favorites when authenticated, device-based favorites otherwise.
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (optional). When provided, user-based data is used. |
| did | string Example: test-device-001 Device ID |
| Service-Name required | string Value: "amasian" |
| code | string (code) | ||||||||||
| title | string (title) | ||||||||||
| messages | object (messages) | ||||||||||
Array of objects (AmasianFavoriteItem) | |||||||||||
Array
| |||||||||||
{- "code": "string",
- "title": "string",
- "messages": { },
- "result": [
- {
- "id": 0,
- "source_id": 0,
- "type": "content",
- "device_id": "string",
- "created": "2019-08-24T14:15:22Z"
}
]
}Saves with user FK when authenticated, device_id when anonymous.
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (optional). When provided, user-based data is used. |
| did | string Example: test-device-001 Device ID |
| Service-Name required | string Value: "amasian" |
| source_id required | integer ID of the content/season/channel |
| type required | string Enum: "content" "season" "channel" |
{- "source_id": 0,
- "type": "content"
}| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (optional). When provided, user-based data is used. |
| did | string Example: test-device-001 Device ID |
| Service-Name required | string Value: "amasian" |
| source_id required | integer |
| type required | string Enum: "content" "season" "channel" |
{- "source_id": 0,
- "type": "content"
}Saves viewing progress to Redis. When authenticated, saves under user UUID key. When anonymous, saves under device_id key.
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Bearer JWT access token (optional). When provided, user-based data is used. |
| did | string Example: test-device-001 Device ID |
| Service-Name required | string Value: "amasian" |
| content_id required | integer >= 1 Content ID |
| last_position required | integer >= 0 Last viewing position in seconds |
| code | string (code) | ||||||||||||||||||
| title | string (title) | ||||||||||||||||||
| messages | object (messages) | ||||||||||||||||||
object | |||||||||||||||||||
| |||||||||||||||||||
{- "content_id": 1,
- "last_position": 0
}{- "code": "string",
- "title": "string",
- "messages": { },
- "result": {
- "success": true,
- "message": "Continue Watching 데이터가 성공적으로 저장되었습니다.",
- "data": {
- "cache_key": "string",
- "content_id": 0,
- "last_position": 0,
- "updated": 0,
- "device_id": "string"
}
}
}