ODK API Portal
한국어
  • Overview
  • MediaIO
  • Continue Watching
  • Player Event
  • Deprecated
  • Recent changes
Information
carousel-group
Carousel
category-channels
category-navigation
category
channels
    Retrieve channel list by categoriesget/odx/api/v4/channels/post/odx/api/v4/channels/epgs/getRetrieve specific channel categoryget
consent
content
Continue Watching
cover
deletion-request
device-data
Favorites
multichannel
Onboarding
parental-control
Amasian Parental PIN
playback
policy
recommendation
search
season
series
service-config
Schemas
powered by Zudoku
ODX API v4
ODX API v4

channels


Retrieve channel list by categories

GET
https://odkmedia.io
/odx/api/v4/channels/

Retrieves channel lists organized by enabled channel categories. For favorites channels, device ID (did) parameter is required.

Retrieve channel list by categories › query Parameters

adid
​string

Advertising ID (used for advertisement tracking and targeting). Takes priority over did parameter when is_lat=0. If is_lat=1 (limit ad tracking) on Smartcast platform, this value is used instead.

dnt
​string · enum

Do Not Track preference. Values: "0" (not enabled) or "1" (enabled). This is a user/browser preference and is independent of both the CMP consent choice and is_lat.

Enum values:
0
1
gdpr
​string · enum

GDPR applicability flag as reported by the CMP. Values: "0" (does not apply) or "1" (applies). Omit the parameter when the CMP does not report it; the backend never assumes a value.

Enum values:
0
1
gdpr_consent
​string

IAB TCF consent string, required by buyers when gdpr=1. Forwarded unmodified.

gpp
​string

IAB Global Privacy Platform (GPP) consent string as reported by the CMP. Forwarded to ad tags unmodified. Omit the parameter when the CMP has not resolved.

gpp_sid
​string

GPP section ID(s) as reported by the CMP (e.g. "7" for usnat, "8" for usca). Send whatever the CMP reports. The value is forwarded unmodified and is never validated or defaulted, because it differs per platform and jurisdiction.

is_lat
​string

Limit Ad Tracking flag. Values: "0" (allow tracking) or "1" (limit tracking)

lmt
​string · enum

Limit Ad Tracking flag as reported by the device (OpenRTB device.lmt). Values: "0" (allow tracking) or "1" (limit tracking). Equivalent to is_lat.

Enum values:
0
1
ordering
​string

Which field to use when ordering the results.

search
​string

A search term.

us_privacy
​string

CCPA US Privacy string as reported by the CMP (e.g. "1YNN", "1YYN"). Send the real consent value. Omit the parameter when no consent signal is available.

Retrieve channel list by categories › Headers

did
​string

Device ID (used for Continue Watching, Favorites, and advertisement tracking)

Example: 00000000-0000-4000-8000-000000000000

Retrieve channel list by categories › Responses

​ChannelCategory[]
Serializer representing channel category and its channel list. Accepts either a ChannelCategory or a ChannelCategoryOrder instance. When a ChannelCategoryOrder is given, `order` comes from the order entry (supporting same category at multiple positions).
ChannelCategory
category_type
​string · enum · readOnly
  • category - Category
  • banner - Banner
Enum values:
category
banner
​Channel[] · readOnly
order
​integer · readOnly
​object · readOnly

Client API serializer for promoted content with platform-aware image selection and derived relationships.

slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$
title
​string · readOnly
GET/odx/api/v4/channels/
curl https://odkmedia.io/odx/api/v4/channels \ --header 'Authorization: <api-key>'
Example Responses
[ { "category_type": "category", "channels": [ { "color": "color", "description": "description", "id": 0, "images": { "logo": "https://www.example.com/path/to/resource", "poster": "https://www.example.com/path/to/resource" }, "number": 0, "order": 0, "slug": "slug", "stream_url": "stream_url", "title": "title" } ], "order": 0, "promoted_content": { "beacon_urls": [ { "beacon_type": "beacon_type", "beacon_url": "beacon_url" } ], "campaign_end_date": "2024-08-25T15:00:00Z", "campaign_start_date": "2024-08-25T15:00:00Z", "category_slug": "category_slug", "channel_id": 0, "channel_slug": "channel_slug", "content_id": 0, "content_slug": "content_slug", "content_type": "content_type", "id": 0, "images": [ { "description": "description", "height": 0, "image_type": "banner_754x70", "qr_code_url": "https://www.example.com/path/to/resource", "title": "title", "url": "https://www.example.com/path/to/resource", "width": 0 } ], "landing_option": "info", "season_id": 0, "season_slug": "season_slug", "series_id": 0, "series_slug": "series_slug", "type": "season", "url": "https://www.example.com/path/to/resource" }, "slug": "slug", "title": "title" } ]
json
application/json

