Schemas
AgeRating
is_blocklabelnameBadges
bottom_leftbottom_righttop_lefttop_rightCarousels
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
idkindnumberparttitlevideoA URL of video preview (the highest preset video's m3u8 file)
video_cc_languagesage_ratingAge rating's label. this field's value is always null. It will be removed.
CarouselsForContinueWatching
durationThe video length(duration)
episode_idlast_positionThe last watched point
program_idprogress_ratiolast_position divided by total_play_time
session_keytotal_play_timeThe total viewing time
updated_atuser_idwatchedTrue if progress_ratio is larger than 90%
Category
idslug^[-a-zA-Z0-9_]+$titleCategoryFilterOptionItem
if the category does not have this item, empty array is returned.
slug^[-a-zA-Z0-9_]+$titleCategoryItem
idservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$titleChannelImages
logoposterposter_landscapeposter_portraitCoverItem
call_to_actionA text rendered on button of cover
content_idID of selected content(program, episode, channel).
content_sales_typeContent(Program, Episode only) Sales type
content_slug^[-a-zA-Z0-9_]+$A slug of selected content(program or episode).
content_typeA type of selected content(program, episode, channel, external).
descriptionA description for cover
episode_idcontent_type==episode:episode_idis same as thecontent_idcontent_type==program- On-air Program (Program.release_status ==
on-air): Latest episode's id - Completed Program (Program.release_status ==
completed): Earliest episode's id
- On-air Program (Program.release_status ==
content_type==external:nullcontent_type==channel:null
image_landscapeLocalized landscape cover image
image_portraitLocalized portrait cover image
rolling_timeThe rolling time for each banner(second)
thumbnailA URL of cover thumbnail image
titleA title of cover
trackingWhich field reserved for Google Analytics
urlA target URL pointing to specific page when cover is clicked
videoA URL of video preview
imageThis field will be deprecated.
EpisodeIdentifiers
idsales_typeSales Type needed to watch this episode
slug^[-a-zA-Z0-9_]+$EpisodeList
idkindnumberparttitlevideoA URL of video preview (the highest preset video's m3u8 file)
video_cc_languagesage_ratingAge rating's label. this field's value is always null. It will be removed.
FavoritesProgram
idis_favoriteslug^[-a-zA-Z0-9_]+$LatestEpisode
idkindnumberparttitlevideoA URL of video preview (the highest preset video's m3u8 file)
NavigationItem
background_imagelinkog_imageratioseo_descriptionseo_keywordsseo_titleslug^[-a-zA-Z0-9_]+$titletypeODKToken
You can know source of token through its length.
- If its length is 60, it was created from IO.
- If its length is 40, it was used as legacy device token and migrated to IO.
- If its length is 32, it was used as legacy web token and migrated to IO.
OdkRokuUserRegisterSchema
pay_resultObject. It is result of RokuPay transaction.
user_idODK user ID
OdxV1AgeRating
is_blocklabelnameOdxV1ContinuousWatchingHistory
durationThe total viewing time
episode_idlast_positionThe last watched point
program_idprogress_ratiolast_position divided by total_play_time
session_keytotal_play_timeThe video length
updated_atuser_idwatchedTrue if progress_ratio is larger than 90%
OdxV1EpisodeList
idkindnumberpartpathrelease_datesales_typeSales Type needed to watch this episode
seo_keywordseo_synopsisseo_titlesynopsistitleuuidThis value is not editable.
video_cc_languagesvideo_durationmillisecond(ms)
OdxV1ProgramForEpisodeList
idservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$synopsistitleOdxV2Advertisement
ad_tag_urlFull advertisement tag url
client_paramsClient must set parameters
providerAdvertisement provider
VAST tags which will be used on Roku and AppleTV.
OdxV2CWEpisode
idkindnumberpartslug^[-a-zA-Z0-9_]+$titlevideo_cc_languagesvideo_durationmillisecond(ms)
OdxV2ChangePassword
new_passwordpasswordOdxV2Channels
idprimary key of channel model
orderThe Channel list is ordered by this value
stream_urlChannel live stream url.
titleChannel title
logologo field is deprecated and will be removed. Please use images.logo field.
OdxV2ClientConfigType
Decision Table
| Variant | Matching Criteria |
|---|---|
| No specific criteria | |
| No specific criteria | |
| No specific criteria | |
| No specific criteria |
OdxV2ContactUsInputSchema
descriptionemailkindnamephonepreferred_languageprioritystatussubjectOdxV2ContinuousWatchingHistory
durationThe video length(duration)
episode_idlast_positionThe last watched point
program_idprogress_ratiolast_position divided by total_play_time
session_keytotal_play_timeThe total viewing time
updated_atuser_idwatchedTrue if progress_ratio is larger than 90%
OdxV2Curation
idservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$Home slug for url
OdxV2CurationContent
logic_categorylogic_ordering- Available in
ODK:"program-recent-updated","program-popular","program-favorite","episode-continue-watching","episode-recent-updated","episode-recent-updated-in-24h","episode-recent-updated-except-news-and-daily-life","episode-24h-free","episode-popular-by-data","episode-recommendation", ,"episode-recent-updated-by-date","featured-collection" - Available in
ODC:"program-recent-updated","program-popular","program-custom-drama","program-custom-variety","program-custom-movie","program-custom-documentary","program-custom-news","program-custom-kids","episode-continue-watching","episode-recent-updated" - Available in
ODL:"program-recent-updated","program-popular","episode-continue-watching","episode-recent-updated"
manual_idsmaxprogram_direct_playratioslugtitletitle_urltypetype==episode:Carousels.EpisodeListtype==program:Carousels.ProgramListlogic_ordering==episode-recent-updated-by-date:CarouselsForWhatsNewlogic_ordering==episode-continue-watching:CarouselsForContinueWatching
The carousel banner's information(e.g. Featured Collection banner). If there's no banner info in DB, it returns null
OdxV2CurationContentBase
logic_categorylogic_ordering- Available in
ODK:"program-recent-updated","program-popular","program-favorite","episode-continue-watching","episode-recent-updated","episode-recent-updated-in-24h","episode-recent-updated-except-news-and-daily-life","episode-24h-free","episode-popular-by-data","episode-recommendation", ,"episode-recent-updated-by-date","featured-collection" - Available in
ODC:"program-recent-updated","program-popular","program-custom-drama","program-custom-variety","program-custom-movie","program-custom-documentary","program-custom-news","program-custom-kids","episode-continue-watching","episode-recent-updated" - Available in
ODL:"program-recent-updated","program-popular","episode-continue-watching","episode-recent-updated"
manual_idsmaxprogram_direct_playratioslugtitletitle_urltypeOdxV2CurationContentRetrieve
idservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$Home slug for url
OdxV2CurationWithoutCarousels
contentsidservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$Home slug for url
OdxV2DeleteAccount
passwordIf user's login_type is email, then password is required.
OdxV2EPG
content_uuidContent UUID (for data team)
date(UTC) Schedule date
descriptionProgram description
durationDuration in seconds
end_time(UTC) Program end datetime
episode_numEpisode number if content is episode else null
idstart_time(UTC) Program start datetime
thumbnailThumbnail url
titleProgram title
OdxV2Episode
durationmillisecond(ms)
idkindnumberpartner^[-a-zA-Z0-9_]+$release_dateseo_keywordseo_synopsisseo_titleslug^[-a-zA-Z0-9_]+$titleOdxV2EpisodeList
idkindnumberpartrelease_datesales_typeSales Type needed to watch this episode
seo_keywordseo_synopsisseo_titleslug^[-a-zA-Z0-9_]+$synopsistitleuuidThis value is not editable.
video_cc_languagesvideo_durationmillisecond(ms)
OdxV2FirstNavigation
slug^[-a-zA-Z0-9_]+$ · requiredtypebackground_imagelinkog_imageratioseo_descriptionseo_keywordsseo_titletitleThe items is a list of child category. The max depth is 3. The schema is the same as the parent category. Please refer to the example data.
OdxV2Navigation
idservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$Home slug for url
OdxV2Notice
enableNotice enabled
linkExternal Link
published_atCreate or WIX publish datetime
titleOdxV2PaymentCheckoutAznetPost
data_descriptiondata_valuezipcodeOdxV2PaymentMethodUpdateInputSchema
token_idA token generated by Recurly.js
OdxV2PaymentSubscription
callback_urltemporary empty string before IO-1679
descriptionDescription of product according to interval unit such as Month and Year
fields_onIf upgrade or downgrade, we don't need card number for recurly subscription, so fields_on = false.
operation_typeVariable to decide whether product's information is shown or not
priceproduct_code^[A-Z0-9_]+$product_namepublic_keyUse Public Key to identify your site when using Recurly.js.
OdxV2Playback
bumperbumper_durationvideo's bumper duration info
language codes and settings for subtitles in manifests
cue_points isn't used in phase 1.
OdxV2ContinuousWatchingHistory
cwl_call_cycleIf Non-drm video, drm: {} in response
durationvideo's duration info (millisecond)
idID of video.api object(Video Asset)
sources(video) + text_tracks(subtitles) = manifests (In URL, adverising parameters are added like sources.)
sourceasset type of video source
In case of Non-drm video, there is only one URL of the highest resolution for the current user available, whereas there are two URLs of the highest resolution for the user in case of DRM video.
If there's no file info for storyboards, this field returns null.
If asset_type is in inhouse, relay, and mediahold (the asset stored in s3), text_tracks is required.
OdxV2PlaybackEpisode
idis_kocowaWhether this episode is in KOCOWA category
kindnumberpartrelease_dateslug^[-a-zA-Z0-9_]+$titleOdxV2PlaybackEpisodeWithSalesType
idis_kocowaWhether this episode is in KOCOWA category
kindnumberpartrelease_datesales_typeslug^[-a-zA-Z0-9_]+$titleOdxV2PlaybackExternalKCPInformation
asset_idHashed value from episode's uuid
episode_numberEpisode number
service_typeEpisode's kcp service type from KCP meta
user_idHashed value from user's uuid (Set null if anonymous user)
user_typeUser type for KCP data analytics
vod_typeEpisode's kcp vod type from KCP meta
OdxV2PlaybackProgram
idis_favoriteslug^[-a-zA-Z0-9_]+$synopsistitleOdxV2Program
default_sales_typeDefault SalesType value for episode of program
idis_coming_soonIf this program has episode (except for trailer, clip episodes), this value is true.
is_favoritekinds_of_episodesKinds of episode that the program has.
partner^[-a-zA-Z0-9_]+$produce_yearyyyy
publish_start(UTC) Publish_start Datetime of program. (e.g. 2022-08-02T00:00:00Z)
release_statussecondary_titleseo_keywordseo_synopsisseo_titleslug^[-a-zA-Z0-9_]+$synopsistitleuuidThis value is not editable.
direct_play_episode_idID of episode played when 'play' button is clicked
service_nameex) odk, odc and etc. / To specify service name
OdxV2ProgramForEpisodeRetrieve
idslug^[-a-zA-Z0-9_]+$titleOdxV2Programs
content_descriptionThis field's value is localized title.
idis_favoritekinds_of_episodesKinds of episode that the program has.
latest_publish_start(UTC) Publish_start Datetime of program's latest episode. (e.g. 2022-08-02T00:00:00Z)
publish_start(UTC) Publish_start Datetime of program. (e.g. 2022-08-02T00:00:00Z)
slug^[-a-zA-Z0-9_]+$Program slug
OdxV2QRLoginInitialization
login_urlqrcodeverify_codeOdxV2QRLoginVerifyCheck
statustokenverify_codeOdxV2ResetPassword
hashnew_passwordOdxV2Search
default_sales_typeDefault SalesType value for episode of program
idis_favoriteservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$titleuuidThis value is not editable.
OdxV2SecondNavigation
slug^[-a-zA-Z0-9_]+$ · requiredtypebackground_imagelinkog_imageratioseo_descriptionseo_keywordsseo_titletitleOdxV2SignIn
emailpasswordkeepIn ODK, default value is true. If keep is true, expiration time is 1 year. Default expiration time is 1 day.
OdxV2SignUp
emailpasswordOdxV2SplashScreen
support promotion screens and interstitial ads(for mobile apps)
OdxV2SubscriptionChangeInputSchema
product_code^[A-Z0-9_]+$ · requiredOdxV2SubscriptionCreateInputSchema
product_code^[A-Z0-9_]+$ · requiredtoken_idA token generated by Recurly.js
coupon_codeRecurly Coupons (odk7dfree for ODK-PREMIUM-1-MONTH / 2mfreeodk for ODK-PREMIUM-1-YEAR)
OdxV2TVGuideEpisode
has_video_ccidslug^[-a-zA-Z0-9_]+$titleOdxV2TVGuideEpisodeItem
category_title^[-a-zA-Z0-9_]+$Category Title
idslug^[-a-zA-Z0-9_]+$Category slug
OdxV2TVGuideEpisodes
category_title^[-a-zA-Z0-9_]+$Category Title
idslug^[-a-zA-Z0-9_]+$Category slug
OdxV2TVGuideProgramItem
category_title^[-a-zA-Z0-9_]+$Category Title
idslug^[-a-zA-Z0-9_]+$Category slug
OdxV2TVGuidePrograms
category_title^[-a-zA-Z0-9_]+$Category Title
idslug^[-a-zA-Z0-9_]+$Category slug
OdxV2ThirdNavigation
slug^[-a-zA-Z0-9_]+$ · requiredtypebackground_imagelinkog_imageratioseo_descriptionseo_keywordsseo_titletitleOdxV2UserInfo
birthdayThe format should be YYYY-MM-DD, not YYYYMMDD like other version APIs.
genderis_receive_maillanguageOdxV2UserOrdersPayPerView
amountmethodoptionordered_dateproduct_namestatusOdxV2UserProfile
emailidis_email_verifiedis_odk_coupon_userlogin_typenamesubscription_expire_datesubscription expire date or admin coupon expire date
subscription_interval_unitsubscription_is_cancellableThe value True means cancellable with active subscription and False means already canceled or etc.
subscription_max_profile_count- This value is the maximum number of Profiles a user can create.
- If the user is not a subscription user, the value is '1'.
subscription_pricesubscription_providersubscription_trial_end_datesubscription_typeadmin-coupon user is also premium
userinfoOdxV2UserProfileExternalKCPInformationSerializer
user_idHashed value from user's uuid (Set null if anonymous user)
user_typeUser type for KCP data analytics
OdxV2UserToken
tokenPersonRole
infonameroleslug^[-a-zA-Z0-9_]+$ProgramForEpisodeRetrieve
idproduce_yearyyyy
slug^[-a-zA-Z0-9_]+$synopsistitleProgramList
idis_favoriteproduce_yearyyyy
secondary_titleslug^[-a-zA-Z0-9_]+$titleage_ratingAge rating's label. this field's value is always null. It will be removed.
ProgramMeta
cc_languagesepisode_totalhide_ep_dateproduce_countriesrunning_timeunit: minutes
QRPassStatus
- If request doesn’t include ODX token, status is
"no_credential". - If request includes ODX token and owner of the token is equal to CTV account, status is
"credential_matched". - If request includes ODX token and owner of the token is different with CTV account, status is
"credential_mismatched".
SearchCategory
idis_rootparentservice_nameex) odk, odc and etc. / To specify service name
slug^[-a-zA-Z0-9_]+$titleSocialAuthAuthAppleSchema
codeAuthorization code
emailfirst_namelast_nameredirect_uriRedirect URI used in initial authorization request
SocialAuthAuthFacebookSchema
access_tokenAccess token
expires_inTime remaining before token expires (second)
TVGuideChannel
idprimary key of channel model
orderThe Channel list is ordered by this value
stream_urlChannel live stream url.
titleChannel title
logologo field is deprecated and will be removed. Please use images.logo field.
TVGuideProgram
category_titleIf episode isn't released yet, it returns null.
idslug^[-a-zA-Z0-9_]+$VerifyAuthStatus
baseListResponseProperties
debug
Parsing result for User-Agent request header
listResult
countnextpage_nextpage_previouspage_sizepreviousresults