POST
https://odkmedia.io
/odx/api/v4/channels/

API ViewSet for managing channel categories and EPG information.

Provides channel lists by category and EPG program information. Supports both ID and slug-based retrieval.

Responses

Serializer representing channel category and its channel list. Accepts either a ChannelCategory or a ChannelCategoryOrder instance. When a ChannelCategoryOrder is given, `order` comes from the order entry (supporting same category at multiple positions).
ChannelCategory
category_type
​string · enum · readOnly
  • category - Category
  • banner - Banner
Enum values:
category
banner
​Channel[] · readOnly
order
​integer · readOnly
​object · readOnly

Client API serializer for promoted content with platform-aware image selection and derived relationships.

slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$
title
​string · readOnly
POST/odx/api/v4/channels/
curl https://odkmedia.io/odx/api/v4/channels \ --request POST \ --header 'Authorization: <api-key>'
Example Responses
{ "category_type": "category", "channels": [ { "color": "color", "description": "description", "id": 0, "images": { "logo": "https://www.example.com/path/to/resource", "poster": "https://www.example.com/path/to/resource" }, "number": 0, "order": 0, "slug": "slug", "stream_url": "stream_url", "title": "title" } ], "order": 0, "promoted_content": { "beacon_urls": [ { "beacon_type": "beacon_type", "beacon_url": "beacon_url" } ], "campaign_end_date": "2024-08-25T15:00:00Z", "campaign_start_date": "2024-08-25T15:00:00Z", "category_slug": "category_slug", "channel_id": 0, "channel_slug": "channel_slug", "content_id": 0, "content_slug": "content_slug", "content_type": "content_type", "id": 0, "images": [ { "description": "description", "height": 0, "image_type": "banner_754x70", "qr_code_url": "https://www.example.com/path/to/resource", "title": "title", "url": "https://www.example.com/path/to/resource", "width": 0 } ], "landing_option": "info", "season_id": 0, "season_slug": "season_slug", "series_id": 0, "series_slug": "series_slug", "type": "season", "url": "https://www.example.com/path/to/resource" }, "slug": "slug", "title": "title" }
json
application/json

GET
https://odkmedia.io
/odx/api/v4/channels/epgs/

Retrieves EPG program list by channels with caching support.

캐시 전략:

  • config.AMASIAN_EPG_CACHE_ENABLED로 캐시 on/off 제어 (기본 True)
  • channel_ids 해싱으로 캐시 키 생성
  • 정상 데이터: config.AMASIAN_EPG_CACHE_TIMEOUT 초 캐싱 (기본 120초)
  • 빈 결과: config.AMASIAN_EPG_EMPTY_CACHE_TIMEOUT 초 캐싱 (기본 30초)
  • Django admin에서 동적으로 캐시 설정 조정 가능
  • 동일한 요청에 대해 캐시된 응답 제공으로 성능 향상

Responses

200
Serializer representing channel category and its channel list. Accepts either a ChannelCategory or a ChannelCategoryOrder instance. When a ChannelCategoryOrder is given, `order` comes from the order entry (supporting same category at multiple positions).
ChannelCategory
category_type
​string · enum · readOnly
  • category - Category
  • banner - Banner
Enum values:
category
banner
​Channel[] · readOnly
order
​integer · readOnly
​object · readOnly

Client API serializer for promoted content with platform-aware image selection and derived relationships.

slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$
title
​string · readOnly
GET/odx/api/v4/channels/epgs/
curl https://odkmedia.io/odx/api/v4/channels/epgs \ --header 'Authorization: <api-key>'
Example Responses
{ "category_type": "category", "channels": [ { "color": "color", "description": "description", "id": 0, "images": { "logo": "https://www.example.com/path/to/resource", "poster": "https://www.example.com/path/to/resource" }, "number": 0, "order": 0, "slug": "slug", "stream_url": "stream_url", "title": "title" } ], "order": 0, "promoted_content": { "beacon_urls": [ { "beacon_type": "beacon_type", "beacon_url": "beacon_url" } ], "campaign_end_date": "2024-08-25T15:00:00Z", "campaign_start_date": "2024-08-25T15:00:00Z", "category_slug": "category_slug", "channel_id": 0, "channel_slug": "channel_slug", "content_id": 0, "content_slug": "content_slug", "content_type": "content_type", "id": 0, "images": [ { "description": "description", "height": 0, "image_type": "banner_754x70", "qr_code_url": "https://www.example.com/path/to/resource", "title": "title", "url": "https://www.example.com/path/to/resource", "width": 0 } ], "landing_option": "info", "season_id": 0, "season_slug": "season_slug", "series_id": 0, "series_slug": "series_slug", "type": "season", "url": "https://www.example.com/path/to/resource" }, "slug": "slug", "title": "title" }
json
application/json

Retrieve specific channel category

GET
https://odkmedia.io
/odx/api/v4/channels/{id}/

Retrieves detailed information of a specific channel category by ID or slug. For favorites channels, device ID (did) parameter is required.

Retrieve specific channel category › path Parameters

id
​string · required
Example: featured
pk
​string · required

Channel category ID or slug

Retrieve specific channel category › query Parameters

adid
​string

Advertising ID (used for advertisement tracking and targeting). Takes priority over did parameter when is_lat=0. If is_lat=1 (limit ad tracking) on Smartcast platform, this value is used instead.

dnt
​string · enum

Do Not Track preference. Values: "0" (not enabled) or "1" (enabled). This is a user/browser preference and is independent of both the CMP consent choice and is_lat.

Enum values:
0
1
gdpr
​string · enum

GDPR applicability flag as reported by the CMP. Values: "0" (does not apply) or "1" (applies). Omit the parameter when the CMP does not report it; the backend never assumes a value.

Enum values:
0
1
gdpr_consent
​string

IAB TCF consent string, required by buyers when gdpr=1. Forwarded unmodified.

gpp
​string

IAB Global Privacy Platform (GPP) consent string as reported by the CMP. Forwarded to ad tags unmodified. Omit the parameter when the CMP has not resolved.

gpp_sid
​string

GPP section ID(s) as reported by the CMP (e.g. "7" for usnat, "8" for usca). Send whatever the CMP reports. The value is forwarded unmodified and is never validated or defaulted, because it differs per platform and jurisdiction.

is_lat
​string

Limit Ad Tracking flag. Values: "0" (allow tracking) or "1" (limit tracking)

lmt
​string · enum

Limit Ad Tracking flag as reported by the device (OpenRTB device.lmt). Values: "0" (allow tracking) or "1" (limit tracking). Equivalent to is_lat.

Enum values:
0
1
us_privacy
​string

CCPA US Privacy string as reported by the CMP (e.g. "1YNN", "1YYN"). Send the real consent value. Omit the parameter when no consent signal is available.

Retrieve specific channel category › Headers

did
​string

Device ID (used for Continue Watching, Favorites, and advertisement tracking)

Example: 00000000-0000-4000-8000-000000000000

Retrieve specific channel category › Responses

Serializer representing channel category and its channel list. Accepts either a ChannelCategory or a ChannelCategoryOrder instance. When a ChannelCategoryOrder is given, `order` comes from the order entry (supporting same category at multiple positions).
ChannelCategory
category_type
​string · enum · readOnly
  • category - Category
  • banner - Banner
Enum values:
category
banner
​Channel[] · readOnly
order
​integer · readOnly
​object · readOnly

Client API serializer for promoted content with platform-aware image selection and derived relationships.

slug
​string · readOnly · pattern: ^[-a-zA-Z0-9_]+$
title
​string · readOnly
GET/odx/api/v4/channels/{id}/
curl https://odkmedia.io/odx/api/v4/channels/:id \ --header 'Authorization: <api-key>'
Example Responses
{ "category_type": "category", "channels": [ { "color": "color", "description": "description", "id": 0, "images": { "logo": "https://www.example.com/path/to/resource", "poster": "https://www.example.com/path/to/resource" }, "number": 0, "order": 0, "slug": "slug", "stream_url": "stream_url", "title": "title" } ], "order": 0, "promoted_content": { "beacon_urls": [ { "beacon_type": "beacon_type", "beacon_url": "beacon_url" } ], "campaign_end_date": "2024-08-25T15:00:00Z", "campaign_start_date": "2024-08-25T15:00:00Z", "category_slug": "category_slug", "channel_id": 0, "channel_slug": "channel_slug", "content_id": 0, "content_slug": "content_slug", "content_type": "content_type", "id": 0, "images": [ { "description": "description", "height": 0, "image_type": "banner_754x70", "qr_code_url": "https://www.example.com/path/to/resource", "title": "title", "url": "https://www.example.com/path/to/resource", "width": 0 } ], "landing_option": "info", "season_id": 0, "season_slug": "season_slug", "series_id": 0, "series_slug": "series_slug", "type": "season", "url": "https://www.example.com/path/to/resource" }, "slug": "slug", "title": "title" }
json
application/json

categoryconsent