dgmbq7cup3tep.cloudfront.net Open in urlscan Pro
2600:9000:261f:8000:17:c4a:2840:93a1  Public Scan

URL: https://dgmbq7cup3tep.cloudfront.net/
Submission: On December 03 via api from US — Scanned from US

Form analysis 0 forms found in the DOM

Text Content

 * Introduction
 * Cross-Origin Resource Sharing
 * Authentication
 * Image Manipulation
 * Content Taxonomy
 * Deprecated Routes
 * App Load
   * postGet the information necessary to load an app.
 * App Version
   * getGet latest app version by platform.
 * Country
   * postGet geo data from IP.
 * Category
   * getGet all categories.
   * getGet a category.
 * Channel
   * getGet all channels.
   * getGet channels by category.
   * getGet a channel by category.
   * getGet a child channel.
   * getGet a channel without category.
   * getGet a channel without category.
   * getGet channel by Spotlight Channel ID.
   * postRefresh a channel.
   * postRefresh a company's channels
   * postRefresh channels in bulk
 * Company
   * getGet all videos.
   * getGet all available channels.
   * getGet all available genres.
   * getGet all subscribed to channels.
   * postUnsubscribe from channel.
 * DRM
   * getGet a stream session ID
   * getRegister concurrent stream
   * delDestroy stream session
   * delDestroy a user's login session
   * delDestroy every login session for a user
 * Live
   * getGet live channels.
   * getGet a live channel.
   * getGet company EPG.
   * getGet EPG program by Program ID.
 * Page
   * getGet home page data.
   * getGet movies page data.
   * getGet series page data.
   * getGet a list of pages.
   * getGet the navigation menu.
   * getGet a page.
   * getGet a list of posts.
   * getGet a post.
   * getGet a story block.
 * Playlist
   * getGet videos by playlist ID.
 * Roku
   * getGet a JSON direct publisher feed for your company.
 * Search
   * getFind channels by platform.
   * getFind programs by platform and country code.
   * getFind videos.
   * getFind video titles (autocomplete).
   * getFind channel titles (autocomplete).
   * getGet content recommendations.
   * getGet video recommendations.
   * getGet recommendations by Video ID.
   * getGet recommendations by Channel.
   * getSearch channels.
   * getSearch videos.
 * Subscription
   * Subscription Creation Flow
   * Subscription Entitlement Flow
   * Subscription Upgrade/Downgrade (Web Only)
   * Subscription Reactivation (Web Only)
   * Subscription Support
   * getGet company product summary.
   * getGet the default subscription behavior.
   * getGet list of channels in a product.
   * getGet all products a channel part of.
   * getGet subscription user.
   * getGet subscription user.
   * getGet user's subscriptions.
   * getGet user's products.
   * getGet a user's purchase history
   * getCheck subscription status.
   * postCreate a payment profile for a user (WEB)
   * postImport Braintree user and subscribe (WEB)
   * postSubscribe user.
   * postCancel subscription (WEB)
   * postValidate coupon (WEB)
   * postCreate an Amazon Fire subscription (AMAZON FIRE)
   * postCreate an Apple subscription (APPLE)
   * postCreate an Android/Google subscription (ANDROID/GOOGLE)
   * postAttach Roku customer data to a user (ROKU)
   * postAssociate a Roku transaction id with a user (ROKU)
   * postCreate a Roku subscription (ROKU)
   * putUpdate payment profile.
   * postVerify subscription entitlement for one or more users.
 * Token
   * postObtain API access token.
 * User
   * postGet a client token.
   * getGet user details.
   * delRemove a user from the system
   * getGet the account deletion date for a user
   * postRefresh client token.
   * postGet payment token.
   * getGet all "recently watched" data.
   * getGet "recently watched" data for a video.
   * postCreate point data.
 * Video
   * getGet a video by ID.
   * getGet a video by slug.
   * getGet a random video.
   * getGet video MRSS feed.
 * VMAP
   * getGet a VMAP document for a video
 * Watchlist
   * getGet a user's watchlist.
   * postAdd to a user's watchlist.
   * delDelete a channel from a user's watchlist.
 * Webhooks

API docs by Redocly





DOTSTUDIOPRO API

Download OpenAPI specification:Download

E-mail: info@dotstudiopro.com


Find out more about dotstudioPRO


INTRODUCTION

dotstudioPRO exposes its data via an Application Programming Interface (API), so
developers can interact in a programmatic way with the dotstudioPRO application.
This document is the official reference for that functionality.


CROSS-ORIGIN RESOURCE SHARING

This API features Cross-Origin Resource Sharing (CORS). All responses have a
wildcard same-origin which makes them completely public and accessible to
everyone, including any code on any site.


AUTHENTICATION

Most requests to the API require an API access token passed in as a header, with
key x-access-token.

To obtain a new access token, retrieve your API key from the "User" settings in
the dotstudioPRO dashboard, and use it to create a POST request to the API's
Token endpoint.

An additional token is required whenever accessing any user-related functions,
such as logging users in, getting or updating user data, or creating orders.
This token should be passed in via the header as x-client-token. The reference
for this functionality is avaliable under "User".


IMAGE MANIPULATION

The size of any image served by dotstudioPRO is configurable to best fit your
use-case. To get a custom size for any image append the image URL with two path
parameters, one for width and one for height.

For example, you may receive an thumbnail URL such as
https://images.dotstudiopro.com/58a37a4a99f815d405cb59f7 when you make a call to
get video info, but your UI only requires a 350x200 version of this image and
you want a smaller copy to save your users bandwidth. You may append the URL
with /350/200 to get a smaller version to use in your app/project.

Example - https://images.dotstudiopro.com/58a37a4a99f815d405cb59f7/350/200

Two additional querystring parameters are available:

blur - a value between 1 and 100 can be passed to apply a blur filter to the
image

Example - https://images.dotstudiopro.com/58a37a4a99f815d405cb59f7?blur=80.

webp - a value of 1 can be passed to return an image in the WebP format

Example - https://images.dotstudiopro.com/58a37a4a99f815d405cb59f7?webp=1.

All new iterations of any images are automatically cached in a CDN.


CONTENT TAXONOMY

dotstudioPRO allows users to organize content in a top-down taxonomy.

At the top-most level are Categories - here users specify which devices,
platforms, or feeds published content appears on. Most commonly a category will
be rendered as an individual page, rail, or carousel in an application. A
Category can be assigned to any number of channels.

The next level down are Channels. A channel that is published and assigned to a
category will begin appearing in API responses whenever that category data is
requested. A channel may have any number of categories assigned to it. A channel
not assigned to any categories is essentially unpublished and will not be
visible in any applications.

dotstudioPRO has 3 main channel types:

 1. parent channels. This channel type is used to group seasonal content (ie
    multiple "regular" channels) together. The simplest check you can make to
    know if you are looking at a parent channel is to look at the length of the
    childchannels array - if it comes back with a value greater than 0 you are
    looking at a parent channel.

 2. regular channels. This channel type contains a single video or a playlist of
    videos. To determine what the contents of a regular channel are, check the
    length of the laylist array. If the array has any items in it, each item
    will represent a video in the playlist assigned to the channel. Otherwise,
    if the playlist array is empty it means the channel contains only a single
    video which will be found under the video key.

 3. live channels. This channel type is used to create Live Linear playouts and
    will always contain a single live video & stream URL.

There will be other keys you can use to categorize channel types, but they will
likely be dependent on how your content team configures metadata in the
dashboard. The above examples are provided as the "universal" check as they are
going to be reliable no matter how you set up your content. In summary:

if (channel?.childchannels?.length) {
  //this is a parent channel containing 1...n regular channels
} else if (channel?.playlist?.length) {
  //this is a regular channel containing a playlist with 1...n videos
} else {
  //this is a regular channel containing exactly 1 video
}


The next level down are Playlists. dotstudioPRO allows users to either construct
playlists manually with a drag-and-drop interface, or construct playlists
dynamically based on video metadata. The API responses for the two different
playlist types are normalized, and any items inside the channel.playlist array
will always have the same model and each represent a single video.

The final layer of the content taxonomy are Videos. These point to an actual
video file and contain any video-specific data like ad rules, VoD rules,
title-specific metadata etc.


DEPRECATED ROUTES

Any routes that are deprecated will be marked as deprecated in the documentation
and a x-deprecation header will be returned with a timestamp the route is
expected to stop functioning. If there is an alternate or updated route to use,
this will be returned in a x-deprecation-update header with a url to the
documentation for the new route.


APP LOAD


GET THE INFORMATION NECESSARY TO LOAD AN APP.

post/appload/{platform}/{countryCode}
https://api.myspotlight.tv/appload/{platform}/{countryCode}

This route is a combination of several features/routes that make loading an app
easier.

First, this route returns an object called app_data. This returns app info
metadata and an access token (app_data.token). This ensures that your app does
not have to hit our /token route to get a new token when the app launches.

Second, this route returns an object called user_data. If the x-client-token
header is not passed, this object will be empty. If the x-client-token header is
passed with a valid token, there will be a token property that is a fresh
client, along with some other user data like resumptions and subscription info.

Note: If the login session for the client token is expired or invalid, the
user_data object will have either a clear_sessions_only flag, or a
must_reauthenticate flag. Please refer to the headers of similar names in our
DRM documentation to understand what each means. In these instances, the client
token that is returned will not be usable and the user must be redirected to
authenticate for the app to receive a fresh client token.

Third, this route returns an object called homepage which is the equivalent of
calling our Home Page route.

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

QUERY PARAMETERS

api_key
required
string

An API key to authenticate against the Spotlight API.

asset_dates
boolean

A flag to return asset dates (created_at, updated_at) with video assets.

HEADER PARAMETERS

x-client-token
string

The client token for a user who has already authenticated.


RESPONSES

200

Successful operation

400

Missing the necessary parameters for this request.

401

The client token is expired or invalid.

403

Missing or invalid API key, or invalid client token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "user_data": {
    * "resumptions": {
       * "continue-watching": [
          * {
             * "_id": "4d65a4f89a41df65a1f8d9s",
             * "company_id": "4d65a4f89a41df65a1f8d9s",
             * "user_id": "4d65a4f89a41df65a1f8d9s",
             * "title": "Some Neat Video",
             * "seriestitle": "Neat Videos",
             * "thumb": "4d65a4f89a41df65a1f8d9s",
             * "duration": 123.4,
             * "point": 123.4,
             * "progress": 25,
             * "updatedAt": "2022-04-29T23:13:14.154Z",
             * "episode": "3",
             * "poster": "4d65a4f89a41df65a1f8d9s"
            
            }
         
         ],
       * "watch-again": [
          * {
             * "_id": "4d65a4f89a41df65a1f8d9s",
             * "company_id": "4d65a4f89a41df65a1f8d9s",
             * "user_id": "4d65a4f89a41df65a1f8d9s",
             * "title": "Some Neat Video",
             * "seriestitle": "Neat Videos",
             * "thumb": "4d65a4f89a41df65a1f8d9s",
             * "duration": 123.4,
             * "point": 123.4,
             * "progress": 97,
             * "updatedAt": "2022-04-29T23:13:14.154Z",
             * "episode": "3",
             * "poster": "4d65a4f89a41df65a1f8d9s"
            
            }
         
         ]
      
      },
    * "products": {
       * "svod": [
          * {
             * "id": 15236915,
             * "state": "active",
             * "current_period_ends_at": "2016-11-15T14:48:10-05:00",
             * "trial_started_at": null,
             * "trial_ended_at": null,
             * "activated_at": "2016-11-14T14:48:12-05:00",
             * "expires_at": null,
             * "created_at": "2016-11-14T14:48:10-05:00",
             * "updated_at": "2016-11-14T15:24:41-05:00",
             * "current_period_started_at": "2016-11-14T14:48:10-05:00",
             * "coupon_code": "5SNN6HFK3GBH",
             * "customer": {
                * "first_name": "Curtis",
                * "last_name": "Test",
                * "email": "curtis@example.com",
                * "created_at": "2016-11-14T14:48:10-05:00",
                * "updated_at": "2016-11-14T14:48:13-05:00",
                * "address": "123 Anywhere Street",
                * "address_2": "",
                * "city": "Boulder",
                * "state": "CO",
                * "zip": "80302",
                * "country": "US"
               
               },
             * "product": {
                * "id": 3792003,
                * "name": "$10 Basic Plan",
                * "handle": "basic",
                * "description": "lorem ipsum",
                * "accounting_code": "basic",
                * "price_in_cents": 1000,
                * "interval": 1,
                * "interval_unit": "day",
                * "trial_interval": null,
                * "trial_interval_unit": "month",
                * "created_at": "2016-03-24T13:38:39-04:00",
                * "updated_at": "2016-11-03T13:03:05-04:00",
                * "archived_at": null,
                * "credit_card": {
                   * "id": 10191713,
                   * "payment_type": "credit_card",
                   * "first_name": "Curtis",
                   * "last_name": "Test",
                   * "masked_card_number": "XXXX-XXXX-XXXX-1",
                   * "card_type": "bogus",
                   * "expiration_month": 1,
                   * "expiration_year": 2026,
                   * "billing_address": "123 Anywhere Street",
                   * "billing_address_2": "",
                   * "billing_city": "Boulder",
                   * "billing_state": null,
                   * "billing_country": "",
                   * "billing_zip": "80302"
                  
                  },
                * "payment_type": "credit_card"
               
               }
            
            }
         
         ],
       * "tvod": [
          * {
             * "id": 15236915,
             * "state": "active",
             * "current_period_ends_at": "2017-11-14T14:48:10-05:00",
             * "trial_started_at": null,
             * "trial_ended_at": null,
             * "activated_at": "2016-11-14T14:48:12-05:00",
             * "expires_at": "2017-11-14T14:48:10-05:00",
             * "created_at": "2016-11-14T14:48:10-05:00",
             * "updated_at": "2016-11-14T15:24:41-05:00",
             * "current_period_started_at": "2016-11-14T14:48:10-05:00",
             * "coupon_code": "5SNN6HFK3GBH",
             * "customer": {
                * "first_name": "Curtis",
                * "last_name": "Test",
                * "email": "curtis@example.com",
                * "created_at": "2016-11-14T14:48:10-05:00",
                * "updated_at": "2016-11-14T14:48:13-05:00",
                * "address": "123 Anywhere Street",
                * "address_2": "",
                * "city": "Boulder",
                * "state": "CO",
                * "zip": "80302",
                * "country": "US"
               
               },
             * "product": {
                * "id": 3792004,
                * "name": "Watch A Channel Plan",
                * "handle": "watch_channel",
                * "description": "lorem ipsum",
                * "accounting_code": "watch_channel",
                * "price_in_cents": 500,
                * "interval": 1,
                * "interval_unit": "day",
                * "trial_interval": null,
                * "trial_interval_unit": "month",
                * "created_at": "2016-03-24T13:38:39-04:00",
                * "updated_at": "2016-11-03T13:03:05-04:00",
                * "archived_at": null,
                * "credit_card": {
                   * "id": 10191713,
                   * "payment_type": "credit_card",
                   * "first_name": "Curtis",
                   * "last_name": "Test",
                   * "masked_card_number": "XXXX-XXXX-XXXX-1",
                   * "card_type": "bogus",
                   * "expiration_month": 1,
                   * "expiration_year": 2026,
                   * "billing_address": "123 Anywhere Street",
                   * "billing_address_2": "",
                   * "billing_city": "Boulder",
                   * "billing_state": null,
                   * "billing_country": "",
                   * "billing_zip": "80302"
                  
                  },
                * "payment_type": "credit_card"
               
               }
            
            }
         
         ]
      
      },
    * "subscription": {
       * "id": 15236915,
       * "state": "active",
       * "current_period_ends_at": "2016-11-15T14:48:10-05:00",
       * "trial_started_at": null,
       * "trial_ended_at": null,
       * "activated_at": "2016-11-14T14:48:12-05:00",
       * "expires_at": null,
       * "created_at": "2016-11-14T14:48:10-05:00",
       * "updated_at": "2016-11-14T15:24:41-05:00",
       * "current_period_started_at": "2016-11-14T14:48:10-05:00",
       * "coupon_code": "5SNN6HFK3GBH",
       * "customer": {
          * "first_name": "Curtis",
          * "last_name": "Test",
          * "email": "curtis@example.com",
          * "created_at": "2016-11-14T14:48:10-05:00",
          * "updated_at": "2016-11-14T14:48:13-05:00",
          * "address": "123 Anywhere Street",
          * "address_2": "",
          * "city": "Boulder",
          * "state": "CO",
          * "zip": "80302",
          * "country": "US"
         
         },
       * "product": {
          * "id": 3792003,
          * "name": "$10 Basic Plan",
          * "handle": "basic",
          * "description": "lorem ipsum",
          * "accounting_code": "basic",
          * "price_in_cents": 1000,
          * "interval": 1,
          * "interval_unit": "day",
          * "trial_interval": null,
          * "trial_interval_unit": "month",
          * "created_at": "2016-03-24T13:38:39-04:00",
          * "updated_at": "2016-11-03T13:03:05-04:00",
          * "archived_at": null
         
         },
       * "payment_info": {
          * "first_name": "John",
          * "last_name": "Smith",
          * "masked_card_number": "XXXX-XXXX-XXXX-1111",
          * "card_type": "visa",
          * "expiration_month": 12,
          * "expiration_year": 2025,
          * "billing_address": "1355 Anywhere Street",
          * "billing_address_2": null,
          * "billing_city": "Somewhere",
          * "billing_state": "CA",
          * "billing_zip": "90001",
          * "billing_country": "US"
         
         },
       * "platform": "web"
      
      },
    * "token":
      "eyJf0eXAiOdadfadsf87da61df3hbGciOiJIUzI1Niadfadfadf.Jjb250ZXh0Ijp7ImF2YXRhciI6Imh0dHBzOi8vcy5ncmF2Yd5jb20vYXadfZhdGFyLzg0YzIafd5ZGadRmZmQ3NTdmOTad987FF6a1ds3YTExMjU0P3M9NDgwJnI9cGcmZD1odHRwcyUzQSUyRiUyRmNkbi5hdXRoMC5jb20lMkZhdmF0YXJzJTJGZGgucG5nIiwiaWQiOiI2MjZjNmYzMWRmNjVmZadsBlNWZiY2ZmNWEiLCJmaXJzdF9uYW1lIjoiIiwibGFzdF9uYW1lIjoafdiIn77.sd86a74fd.fQ-6sc9EJJulYFdPbKe_noE8r8A36-wJFzExJQ"
   
   },
 * "app_data": {
    * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
    * "app_info": {
       * "platform": "ios",
       * "package_name": "com.somecompany.somevalue.someothervalue",
       * "version": 1,
       * "appstore_url": "www.thisisatest.com/someapp",
       * "app_name": "Test App"
      
      }
   
   },
 * "homepage": [
    * {
       * "category": {
          * "_id": "string",
          * "name": "Featuired",
          * "slug": "featured",
          * "display_type": "default"
         
         },
       * "channels": [
          * {
             * "_id": "string",
             * "title": "Big Buck Bunny",
             * "description": "Big Buck Bunny",
             * "poster": "Big Buck Bunny",
             * "channel_logo": "string",
             * "spotlight_poster": "string",
             * "slug": "big-buck-bunny",
             * "is_product": true,
             * "channel_type": "parent",
             * "programming_type": "Series"
            
            }
         
         ]
      
      }
   
   ]

}


APP VERSION

Retrieve the latest versions of your company's apps. This endpoint can be called
on the launch of your app to determine whether or not updates have been released
and if it's necessary to display any messages to the user prompting them to
update their app.


GET LATEST APP VERSION BY PLATFORM.

get/latestAppVersion/{platform}/{package}
https://api.myspotlight.tv/latestAppVersion/{platform}/{package}

Retrieve the latest versions of your company's apps.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

platform
required
string
Enum: "android" "apple_tv" "fire_tv" "ios" "roku"

2-letter ISO Alpha2 formatted country code of the end-user.

package
required
string
Example: com.developmentcompany.yourcoolapp

Package name for the app


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "latestVersion": {
    * "company_id": "592709ff97f81578165aa389",
    * "appstore_url":
      "https://play.google.com/store/apps/details?id=com.dotstudioz.dotstudioPRO.myPackage",
    * "platform": "android",
    * "severity_level": 0
   
   }

}


COUNTRY

The Spotlight API requires (for most content-related calls) an ISO Alpha2
formatted two letter country code. Most implementations of this can be done on
the client side through geolocation. However, if a user declines to share where
they are through the geolocation service, this call can be used.


GET GEO DATA FROM IP.

post/country
https://api.myspotlight.tv/country

Receive detailed geo information about a user based on their IP address.

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

The user's IP

string (Ip)



RESPONSES

200

Success

400

Missing required parameter ip in POST body.

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "ip": "166.78.41.43"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "region": "BC",
    * "city": "Vancouver",
    * "postalCode": "V1A",
    * "continentCode": "NA",
    * "regionName": "British Columbia",
    * "countryCode": "CA",
    * "countryName": "Canada",
    * "latitude": 49,
    * "longitude": -123,
    * "timeZone": "America/Vancouver"
   
   }

}


CATEGORY

Retrieve category data from dotstudioPRO


GET ALL CATEGORIES.

get/categories/{countryCode}
https://api.myspotlight.tv/categories/{countryCode}

Obtain a list of all categories added to the Spotlight API for a particular
token. Please note that passing either of the pagination parameters (page or
limit) will result in the pagination properties (total, limit, page, pages)
being sent back as part of the top-level return object. Otherwise, these
parameters will not be returned and all results for a given country code will be
returned in the categories array.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

QUERY PARAMETERS

page
number

The page of results being requested.

limit
number

The limit to the results being requested.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "path": "https://api.myspotlight.tv/categories/US",
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "pages": {
    * "total": 20,
    * "limit": 10,
    * "page": 1,
    * "pages": 2
   
   }

}


GET A CATEGORY.

get/categories/{countryCode}/{category_slug}
https://api.myspotlight.tv/categories/{countryCode}/{category_slug}

Obtain a category object for a specific category.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

category_slug
required
string

Slug of the category you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59555d78ae075a721ddac670",
 * "company_id": "592709ff97f81578165aa389",
 * "display_type": "default",
 * "enabled": true,
 * "homepage": true,
 * "image": {
    * "height": 250,
    * "width": 480,
    * "poster": "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
    * "spotlight_poster":
      "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
    * "videos_thumb": "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
   
   },
 * "menu": true,
 * "name": "Featured Content",
 * "slug": "featured",
 * "weight": 0,
 * "platforms": [
    * {
       * "android": "true",
       * "ios": "false",
       * "roku": "true"
      
      }
   
   ],
 * "custom_fields": [
    * {
       * "field_title": "custom_field_1",
       * "field_value": "custom_value_1"
      
      },
    * {
       * "field_title": "custom_field_2",
       * "field_value": "custom_value_2"
      
      }
   
   ],
 * "path": "http://api.myspotlight.tv/categories/US/featured",
 * "channels": "http://api.myspotlight.tv/channels/US/featured"

}


CHANNEL

Retrieve channel data from dotstudioPRO


GET ALL CHANNELS.

get/channels/{countryCode}
https://api.myspotlight.tv/channels/{countryCode}

Obtain a list of all channels that are currently published.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

QUERY PARAMETERS

genre
string

A genre slug to query for (optional)

platform
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59c724ef98e82b310e85fd4c",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
 * "childchannels": [
    * "channelObject1",
    * "channelObject2"
   
   ],
 * "company": "subdomain",
 * "country": "Canada",
 * "description": "This is a great show!",
 * "directors": [
    * "Director A"
   
   ],
 * "genres": [
    * "Action",
    * "Comedy"
   
   ],
 * "hasYoutube": false,
 * "in_watchlist": false,
 * "language": "English",
 * "or_release_date": "2020-01-01",
 * "path": "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
 * "playlist": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "playlist_id": "59c7210b97f815b52ea068cf",
 * "playlist_type": "manual",
 * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "programming_type": "Series",
 * "rating": "PG",
 * "season": 1,
 * "spotlight_poster":
   "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "slug": "my-channel",
 * "title": "My Cool Channel",
 * "trailer": {
    * "video_id": "5ed7e4b6b32ab5755a17a932",
    * "url":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
   
   },
 * "video": "videoObj[0]",
 * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET CHANNELS BY CATEGORY.

get/channels/{countryCode}/{category_slug}
https://api.myspotlight.tv/channels/{countryCode}/{category_slug}

Obtain a list of all published channels within a particular category.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

category_slug
required
string

Slug of category whose channels you wish to retrieve.

QUERY PARAMETERS

genre
string

A genre slug to query for (optional)

platform
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

No category with that slug could be found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59c724ef98e82b310e85fd4c",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
 * "childchannels": [
    * "channelObject1",
    * "channelObject2"
   
   ],
 * "company": "subdomain",
 * "country": "Canada",
 * "description": "This is a great show!",
 * "directors": [
    * "Director A"
   
   ],
 * "genres": [
    * "Action",
    * "Comedy"
   
   ],
 * "hasYoutube": false,
 * "in_watchlist": false,
 * "language": "English",
 * "or_release_date": "2020-01-01",
 * "path": "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
 * "playlist": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "playlist_id": "59c7210b97f815b52ea068cf",
 * "playlist_type": "manual",
 * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "programming_type": "Series",
 * "rating": "PG",
 * "season": 1,
 * "spotlight_poster":
   "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "slug": "my-channel",
 * "title": "My Cool Channel",
 * "trailer": {
    * "video_id": "5ed7e4b6b32ab5755a17a932",
    * "url":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
   
   },
 * "video": "videoObj[0]",
 * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET A CHANNEL BY CATEGORY.

get/channels/{countryCode}/{category_slug}/{channel_slug}
https://api.myspotlight.tv/channels/{countryCode}/{category_slug}/{channel_slug}

Get a particular channel within a particular category.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

category_slug
required
string

Slug of category whose channels you wish to retrieve.

channel_slug
required
string

Slug of the channel you wish to retrieve.

QUERY PARAMETERS

platform
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

No category with that slug could be found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59c724ef98e82b310e85fd4c",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
 * "childchannels": [
    * "channelObject1",
    * "channelObject2"
   
   ],
 * "company": "subdomain",
 * "country": "Canada",
 * "description": "This is a great show!",
 * "directors": [
    * "Director A"
   
   ],
 * "genres": [
    * "Action",
    * "Comedy"
   
   ],
 * "hasYoutube": false,
 * "in_watchlist": false,
 * "language": "English",
 * "or_release_date": "2020-01-01",
 * "path": "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
 * "playlist": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "playlist_id": "59c7210b97f815b52ea068cf",
 * "playlist_type": "manual",
 * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "programming_type": "Series",
 * "rating": "PG",
 * "season": 1,
 * "spotlight_poster":
   "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "slug": "my-channel",
 * "title": "My Cool Channel",
 * "trailer": {
    * "video_id": "5ed7e4b6b32ab5755a17a932",
    * "url":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
   
   },
 * "video": "videoObj[0]",
 * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET A CHILD CHANNEL.

get/channels/{countryCode}/{category_slug}/{channel_slug}/{child_slug}
https://api.myspotlight.tv/channels/{countryCode}/{category_slug}/{channel_slug}/{child_slug}

Get channel data for a particular parent channel's child channel within a
particular category.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

category_slug
required
string

Slug of the parent channel's category.

channel_slug
required
string

Parent channel slug of the child channel you wish to retrieve.

child_slug
required
string

Slug of the child channel you wish to retrieve.

QUERY PARAMETERS

platform
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

No category with that slug could be found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59c724ef98e82b310e85fd4c",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
 * "childchannels": [
    * "channelObject1",
    * "channelObject2"
   
   ],
 * "company": "subdomain",
 * "country": "Canada",
 * "description": "This is a great show!",
 * "directors": [
    * "Director A"
   
   ],
 * "genres": [
    * "Action",
    * "Comedy"
   
   ],
 * "hasYoutube": false,
 * "in_watchlist": false,
 * "language": "English",
 * "or_release_date": "2020-01-01",
 * "path": "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
 * "playlist": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "playlist_id": "59c7210b97f815b52ea068cf",
 * "playlist_type": "manual",
 * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "programming_type": "Series",
 * "rating": "PG",
 * "season": 1,
 * "spotlight_poster":
   "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "slug": "my-channel",
 * "title": "My Cool Channel",
 * "trailer": {
    * "video_id": "5ed7e4b6b32ab5755a17a932",
    * "url":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
   
   },
 * "video": "videoObj[0]",
 * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET A CHANNEL WITHOUT CATEGORY.

get/channel/{countryCode}/{channel_slug}
https://api.myspotlight.tv/channel/{countryCode}/{channel_slug}

Get channel data for a particular channel without specifying it's category.

This endpoint accepts an optional x-client-token. If a user-identifying token is
passed, the endpoint will return (at the root of the response) the user's
continue-watching object for this channel (if one exists).

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

channel_slug
required
string

Slug of the channel you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

No channel with that slug exists.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "categories": [
          * {
             * "_id": "59555d78ae075a721ddac670",
             * "company_id": "592709ff97f81578165aa389",
             * "display_type": "default",
             * "enabled": true,
             * "homepage": true,
             * "image": {
                * "height": 250,
                * "width": 480,
                * "poster":
                  "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
                * "spotlight_poster":
                  "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
                * "videos_thumb":
                  "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
               
               },
             * "menu": true,
             * "name": "Featured Content",
             * "slug": "featured",
             * "weight": 0,
             * "platforms": [
                * {
                   * "android": "true",
                   * "ios": "false",
                   * "roku": "true"
                  
                  }
               
               ],
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "path": "http://api.myspotlight.tv/categories/US/featured",
             * "channels": "http://api.myspotlight.tv/channels/US/featured"
            
            }
         
         ],
       * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
       * "childchannels": [
          * "channelObject1",
          * "channelObject2"
         
         ],
       * "company": "subdomain",
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "hasYoutube": false,
       * "in_watchlist": false,
       * "language": "English",
       * "or_release_date": "2020-01-01",
       * "path":
         "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
       * "playlist": [
          * {
             * "_id": "5452484e97f8154f0c092f3ec",
             * "ads": {
                * "pre": "yes",
                * "mid": "yes",
                * "post": "no",
                * "over": "no",
                * "pre_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "post_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "offsets": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  }
               
               },
             * "ad_tag": {
                * "pre": "https://adserver.com/custom_ad_tag?param=true",
                * "mid": "string",
                * "post": "string",
                * "customTagPre": true,
                * "customTagMid": false,
                * "customTagPost": false
               
               },
             * "access": "public",
             * "actors": [
                * "Actor A",
                * "Actor B"
               
               ],
             * "category": "Web-series",
             * "chromecast_vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
             * "company": {
                * "_id": "59c724ef98e82b310e85fd4c",
                * "name": "coolmovies",
                * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
                * "custom_cdn": "https://222222.ssl.hwcdn.net",
                * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
               
               },
             * "company_id": "5452484e97f8154f0c092f3ec",
             * "country": "Canada",
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "description": "A large and lovable rabbit deals with three tiny
               bullies, led by a flying squirrel,\nwho are determined to squelch
               his happiness.\n",
             * "directors": [
                * "Director A",
                * "Director B"
               
               ],
             * "duration": 1072,
             * "episode": 1,
             * "geoblock": "ALL",
             * "genres": [
                * "2000s animation"
               
               ],
             * "geocheck": true,
             * "is_teaser": false,
             * "language": "English",
             * "paths": { },
             * "paywall": { },
             * "poster":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "product_id": 11470,
             * "rating": "PG",
             * "roku_bif_files": {
                * "sd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
                * "hd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
                * "fhd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
               
               },
             * "season": 1,
             * "seriestitle": "Open Source Films",
             * "server_side_ads": true,
             * "slug": "big-buck-bunny",
             * "socialImage":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "status": "Uploaded",
             * "thumb":
               "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
             * "thumbs": [
                * "5ed871383d9aea7cf65b2184",
                * "5ed7f8c22f40d94404789de7",
                * "5ed7f8c12f40d94404789de6"
               
               ],
             * "title": "Big Buck Bunny",
             * "video_m3u8":
               "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
             * "vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
             * "writers": [
                * "Writer A",
                * "Writer B"
               
               ],
             * "year": 2020
            
            }
         
         ],
       * "playlist_id": "59c7210b97f815b52ea068cf",
       * "playlist_type": "manual",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "trailer": {
          * "video_id": "5ed7e4b6b32ab5755a17a932",
          * "url":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
         
         },
       * "video": "videoObj[0]",
       * "videos_thumb":
         "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "continue_watching": {
    * "_id": "5e41f4756b4c5d439f3ebca2",
    * "company_id": "5e41f4756b4c5d439f3ebca2",
    * "user_id": "5f21ab918f4a8e0fbc29ac86",
    * "title": "This Weeks Episode",
    * "thumb": "5e42d4e6b70e4f7f038b4862",
    * "duration": 5419,
    * "point": 645,
    * "episode": 1,
    * "updatedAt": "2020-07-29T21:05:10.488Z",
    * "channel": {
       * "_id": "5e42d4e6b70e4f7f038b4861",
       * "programming_type": "series",
       * "season": 1,
       * "slug": "some-cool-channel",
       * "title": "Some Cool Channel",
       * "poster": "https://someimage.com/img",
       * "spotlight_poster": "https://someimage.com/img"
      
      },
    * "parent_channel": {
       * "_id": "5e42d4e6b70e4f7f038b4861",
       * "title": "Some Cool Parent Channel",
       * "slug": "some-cool-parent-channel",
       * "programming_type": "series",
       * "poster": "https://someimage.com/img",
       * "spotlight_poster": "https://someimage.com/img"
      
      }
   
   }

}


GET A CHANNEL WITHOUT CATEGORY.

get/channel/{countryCode}/{channel_slug}/{child_slug}
https://api.myspotlight.tv/channel/{countryCode}/{channel_slug}/{child_slug}

Get channel data for a particular channel without specifying it's category.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

channel_slug
required
string

Slug of the parent channel whose child you wish to retrieve.

child_slug
required
string

Slug of the child channel you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59c724ef98e82b310e85fd4c",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
 * "childchannels": [
    * "channelObject1",
    * "channelObject2"
   
   ],
 * "company": "subdomain",
 * "country": "Canada",
 * "description": "This is a great show!",
 * "directors": [
    * "Director A"
   
   ],
 * "genres": [
    * "Action",
    * "Comedy"
   
   ],
 * "hasYoutube": false,
 * "in_watchlist": false,
 * "language": "English",
 * "or_release_date": "2020-01-01",
 * "path": "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
 * "playlist": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "playlist_id": "59c7210b97f815b52ea068cf",
 * "playlist_type": "manual",
 * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "programming_type": "Series",
 * "rating": "PG",
 * "season": 1,
 * "spotlight_poster":
   "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "slug": "my-channel",
 * "title": "My Cool Channel",
 * "trailer": {
    * "video_id": "5ed7e4b6b32ab5755a17a932",
    * "url":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
   
   },
 * "video": "videoObj[0]",
 * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET CHANNEL BY SPOTLIGHT CHANNEL ID.

get/channel/{countryCode}/id/{channel_id}
https://api.myspotlight.tv/channel/{countryCode}/id/{channel_id}

Get channel data for a particular channel based on that channel's Spotlight
Channel ID.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

channel_id
required
string

Spotlight ID of the channel you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59c724ef98e82b310e85fd4c",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "categories": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "company_id": "592709ff97f81578165aa389",
       * "display_type": "default",
       * "enabled": true,
       * "homepage": true,
       * "image": {
          * "height": 250,
          * "width": 480,
          * "poster":
            "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
          * "videos_thumb":
            "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
         
         },
       * "menu": true,
       * "name": "Featured Content",
       * "slug": "featured",
       * "weight": 0,
       * "platforms": [
          * {
             * "android": "true",
             * "ios": "false",
             * "roku": "true"
            
            }
         
         ],
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "path": "http://api.myspotlight.tv/categories/US/featured",
       * "channels": "http://api.myspotlight.tv/channels/US/featured"
      
      }
   
   ],
 * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
 * "childchannels": [
    * "channelObject1",
    * "channelObject2"
   
   ],
 * "company": "subdomain",
 * "country": "Canada",
 * "description": "This is a great show!",
 * "directors": [
    * "Director A"
   
   ],
 * "genres": [
    * "Action",
    * "Comedy"
   
   ],
 * "hasYoutube": false,
 * "in_watchlist": false,
 * "language": "English",
 * "or_release_date": "2020-01-01",
 * "path": "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
 * "playlist": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ],
 * "playlist_id": "59c7210b97f815b52ea068cf",
 * "playlist_type": "manual",
 * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "programming_type": "Series",
 * "rating": "PG",
 * "season": 1,
 * "spotlight_poster":
   "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
 * "slug": "my-channel",
 * "title": "My Cool Channel",
 * "trailer": {
    * "video_id": "5ed7e4b6b32ab5755a17a932",
    * "url":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
   
   },
 * "video": "videoObj[0]",
 * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


REFRESH A CHANNEL.

post/channels/refresh
https://api.myspotlight.tv/channels/refresh

This call refreshes a channel that contains either the passed Channel ID or an
ID of a video or playlist with the latest channel data from dotstudioPRO. This
route is not tied to a particular company and will update all matching channels
with new data.

The key for your request must be either channel, video, or playlist -
representing the ID of the asset you wish to refresh.

In the response, the updated key will let you know how many channels were
successfully updated as a result of the call. The channels array will contain
all the updated channels with their new data.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

Channel ID/Playlist ID/Video ID

channel
string



RESPONSES

200

Successful operation

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "channel": "5452484e97f8154f0c092f3ec"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "updated": 2,
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "categories": [
          * {
             * "_id": "59555d78ae075a721ddac670",
             * "company_id": "592709ff97f81578165aa389",
             * "display_type": "default",
             * "enabled": true,
             * "homepage": true,
             * "image": {
                * "height": 250,
                * "width": 480,
                * "poster":
                  "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
                * "spotlight_poster":
                  "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
                * "videos_thumb":
                  "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
               
               },
             * "menu": true,
             * "name": "Featured Content",
             * "slug": "featured",
             * "weight": 0,
             * "platforms": [
                * {
                   * "android": "true",
                   * "ios": "false",
                   * "roku": "true"
                  
                  }
               
               ],
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "path": "http://api.myspotlight.tv/categories/US/featured",
             * "channels": "http://api.myspotlight.tv/channels/US/featured"
            
            }
         
         ],
       * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
       * "childchannels": [
          * "channelObject1",
          * "channelObject2"
         
         ],
       * "company": "subdomain",
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "hasYoutube": false,
       * "in_watchlist": false,
       * "language": "English",
       * "or_release_date": "2020-01-01",
       * "path":
         "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
       * "playlist": [
          * {
             * "_id": "5452484e97f8154f0c092f3ec",
             * "ads": {
                * "pre": "yes",
                * "mid": "yes",
                * "post": "no",
                * "over": "no",
                * "pre_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "post_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "offsets": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  }
               
               },
             * "ad_tag": {
                * "pre": "https://adserver.com/custom_ad_tag?param=true",
                * "mid": "string",
                * "post": "string",
                * "customTagPre": true,
                * "customTagMid": false,
                * "customTagPost": false
               
               },
             * "access": "public",
             * "actors": [
                * "Actor A",
                * "Actor B"
               
               ],
             * "category": "Web-series",
             * "chromecast_vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
             * "company": {
                * "_id": "59c724ef98e82b310e85fd4c",
                * "name": "coolmovies",
                * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
                * "custom_cdn": "https://222222.ssl.hwcdn.net",
                * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
               
               },
             * "company_id": "5452484e97f8154f0c092f3ec",
             * "country": "Canada",
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "description": "A large and lovable rabbit deals with three tiny
               bullies, led by a flying squirrel,\nwho are determined to squelch
               his happiness.\n",
             * "directors": [
                * "Director A",
                * "Director B"
               
               ],
             * "duration": 1072,
             * "episode": 1,
             * "geoblock": "ALL",
             * "genres": [
                * "2000s animation"
               
               ],
             * "geocheck": true,
             * "is_teaser": false,
             * "language": "English",
             * "paths": { },
             * "paywall": { },
             * "poster":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "product_id": 11470,
             * "rating": "PG",
             * "roku_bif_files": {
                * "sd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
                * "hd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
                * "fhd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
               
               },
             * "season": 1,
             * "seriestitle": "Open Source Films",
             * "server_side_ads": true,
             * "slug": "big-buck-bunny",
             * "socialImage":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "status": "Uploaded",
             * "thumb":
               "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
             * "thumbs": [
                * "5ed871383d9aea7cf65b2184",
                * "5ed7f8c22f40d94404789de7",
                * "5ed7f8c12f40d94404789de6"
               
               ],
             * "title": "Big Buck Bunny",
             * "video_m3u8":
               "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
             * "vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
             * "writers": [
                * "Writer A",
                * "Writer B"
               
               ],
             * "year": 2020
            
            }
         
         ],
       * "playlist_id": "59c7210b97f815b52ea068cf",
       * "playlist_type": "manual",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "trailer": {
          * "video_id": "5ed7e4b6b32ab5755a17a932",
          * "url":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
         
         },
       * "video": "videoObj[0]",
       * "videos_thumb":
         "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ]

}


REFRESH A COMPANY'S CHANNELS

post/channels/refresh/all
https://api.myspotlight.tv/channels/refresh/all

This call refreshes all of the channels in a company with the latest channel
data from dotstudioPRO.

In the response, the success key will let you know if the process was successful
or not.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true

}


REFRESH CHANNELS IN BULK

post/channels/refresh/bulk
https://api.myspotlight.tv/channels/refresh/bulk

This call refreshes a number of channels based on Channel IDs, Video IDs, or
Playlist IDs with the latest channel data from dotstudioPRO. This route is not
tied to a particular company and will update all matching channels with new
data.

Each value you need to pass for a channel refresh will live within an array
called bulk_data.

> { "bulk_data":[ { "type":"channel", "_id":"13486765156" }, {
> "type":"playlist", "_id":"65786735756" }, { "type":"video", "_id":"3986876565"
> } ] }

The key for your request must be either channel, video, or playlist -
representing the ID of the asset whose appropriate channel you wish to refresh.

In the response, the items_received key will let you know how many items were
received for the refresh call, but does not indicate the number of channels that
will be refreshed. This route does not return the channels that will be
refreshed or any data besides the initial item count and success message.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

Array of objects with types and _ids

bulk_data
Array of any



RESPONSES

200

Successful operation

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "bulk_data": [
    * {
       * "type": "channel",
       * "_id": "13486765156"
      
      },
    * {
       * "type": "playlist",
       * "_id": "65786735756"
      
      },
    * {
       * "type": "video",
       * "_id": "3986876565"
      
      }
   
   ]

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "message": "Received 13 items to refresh.",
 * "items_received": 13

}


COMPANY

Retrieve data for all assets of a certain type from dotstudioPRO. Please note
that response times for these endpoints may be high depending on how much
content has been added to this client.


GET ALL VIDEOS.

get/company/videos
https://api.myspotlight.tv/company/videos

Get all videos uploaded to this company's dashboard.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

page
string
Default: 1

Which page to request (useful for pagination).

limit
string
Default: 50

How many videos to return (useful for pagination).

mp4
number
Default: 0

Whether or not the MP4 URL of the video should be included in the response (send
1 for yes, 0 is the default for no)


RESPONSES

200

Successful operation.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "pages": {
    * "total": 20,
    * "limit": 10,
    * "page": 1,
    * "pages": 2
   
   },
 * "videos": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "ads": {
          * "pre": "yes",
          * "mid": "yes",
          * "post": "no",
          * "over": "no",
          * "pre_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "post_offset": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            },
          * "offsets": {
             * "nonlinear": [
                * 0.001
               
               ],
             * "linear": [
                * 0.001
               
               ]
            
            }
         
         },
       * "ad_tag": {
          * "pre": "https://adserver.com/custom_ad_tag?param=true",
          * "mid": "string",
          * "post": "string",
          * "customTagPre": true,
          * "customTagMid": false,
          * "customTagPost": false
         
         },
       * "access": "public",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "category": "Web-series",
       * "chromecast_vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
       * "company": {
          * "_id": "59c724ef98e82b310e85fd4c",
          * "name": "coolmovies",
          * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
          * "custom_cdn": "https://222222.ssl.hwcdn.net",
          * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
         
         },
       * "company_id": "5452484e97f8154f0c092f3ec",
       * "country": "Canada",
       * "custom_fields": [
          * {
             * "field_title": "custom_field_1",
             * "field_value": "custom_value_1"
            
            },
          * {
             * "field_title": "custom_field_2",
             * "field_value": "custom_value_2"
            
            }
         
         ],
       * "description": "A large and lovable rabbit deals with three tiny
         bullies, led by a flying squirrel,\nwho are determined to squelch his
         happiness.\n",
       * "directors": [
          * "Director A",
          * "Director B"
         
         ],
       * "duration": 1072,
       * "episode": 1,
       * "geoblock": "ALL",
       * "genres": [
          * "2000s animation"
         
         ],
       * "geocheck": true,
       * "is_teaser": false,
       * "language": "English",
       * "paths": { },
       * "paywall": { },
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "product_id": 11470,
       * "rating": "PG",
       * "roku_bif_files": {
          * "sd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
          * "hd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
          * "fhd":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
         
         },
       * "season": 1,
       * "seriestitle": "Open Source Films",
       * "server_side_ads": true,
       * "slug": "big-buck-bunny",
       * "socialImage":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "status": "Uploaded",
       * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
       * "thumbs": [
          * "5ed871383d9aea7cf65b2184",
          * "5ed7f8c22f40d94404789de7",
          * "5ed7f8c12f40d94404789de6"
         
         ],
       * "title": "Big Buck Bunny",
       * "video_m3u8":
         "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
       * "vmap":
         "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ]

}


GET ALL AVAILABLE CHANNELS.

get/company/available/channels
https://api.myspotlight.tv/company/available/channels

Returns all the channels this company has access to, including syndicated
content from other companies.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

page
string
Default: 1

Which page to request (useful for pagination).

limit
string
Default: 50

How many videos to return (useful for pagination).


RESPONSES

200

Successful operation.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "pages": {
    * "total": 20,
    * "limit": 5,
    * "page": 1,
    * "pages": 4
   
   },
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "categories": [
          * {
             * "_id": "59555d78ae075a721ddac670",
             * "company_id": "592709ff97f81578165aa389",
             * "display_type": "default",
             * "enabled": true,
             * "homepage": true,
             * "image": {
                * "height": 250,
                * "width": 480,
                * "poster":
                  "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
                * "spotlight_poster":
                  "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
                * "videos_thumb":
                  "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
               
               },
             * "menu": true,
             * "name": "Featured Content",
             * "slug": "featured",
             * "weight": 0,
             * "platforms": [
                * {
                   * "android": "true",
                   * "ios": "false",
                   * "roku": "true"
                  
                  }
               
               ],
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "path": "http://api.myspotlight.tv/categories/US/featured",
             * "channels": "http://api.myspotlight.tv/channels/US/featured"
            
            }
         
         ],
       * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
       * "childchannels": [
          * "channelObject1",
          * "channelObject2"
         
         ],
       * "company": "subdomain",
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "hasYoutube": false,
       * "in_watchlist": false,
       * "language": "English",
       * "or_release_date": "2020-01-01",
       * "path":
         "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
       * "playlist": [
          * {
             * "_id": "5452484e97f8154f0c092f3ec",
             * "ads": {
                * "pre": "yes",
                * "mid": "yes",
                * "post": "no",
                * "over": "no",
                * "pre_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "post_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "offsets": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  }
               
               },
             * "ad_tag": {
                * "pre": "https://adserver.com/custom_ad_tag?param=true",
                * "mid": "string",
                * "post": "string",
                * "customTagPre": true,
                * "customTagMid": false,
                * "customTagPost": false
               
               },
             * "access": "public",
             * "actors": [
                * "Actor A",
                * "Actor B"
               
               ],
             * "category": "Web-series",
             * "chromecast_vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
             * "company": {
                * "_id": "59c724ef98e82b310e85fd4c",
                * "name": "coolmovies",
                * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
                * "custom_cdn": "https://222222.ssl.hwcdn.net",
                * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
               
               },
             * "company_id": "5452484e97f8154f0c092f3ec",
             * "country": "Canada",
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "description": "A large and lovable rabbit deals with three tiny
               bullies, led by a flying squirrel,\nwho are determined to squelch
               his happiness.\n",
             * "directors": [
                * "Director A",
                * "Director B"
               
               ],
             * "duration": 1072,
             * "episode": 1,
             * "geoblock": "ALL",
             * "genres": [
                * "2000s animation"
               
               ],
             * "geocheck": true,
             * "is_teaser": false,
             * "language": "English",
             * "paths": { },
             * "paywall": { },
             * "poster":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "product_id": 11470,
             * "rating": "PG",
             * "roku_bif_files": {
                * "sd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
                * "hd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
                * "fhd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
               
               },
             * "season": 1,
             * "seriestitle": "Open Source Films",
             * "server_side_ads": true,
             * "slug": "big-buck-bunny",
             * "socialImage":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "status": "Uploaded",
             * "thumb":
               "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
             * "thumbs": [
                * "5ed871383d9aea7cf65b2184",
                * "5ed7f8c22f40d94404789de7",
                * "5ed7f8c12f40d94404789de6"
               
               ],
             * "title": "Big Buck Bunny",
             * "video_m3u8":
               "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
             * "vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
             * "writers": [
                * "Writer A",
                * "Writer B"
               
               ],
             * "year": 2020
            
            }
         
         ],
       * "playlist_id": "59c7210b97f815b52ea068cf",
       * "playlist_type": "manual",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "trailer": {
          * "video_id": "5ed7e4b6b32ab5755a17a932",
          * "url":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
         
         },
       * "video": "videoObj[0]",
       * "videos_thumb":
         "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ]

}


GET ALL AVAILABLE GENRES.

get/company/available/genres
https://api.myspotlight.tv/company/available/genres

Returns a list of genres currently assigned to any published channel.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "genres": {
    * "company_genres": [
       * "Action",
       * "Comedy",
       * "Drama",
       * "Food"
      
      ],
    * "movies_genres": [
       * "Action",
       * "Comedy"
      
      ],
    * "series_genres": [
       * "Drama"
      
      ],
    * "live_genres": [
       * "Food"
      
      ]
   
   }

}


GET ALL SUBSCRIBED TO CHANNELS.

get/company/available/subscription/channels
https://api.myspotlight.tv/company/available/subscription/channels

Returns all the channels this company has subscribed to. Does not return
company's own channels.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "pages": {
    * "total": 20,
    * "limit": 5,
    * "page": 1,
    * "pages": 4
   
   },
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "categories": [
          * {
             * "_id": "59555d78ae075a721ddac670",
             * "company_id": "592709ff97f81578165aa389",
             * "display_type": "default",
             * "enabled": true,
             * "homepage": true,
             * "image": {
                * "height": 250,
                * "width": 480,
                * "poster":
                  "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
                * "spotlight_poster":
                  "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
                * "videos_thumb":
                  "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
               
               },
             * "menu": true,
             * "name": "Featured Content",
             * "slug": "featured",
             * "weight": 0,
             * "platforms": [
                * {
                   * "android": "true",
                   * "ios": "false",
                   * "roku": "true"
                  
                  }
               
               ],
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "path": "http://api.myspotlight.tv/categories/US/featured",
             * "channels": "http://api.myspotlight.tv/channels/US/featured"
            
            }
         
         ],
       * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
       * "childchannels": [
          * "channelObject1",
          * "channelObject2"
         
         ],
       * "company": "subdomain",
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "hasYoutube": false,
       * "in_watchlist": false,
       * "language": "English",
       * "or_release_date": "2020-01-01",
       * "path":
         "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
       * "playlist": [
          * {
             * "_id": "5452484e97f8154f0c092f3ec",
             * "ads": {
                * "pre": "yes",
                * "mid": "yes",
                * "post": "no",
                * "over": "no",
                * "pre_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "post_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "offsets": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  }
               
               },
             * "ad_tag": {
                * "pre": "https://adserver.com/custom_ad_tag?param=true",
                * "mid": "string",
                * "post": "string",
                * "customTagPre": true,
                * "customTagMid": false,
                * "customTagPost": false
               
               },
             * "access": "public",
             * "actors": [
                * "Actor A",
                * "Actor B"
               
               ],
             * "category": "Web-series",
             * "chromecast_vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
             * "company": {
                * "_id": "59c724ef98e82b310e85fd4c",
                * "name": "coolmovies",
                * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
                * "custom_cdn": "https://222222.ssl.hwcdn.net",
                * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
               
               },
             * "company_id": "5452484e97f8154f0c092f3ec",
             * "country": "Canada",
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "description": "A large and lovable rabbit deals with three tiny
               bullies, led by a flying squirrel,\nwho are determined to squelch
               his happiness.\n",
             * "directors": [
                * "Director A",
                * "Director B"
               
               ],
             * "duration": 1072,
             * "episode": 1,
             * "geoblock": "ALL",
             * "genres": [
                * "2000s animation"
               
               ],
             * "geocheck": true,
             * "is_teaser": false,
             * "language": "English",
             * "paths": { },
             * "paywall": { },
             * "poster":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "product_id": 11470,
             * "rating": "PG",
             * "roku_bif_files": {
                * "sd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
                * "hd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
                * "fhd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
               
               },
             * "season": 1,
             * "seriestitle": "Open Source Films",
             * "server_side_ads": true,
             * "slug": "big-buck-bunny",
             * "socialImage":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "status": "Uploaded",
             * "thumb":
               "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
             * "thumbs": [
                * "5ed871383d9aea7cf65b2184",
                * "5ed7f8c22f40d94404789de7",
                * "5ed7f8c12f40d94404789de6"
               
               ],
             * "title": "Big Buck Bunny",
             * "video_m3u8":
               "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
             * "vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
             * "writers": [
                * "Writer A",
                * "Writer B"
               
               ],
             * "year": 2020
            
            }
         
         ],
       * "playlist_id": "59c7210b97f815b52ea068cf",
       * "playlist_type": "manual",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "trailer": {
          * "video_id": "5ed7e4b6b32ab5755a17a932",
          * "url":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
         
         },
       * "video": "videoObj[0]",
       * "videos_thumb":
         "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ]

}


UNSUBSCRIBE FROM CHANNEL.

post/company/unsubscribe/{channel_id}
https://api.myspotlight.tv/company/unsubscribe/{channel_id}

Unsubscribes a company from a syndicated channel.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

channel_id
required
string

ID of the channel you wish to unsubscribe from.


RESPONSES

200

Successful operation.

403

Missing or invalid API access token.




DRM

DRM-related functionality. Note that there are two different types of sessions:
Stream Sessions, and Login Sessions.

Stream Sessions are used for concurrent stream checks from a particlar platform.
If a location has too many people streaming (based on the company's settings and
the user's IP address), the platform will stop a user from watching their video
to tell them the limit has been reached.

Login Sessions are stored within the client token and are used by our API to
determine how many platforms a user is logged into. Once a user has hit the
session limit, the oldest session will be invalidated and a new session will be
created for this device; this will cause the device that has an invalidated
session token to re-authenticate to get a new session value. If a session is
invalid, a user will not be able to do anything else with their client token;
they will need to login again. Each type of response includes a relevant header
value to check that will differentiate this error from any error the route might
normally throw.

The API will respond with the following for any disallowed routes when using a
"clear sessions only" client token:

 * Response Code: 409
 * Header: x-clear-sessions-only: 1
 * Body:
   
   {
   success: false,
   message: "This token can only be used for clearing sessions for a user."
   }
   

The API will respond with the following for any disallowed routes when using a
"must reauthenticate" client token:

 * Response Code: 401
 * Header: x-must-reauthenticate: 1
 * Body:
   
   {
   success: false,
   message: "This session has expired or is invalid. Please log in again."
   }
   


GET A STREAM SESSION ID

get/drm/stream
https://api.myspotlight.tv/drm/stream

This endpoint returns a stream session ID for use with the Concurrent Stream
Limit functionality within the dotstudioPRO Platform. Note that the stream
session ID is not the same thing as the login session ID, which is used with the
/drm/sessions/* APIs.

AUTHORIZATIONS:

api_key

HEADER PARAMETERS

x-client-token
string

The user-identifying client token.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

The company could not be found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "stream_session_id": "com_companyid_someuuid"

}


REGISTER CONCURRENT STREAM

get/drm/heartbeat
https://api.myspotlight.tv/drm/heartbeat

This endpoint checks a stream session id (or device UID) to determine if a user
has the right to stream based on the number of concurrent streams for their
location (ip address based). This is determined by taking the number of
concurrent streams and checking them against the company's concurrent stream
limit setting. The stream session id is associated with an ip address and each
consecutive heartbeat refreshes the expiration time of that stream id for that
ip address.

Note that either stream_session_id or uid needs to be passed to this endpoint.
If neither is passed, the call will fail.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

stream_session_id
string

The stream session id received from the /drm/stream API

uid
string

The device UID string. This can replace the stream_session_id value.

HEADER PARAMETERS

x-client-token
string

The user-identifying client token.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

409

Concurrent heartbeat limit reached


RESPONSE SAMPLES

 * 200
 * 409

Content type
application/json
Copy
{
 * "success": true,
 * "current_devices": 1

}



DESTROY STREAM SESSION

delete/drm/stream/clear
https://api.myspotlight.tv/drm/stream/clear

This endpoint destroys an active stream session by ID, allowing the application
developer to register a new one.

Note that either stream_session_id or uid needs to be passed to this endpoint.
If neither is passed, the call will fail.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

The stream session ID received from the /drm/stream API

stream_session_id
string

The stream session ID


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "stream_session_id": "com_companyid_someuuid"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "current_devices": 1

}


DESTROY A USER'S LOGIN SESSION

delete/drm/sessions/logout
https://api.myspotlight.tv/drm/sessions/logout

This endpoint is for platforms to destroy a user's login session when they log
out of the device. This is meant to ensure we don't have any "dead" sessions
from a user logging out.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

400

Invalid client token passed.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "session_cleared": true,
 * "message": "No session value present in token."

}


DESTROY EVERY LOGIN SESSION FOR A USER

delete/drm/sessions/clear
https://api.myspotlight.tv/drm/sessions/clear

This endpoint is for platforms to destroy all of the login sessions a user has.
This is meant to allow a user to log out of all of their devices in the instance
where they have reached the session limit so they can log into a new device.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

new_token
boolean

A parameter to request a new token after a session is cleared. This will return
a new client token in the response body if passed as true.


RESPONSES

200

Successful operation

400

Invalid client token passed.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "sessions_cleared": true,
 * "token": "abcdefg"

}


LIVE

Obtain data for "Live Feed" channel types and linear playlist that can be used
to create a single HLS stream. This data can be used to create a VOD to live
workflow.


GET LIVE CHANNELS.

get/live/channels/{countryCode}
https://api.myspotlight.tv/live/channels/{countryCode}

Obtain an array of all "Live Feed" type channels in dotstudioPRO, including the
scheduled start time for live stream scheduling.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "categories": [
          * {
             * "_id": "59555d78ae075a721ddac670",
             * "company_id": "592709ff97f81578165aa389",
             * "display_type": "default",
             * "enabled": true,
             * "homepage": true,
             * "image": {
                * "height": 250,
                * "width": 480,
                * "poster":
                  "https://images.dotstudiopro.com/5a20726598f8151741b582ad",
                * "spotlight_poster":
                  "https://images.dotstudiopro.com/5a20725f97f8156c1c721d55",
                * "videos_thumb":
                  "https://images.dotstudiopro.com/5a331ff798f8151d669bc18f"
               
               },
             * "menu": true,
             * "name": "Featured Content",
             * "slug": "featured",
             * "weight": 0,
             * "platforms": [
                * {
                   * "android": "true",
                   * "ios": "false",
                   * "roku": "true"
                  
                  }
               
               ],
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "path": "http://api.myspotlight.tv/categories/US/featured",
             * "channels": "http://api.myspotlight.tv/channels/US/featured"
            
            }
         
         ],
       * "channel_url": "https://subdomain.dotstudiopro.com/channel/my-channel",
       * "childchannels": [
          * "channelObject1",
          * "channelObject2"
         
         ],
       * "company": "subdomain",
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "hasYoutube": false,
       * "in_watchlist": false,
       * "language": "English",
       * "or_release_date": "2020-01-01",
       * "path":
         "https://api.myspotlight.tv/channels/US/category_slug/channel_slug",
       * "playlist": [
          * {
             * "_id": "5452484e97f8154f0c092f3ec",
             * "ads": {
                * "pre": "yes",
                * "mid": "yes",
                * "post": "no",
                * "over": "no",
                * "pre_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "post_offset": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  },
                * "offsets": {
                   * "nonlinear": [
                      * 0.001
                     
                     ],
                   * "linear": [
                      * 0.001
                     
                     ]
                  
                  }
               
               },
             * "ad_tag": {
                * "pre": "https://adserver.com/custom_ad_tag?param=true",
                * "mid": "string",
                * "post": "string",
                * "customTagPre": true,
                * "customTagMid": false,
                * "customTagPost": false
               
               },
             * "access": "public",
             * "actors": [
                * "Actor A",
                * "Actor B"
               
               ],
             * "category": "Web-series",
             * "chromecast_vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
             * "company": {
                * "_id": "59c724ef98e82b310e85fd4c",
                * "name": "coolmovies",
                * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
                * "custom_cdn": "https://222222.ssl.hwcdn.net",
                * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
               
               },
             * "company_id": "5452484e97f8154f0c092f3ec",
             * "country": "Canada",
             * "custom_fields": [
                * {
                   * "field_title": "custom_field_1",
                   * "field_value": "custom_value_1"
                  
                  },
                * {
                   * "field_title": "custom_field_2",
                   * "field_value": "custom_value_2"
                  
                  }
               
               ],
             * "description": "A large and lovable rabbit deals with three tiny
               bullies, led by a flying squirrel,\nwho are determined to squelch
               his happiness.\n",
             * "directors": [
                * "Director A",
                * "Director B"
               
               ],
             * "duration": 1072,
             * "episode": 1,
             * "geoblock": "ALL",
             * "genres": [
                * "2000s animation"
               
               ],
             * "geocheck": true,
             * "is_teaser": false,
             * "language": "English",
             * "paths": { },
             * "paywall": { },
             * "poster":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "product_id": 11470,
             * "rating": "PG",
             * "roku_bif_files": {
                * "sd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
                * "hd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
                * "fhd":
                  "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
               
               },
             * "season": 1,
             * "seriestitle": "Open Source Films",
             * "server_side_ads": true,
             * "slug": "big-buck-bunny",
             * "socialImage":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "status": "Uploaded",
             * "thumb":
               "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
             * "thumbs": [
                * "5ed871383d9aea7cf65b2184",
                * "5ed7f8c22f40d94404789de7",
                * "5ed7f8c12f40d94404789de6"
               
               ],
             * "title": "Big Buck Bunny",
             * "video_m3u8":
               "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
             * "vmap":
               "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
             * "writers": [
                * "Writer A",
                * "Writer B"
               
               ],
             * "year": 2020
            
            }
         
         ],
       * "playlist_id": "59c7210b97f815b52ea068cf",
       * "playlist_type": "manual",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "trailer": {
          * "video_id": "5ed7e4b6b32ab5755a17a932",
          * "url":
            "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8"
         
         },
       * "video": "videoObj[0]",
       * "videos_thumb":
         "https://images.dotstudiopro.com/59c84de297f815e8473807a2",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "year": 2020
      
      }
   
   ]

}


GET A LIVE CHANNEL.

get/live/channels/{countryCode}/{slug}
https://api.myspotlight.tv/live/channels/{countryCode}/{slug}

This endpoint returns a single "Live Feed" channel and includes direct links to
the media for all the contents in the playlist.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

slug
required
string

Slug of the channel whose playlist you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channel": {
    * "_id": "string",
    * "actors": [
       * "Actor A",
       * "Actor B"
      
      ],
    * "directors": [
       * "Director A",
       * "Director B"
      
      ],
    * "genres": [
       * "Genre A"
      
      ],
    * "playlist": [
       * "videoObj1",
       * "videoObj2",
       * "videoObj3"
      
      ],
    * "writers": [
       * "Writer A",
       * "Writer B"
      
      ],
    * "videos_thumb": "https://images.dotstudiopro.com/59c84de297f815e8473807a2"
   
   }

}


GET COMPANY EPG.

get/live/epg/{countryCode}
https://api.myspotlight.tv/live/epg/{countryCode}

Get an Electronic Programming guide for your company. The EPG will be
constructuted from any XMLTV's provided with live linear channels in the CMS.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

QUERY PARAMETERS

platform
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

genre
string

A genre such as comedy, action, etc to query for. The list of available genres
can be acquired from https://api.myspotlight.tv/#operation/getCompanyChannels.

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.

dma
number
Example: dma=501,679,881

A comma-separated list of DMAs such as 501, 881, etc to include from the return.

market
string
Example: market=gaAtlanta,azPhoenix

A comma-separated list of SGAs such as gaAtlanta, azPhoenix, etc to include from
the return.

start_time
string
Default: "now"
Example: start_time=2020-07-29T21:05:10.488Z

Starting timestamp for the window in which programs are searched. Must be
greater or equal than now.

end_time
string
Default: "start_time + 1 day"
Example: end_time=2020-07-30T21:05:10.488Z

Ending timestamp for the window in which programs are searched. Must be greater
than start_time.

from
number
Default: 0

Index at which to begin returning results (useful for pagination).

size
number
Default: 1000

How many channels to return in the results (useful for pagination).

program_size
number
Default: 3
Example: program_size=5, 100, -1 (all)

Max number of programs to return per channel.

detail
string
Example: detail=lean

flag to return more or less details in each program object.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "_id": "5452484e97f8154f0c092f3ec",
       * "name": "NBC",
       * "slug": "nbc",
       * "channel_number": 1,
       * "description": "Catch all the cool sports on NBC Live today!",
       * "logo": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "spotlight_poster":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "wallpaper":
         "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "language": "en",
       * "order_index": 1,
       * "category": "Web-series",
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "rating": "PG",
       * "year": 2020,
       * "video_id": "5f2431e3d1fbcb05b4129192",
       * "program": [
          * {
             * "program_title": "NFL Highlights last week",
             * "program_language": "en",
             * "program_description": "Catch all of last weeks great NFL
               highlights! Sports are awesome.",
             * "episode_title": "string",
             * "duration": 3600,
             * "starts_at": 1598986416,
             * "ends_at": 1598990016,
             * "image":
               "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
             * "episode": 1,
             * "season": 1,
             * "part": "1/2"
            
            }
         
         ]
      
      }
   
   ]

}


GET EPG PROGRAM BY PROGRAM ID.

get/live/program/{program_id}
https://api.myspotlight.tv/live/program/{program_id}

Get a specific program from the Electronic Programming Guide.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

start_time_epoch
string
Default: ""
Example: start_time_epoch=1676300244

Unix timestamp (in seconds) when program began playback.

end_time_epoch
string
Default: ""
Example: end_time_epoch=1676300400

Unix timestamp (in seconds) when program will end.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "program_title": "NFL Highlights last week",
 * "program_language": "en",
 * "program_description": "Catch all of last weeks great NFL highlights! Sports
   are awesome.",
 * "episode_title": "string",
 * "duration": 3600,
 * "starts_at": 1598986416,
 * "ends_at": 1598990016,
 * "image": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "episode": 1,
 * "season": 1,
 * "part": "1/2"

}


PAGE

Retrieve pages, posts, and story blocks from dotstudioPRO


GET HOME PAGE DATA.

get/homepage/{countryCode}/{platform}
https://api.myspotlight.tv/homepage/{countryCode}/{platform}

This endpoint returns an array of objects which can be used to construct a
platform-specific home page. Each array item contains an object with a category
which has both the "Enabled" and "Enable on Homepage" flags set to true, as well
as an array of channel data.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

QUERY PARAMETERS

genre
string

A genre to query for. The list of available genres can be acquired from
https://api.myspotlight.tv/#operation/getCompanyChannels. Because this parameter
is in the query, the value must be URL encoded (eg Science Fiction should be
passed as Science%20Fiction)

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.

max_ratings
string
Example: max_ratings=PG-13,R

A comma-separated value with ratings such as PG, R, etc to send to iris.tv as
the maximum rating for results returned from their system..

asset_dates
boolean

A flag to return asset dates (created_at, updated_at) with video assets.


RESPONSES

200

Successful operation

400

Invalid platform parameter passed

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "homepage": [
    * {
       * "category": {
          * "_id": "string",
          * "name": "Featuired",
          * "slug": "featured",
          * "display_type": "default"
         
         },
       * "channels": [
          * {
             * "_id": "string",
             * "title": "Big Buck Bunny",
             * "description": "Big Buck Bunny",
             * "poster": "Big Buck Bunny",
             * "channel_logo": "string",
             * "spotlight_poster": "string",
             * "slug": "big-buck-bunny",
             * "is_product": true,
             * "channel_type": "parent",
             * "programming_type": "Series"
            
            }
         
         ]
      
      }
   
   ]

}


GET MOVIES PAGE DATA.

get/movies/{countryCode}/{platform}
https://api.myspotlight.tv/movies/{countryCode}/{platform}

This endpoint returns an array of objects which can be used to construct a
platform-specific movies page. Each array item contains an object with a
category which has both the "Enabled" and "Enable on Movies Page" flags set to
true, as well as an array of channel data.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

QUERY PARAMETERS

genre
string

A genre to query for. The list of available genres can be acquired from
https://api.myspotlight.tv/#operation/getCompanyChannels. Because this parameter
is in the query, the value must be URL encoded (eg Science Fiction should be
passed as Science%20Fiction)

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.

max_ratings
string
Example: max_ratings=PG-13,R

A comma-separated value with ratings such as PG, R, etc to send to iris.tv as
the maximum rating for results returned from their system..

asset_dates
boolean

A flag to return asset dates (created_at, updated_at) with video assets.


RESPONSES

200

Successful operation

400

Invalid platform parameter passed

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "homepage": [
    * {
       * "category": {
          * "_id": "string",
          * "name": "Featuired",
          * "slug": "featured",
          * "display_type": "default"
         
         },
       * "channels": [
          * {
             * "_id": "string",
             * "title": "Big Buck Bunny",
             * "description": "Big Buck Bunny",
             * "poster": "Big Buck Bunny",
             * "channel_logo": "string",
             * "spotlight_poster": "string",
             * "slug": "big-buck-bunny",
             * "is_product": true,
             * "channel_type": "parent",
             * "programming_type": "Series"
            
            }
         
         ]
      
      }
   
   ]

}


GET SERIES PAGE DATA.

get/series/{countryCode}/{platform}
https://api.myspotlight.tv/series/{countryCode}/{platform}

This endpoint returns an array of objects which can be used to construct a
platform-specific series page. Each array item contains an object with a
category which has both the "Enabled" and "Enable on Series Page" flags set to
true, as well as an array of channel data.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

countryCode
required
string

2-letter ISO Alpha2 formatted country code of the end-user.

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

QUERY PARAMETERS

genre
string

A genre to query for. The list of available genres can be acquired from
https://api.myspotlight.tv/#operation/getCompanyChannels. Because this parameter
is in the query, the value must be URL encoded (eg Science Fiction should be
passed as Science%20Fiction)

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.

max_ratings
string
Example: max_ratings=PG-13,R

A comma-separated value with ratings such as PG, R, etc to send to iris.tv as
the maximum rating for results returned from their system..

asset_dates
boolean

A flag to return asset dates (created_at, updated_at) with video assets.


RESPONSES

200

Successful operation

400

Invalid platform parameter passed

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "homepage": [
    * {
       * "category": {
          * "_id": "string",
          * "name": "Featuired",
          * "slug": "featured",
          * "display_type": "default"
         
         },
       * "channels": [
          * {
             * "_id": "string",
             * "title": "Big Buck Bunny",
             * "description": "Big Buck Bunny",
             * "poster": "Big Buck Bunny",
             * "channel_logo": "string",
             * "spotlight_poster": "string",
             * "slug": "big-buck-bunny",
             * "is_product": true,
             * "channel_type": "parent",
             * "programming_type": "Series"
            
            }
         
         ]
      
      }
   
   ]

}


GET A LIST OF PAGES.

get/pages
https://api.myspotlight.tv/pages

Retrieve an array of all published pages. Passing a platform parameter is
optional - if all your platforms have the same pages this parameter can be
ommitted.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "pages": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "nav_name": "Comedy",
       * "page_name": "Comedy Films",
       * "slug": "comedy",
       * "body": "string",
       * "html": "string",
       * "code": "string",
       * "seo": {
          * "share_image": "string",
          * "description": "string",
          * "keywords": [
             * "keyword"
            
            ]
         
         },
       * "created_at": "2020-01-01T00:00:00.000Z",
       * "updated_at": "2020-01-01T00:00:00.000Z",
       * "gallery_images": {
          * "_id": "59555d78ae075a721ddac670",
          * "name": "string",
          * "active_from": "string",
          * "active_to": "string",
          * "caption": "string",
          * "open_link_in_new_window": true,
          * "aspect_ratio": {
             * "width": 0,
             * "height": 0
            
            },
          * "images": [
             * null
            
            ]
         
         },
       * "platforms": [
          * "android"
         
         ],
       * "story_blocks": [
          * {
             * "_id": "59555d78ae075a721ddac670",
             * "name": "Paragraph at top of page.",
             * "type": "text",
             * "layout": "Full Width",
             * "last_modified": "2020-01-01T00:00:00.000Z",
             * "order": 1,
             * "detail": {
                * "headline": "string",
                * "body": "string",
                * "call_to_action": "Watch now",
                * "link": "string",
                * "image": "string",
                * "video": { },
                * "gallery": {
                   * "_id": "59555d78ae075a721ddac670",
                   * "name": "string",
                   * "active_from": "string",
                   * "active_to": "string",
                   * "caption": "string",
                   * "open_link_in_new_window": true,
                   * "aspect_ratio": {
                      * "width": 0,
                      * "height": 0
                     
                     },
                   * "images": [
                      * null
                     
                     ]
                  
                  },
                * "code_block": "string"
               
               },
             * "advanced_options": {
                * "divider_above": true,
                * "remove_top_padding": true,
                * "open_link_in_new_window": true,
                * "mobile_text_below_media": true,
                * "wrap_gallery_images": true,
                * "gallery_images_per_page": 4
               
               }
            
            }
         
         ]
      
      }
   
   ]

}


GET THE NAVIGATION MENU.

get/pages/navigation
https://api.myspotlight.tv/pages/navigation

Retrieve the navigation title and slug of all published pages. Can be used to
render a navigation bar inside an application. Passing a platform parameter is
optional - if all your platforms have the same pages this parameter can be
ommitted.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "navigation_items": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "nav_name": "Comedy",
       * "page_name": "Comedy Films",
       * "slug": "comedy-films"
      
      }
   
   ]

}


GET A PAGE.

get/pages/{slug}
https://api.myspotlight.tv/pages/{slug}

Retrieve a specific page.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

slug
required
string

Slug of the page you wish to retrieve.


RESPONSES

200

Successful operation

400

Missing or invalid page slug.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "page": {
    * "_id": "59555d78ae075a721ddac670",
    * "nav_name": "Comedy",
    * "page_name": "Comedy Films",
    * "slug": "comedy",
    * "body": "string",
    * "html": "string",
    * "code": "string",
    * "seo": {
       * "share_image": "string",
       * "description": "string",
       * "keywords": [
          * "keyword"
         
         ]
      
      },
    * "created_at": "2020-01-01T00:00:00.000Z",
    * "updated_at": "2020-01-01T00:00:00.000Z",
    * "gallery_images": {
       * "_id": "59555d78ae075a721ddac670",
       * "name": "string",
       * "active_from": "string",
       * "active_to": "string",
       * "caption": "string",
       * "open_link_in_new_window": true,
       * "aspect_ratio": {
          * "width": 0,
          * "height": 0
         
         },
       * "images": [
          * null
         
         ]
      
      },
    * "platforms": [
       * "android"
      
      ],
    * "story_blocks": [
       * {
          * "_id": "59555d78ae075a721ddac670",
          * "name": "Paragraph at top of page.",
          * "type": "text",
          * "layout": "Full Width",
          * "last_modified": "2020-01-01T00:00:00.000Z",
          * "order": 1,
          * "detail": {
             * "headline": "string",
             * "body": "string",
             * "call_to_action": "Watch now",
             * "link": "string",
             * "image": "string",
             * "video": { },
             * "gallery": {
                * "_id": "59555d78ae075a721ddac670",
                * "name": "string",
                * "active_from": "string",
                * "active_to": "string",
                * "caption": "string",
                * "open_link_in_new_window": true,
                * "aspect_ratio": {
                   * "width": 0,
                   * "height": 0
                  
                  },
                * "images": [
                   * null
                  
                  ]
               
               },
             * "code_block": "string"
            
            },
          * "advanced_options": {
             * "divider_above": true,
             * "remove_top_padding": true,
             * "open_link_in_new_window": true,
             * "mobile_text_below_media": true,
             * "wrap_gallery_images": true,
             * "gallery_images_per_page": 4
            
            }
         
         }
      
      ]
   
   }

}


GET A LIST OF POSTS.

get/posts
https://api.myspotlight.tv/posts

Retrieve an array of all published posts. Passing a platform parameter is
optional - if all your platforms have the same pages this parameter can be
ommitted.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "posts": [
    * {
       * "_id": "59555d78ae075a721ddac670",
       * "or_publish_date": "2020-01-01T00:00:00.000Z",
       * "sunset_date": "2020-01-01T00:00:00.000Z",
       * "title": "Hot this week!",
       * "description": "Here are all the images and videos we loved watching
         this week.",
       * "author": "John Doe",
       * "source": {
          * "url": "string",
          * "name": "NBC"
         
         },
       * "tags": [
          * null
         
         ],
       * "type": "regular",
       * "created_at": "2020-01-01T00:00:00.000Z",
       * "updated_at": "2020-01-01T00:00:00.000Z",
       * "slug": "hot-this-week",
       * "video": "61085b6eb69a58531f4c5ea1"
      
      }
   
   ],
 * "pages": {
    * "total": 20,
    * "limit": 10,
    * "page": 1,
    * "pages": 2
   
   }

}


GET A POST.

get/posts/{slug}
https://api.myspotlight.tv/posts/{slug}

Retrieve a specific post.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

slug
required
string

Slug of the post you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

No post with that slug exists.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59555d78ae075a721ddac670",
 * "or_publish_date": "2020-01-01T00:00:00.000Z",
 * "sunset_date": "2020-01-01T00:00:00.000Z",
 * "title": "Hot this week!",
 * "description": "Here are all the images and videos we loved watching this
   week.",
 * "author": "John Doe",
 * "source": {
    * "url": "string",
    * "name": "NBC"
   
   },
 * "tags": [
    * null
   
   ],
 * "type": "regular",
 * "created_at": "2020-01-01T00:00:00.000Z",
 * "updated_at": "2020-01-01T00:00:00.000Z",
 * "slug": "hot-this-week",
 * "video": "61085b6eb69a58531f4c5ea1"

}


GET A STORY BLOCK.

get/pages/blocks/{id}
https://api.myspotlight.tv/pages/blocks/{id}

Retrieve a story block by ID.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

id
required
string

ID of the block you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.

404

No block with that id exists.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "59555d78ae075a721ddac670",
 * "name": "Paragraph at top of page.",
 * "type": "text",
 * "layout": "Full Width",
 * "last_modified": "2020-01-01T00:00:00.000Z",
 * "order": 1,
 * "detail": {
    * "headline": "string",
    * "body": "string",
    * "call_to_action": "Watch now",
    * "link": "string",
    * "image": "string",
    * "video": { },
    * "gallery": {
       * "_id": "59555d78ae075a721ddac670",
       * "name": "string",
       * "active_from": "string",
       * "active_to": "string",
       * "caption": "string",
       * "open_link_in_new_window": true,
       * "aspect_ratio": {
          * "width": 0,
          * "height": 0
         
         },
       * "images": [
          * null
         
         ]
      
      },
    * "code_block": "string"
   
   },
 * "advanced_options": {
    * "divider_above": true,
    * "remove_top_padding": true,
    * "open_link_in_new_window": true,
    * "mobile_text_below_media": true,
    * "wrap_gallery_images": true,
    * "gallery_images_per_page": 4
   
   }

}


PLAYLIST

Retrieve dynamic playlist data from dotstudioPRO


GET VIDEOS BY PLAYLIST ID. DEPRECATED

get/playlist/dynamic/{playlist_id}
https://api.myspotlight.tv/playlist/dynamic/{playlist_id}

Returns an array of videos given a playlist ID.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

playlist_id
required
string

ID of the playlist whose videos you wish to retrieve.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
[
 * "videoObj1",
 * "videoObj2",
 * "videoObj3"

]


ROKU

Retrieve feed for Roku Direct Publisher. For more details please visit
https://github.com/rokudev/feed-specifications


GET A JSON DIRECT PUBLISHER FEED FOR YOUR COMPANY.

get/rokuDirectPublisher
https://api.myspotlight.tv/rokuDirectPublisher

Retrieve feed for Roku Direct Publisher. For more details please visit
https://github.com/rokudev/feed-specifications

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation. JSON schema at
https://github.com/rokudev/feed-specifications

403

Missing or invalid API access token.




SEARCH

Retrieve search results for dotstudioPRO assets.


FIND CHANNELS BY PLATFORM.

get/find/channels/{platform}
https://api.myspotlight.tv/find/channels/{platform}

Obtain an array of any channel matching the search query. The channels returned
are automatically sorted based on relevance. This version of search is based on
relevant hits to the channel's title, people, genre and tags keys.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

QUERY PARAMETERS

q
required
string

Query of your search.

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many channels to return in the search results (useful for pagination).

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return.

dma
number
Example: dma=501,679,881

A comma-separated list of DMAs such as 501, 881, etc to include from the return.

market
string
Example: market=gaAtlanta,azPhoenix

A comma-separated list of SGAs such as gaAtlanta, azPhoenix, etc to include from
the return.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "language": "English",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "markets": [
          * {
             * "sga": {
                * "allowed": [
                   * "gaAtlanta",
                   * "azPhoenix"
                  
                  ],
                * "global": false
               
               },
             * "dma": {
                * "allowed": [
                   * 510
                  
                  ],
                * "global": false
               
               }
            
            }
         
         ],
       * "year": 2020
      
      }
   
   ]

}


FIND PROGRAMS BY PLATFORM AND COUNTRY CODE.

get/find/programs/{countryCode}/{platform}
https://api.myspotlight.tv/find/programs/{countryCode}/{platform}

Obtain an array of any programs matching the search query. The programs returned
are automatically sorted based on relevance. This version of the search is based
on relevant hits to the program's title.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

platform
required
string
Enum: "android" "androidtv" "appletv" "firetv" "ios" "roku" "tizen" "website"
"html5"

The platform creating the request.

countryCode
required
string

2 letter ISO Alpha2 formatted country code of the country user is in.

QUERY PARAMETERS

q
required
string

Query of your search.

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many channels to return in the search results (useful for pagination).

start_time
string
Default: "now"
Example: start_time=2020-07-29T21:05:10.488Z

Starting timestamp for the window in which programs are searched. Must be
greater or equal than now.

end_time
string
Default: "start_time + 1 day"
Example: end_time=2020-07-30T21:05:10.488Z

Ending timestamp for the window in which programs are searched. Must be greater
than start_time.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "programs": [
    * {
       * "program_title": "NFL Highlights last week",
       * "program_language": "en",
       * "program_description": "Catch all of last weeks great NFL highlights!
         Sports are awesome.",
       * "episode_title": "string",
       * "duration": 3600,
       * "starts_at": 1598986416,
       * "ends_at": 1598990016,
       * "image": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
       * "episode": 1,
       * "season": 1,
       * "part": "1/2",
       * "channel": {
          * "_id": "5452484e97f8154f0c092f3ec",
          * "name": "NBC",
          * "slug": "nbc",
          * "description": "Catch all the cool sports on NBC Live today!",
          * "logo": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
          * "poster":
            "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
          * "spotlight_poster":
            "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
          * "wallpaper":
            "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
          * "language": "en",
          * "order_index": 1,
          * "category": "Web-series",
          * "genres": [
             * "Action",
             * "Comedy"
            
            ],
          * "rating": "PG",
          * "year": 2020,
          * "video_id": "5f2431e3d1fbcb05b4129192"
         
         }
      
      }
   
   ]

}


FIND VIDEOS.

get/find/videos
https://api.myspotlight.tv/find/videos

Obtain an array of any videos matching the search query. The videos returned are
automatically sorted based on relevance. This version of search will look for
matches in the following video metadata fields - title, actors, directors,
genre, seriestitle, and writers,

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

Query of your search.

page
number
Default: 1

The page of search results being requested.

size
number
Default: 10

How many videos to return in the search results (useful for pagination).


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "videos": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "title": "My Cool Video",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "score": 5,
       * "slug": "my-video-slug",
       * "thumb": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "wallpaper":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ]
      
      }
   
   ],
 * "pages": {
    * "total": 200,
    * "limit": 20,
    * "page": 1,
    * "pages": 10
   
   }

}


FIND VIDEO TITLES (AUTOCOMPLETE).

get/find/videos/autocomplete
https://api.myspotlight.tv/find/videos/autocomplete

Obtain an array of autocomplete suggestions for a partial video search query.

The response can be used to construct an autocomplete suggester in a front-end
application. The suggestions can also be URL encoded and sent as a query
parameter to the find route to receive search results based on the autocomplete
suggestion.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

Query of your search.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "videos": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "slug": "my-video-slug",
       * "title": "My Cool Video"
      
      }
   
   ]

}


FIND CHANNEL TITLES (AUTOCOMPLETE).

get/find/channels/autocomplete
https://api.myspotlight.tv/find/channels/autocomplete

Obtain an array of autocomplete suggestions for a partial channel search query.

The response can be used to construct an autocomplete suggester in a front-end
application. The suggestions can also be URL encoded and sent as a query
parameter to the find route to receive search results based on the autocomplete
suggestion.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

Query of your search.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "videos": [
    * {
       * "_id": "59c724ef98e82b310e61ca5d",
       * "slug": "my-video-slug",
       * "title": "My Cool Video"
      
      }
   
   ]

}


GET CONTENT RECOMMENDATIONS.

get/find/recommendations/{channel}/{platform}
https://api.myspotlight.tv/find/recommendations/{channel}/{platform}

Obtain an array of recommended channels to view based on Channel ID or slug.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

channel
required
string

Channel ID or slug of the channel you want to receive recommendations for.

QUERY PARAMETERS

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many videos to return in the search results (useful for pagination).

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "country": "Canada",
       * "description": "This is a great show!",
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "language": "English",
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "programming_type": "Series",
       * "rating": "PG",
       * "season": 1,
       * "spotlight_poster":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "slug": "my-channel",
       * "title": "My Cool Channel",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ],
       * "markets": [
          * {
             * "sga": {
                * "allowed": [
                   * "gaAtlanta",
                   * "azPhoenix"
                  
                  ],
                * "global": false
               
               },
             * "dma": {
                * "allowed": [
                   * 510
                  
                  ],
                * "global": false
               
               }
            
            }
         
         ],
       * "year": 2020
      
      }
   
   ]

}


GET VIDEO RECOMMENDATIONS.

get/find/recommendations/video/{video}
https://api.myspotlight.tv/find/recommendations/video/{video}

Obtain an array of recommended videos to view based on Video ID.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

video
required
string

Video ID you want to receive recommendations for.

QUERY PARAMETERS

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many videos to return in the search results (useful for pagination).


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "videos": [
    * {
       * "_id": "59c724ef98e82b310e85fd4c",
       * "title": "My Cool Video",
       * "actors": [
          * "Actor A",
          * "Actor B"
         
         ],
       * "directors": [
          * "Director A"
         
         ],
       * "genres": [
          * "Action",
          * "Comedy"
         
         ],
       * "poster": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "score": 5,
       * "slug": "my-video-slug",
       * "thumb": "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "wallpaper":
         "https://images.dotstudiopro.com/59c70a2397f8150d1aa068d3",
       * "writers": [
          * "Writer A",
          * "Writer B"
         
         ]
      
      }
   
   ],
 * "pages": {
    * "total": 200,
    * "limit": 20,
    * "page": 1,
    * "pages": 10
   
   }

}


GET RECOMMENDATIONS BY VIDEO ID. DEPRECATED

get/search/recommendation
https://api.myspotlight.tv/search/recommendation

Obtain an array of recommended videos to play based on Video ID.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

ID of the video you want to receive recommendations for.

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many videos to return in the search results (useful for pagination).

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "total": 5,
    * "hits": [
       * {
          * "_source": {
             * "_id": "59c724ef98e82b310e85fd4c"
            
            }
         
         }
      
      ]
   
   }

}


GET RECOMMENDATIONS BY CHANNEL. DEPRECATED

get/search/recommendation/channel
https://api.myspotlight.tv/search/recommendation/channel

Obtain an array of recommended channels to view based on Channel ID or slug.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

dotstudioPRO channel ID or slug of the channel you want to receive
recommendations for.

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many videos to return in the search results (useful for pagination).

exclude_ratings
string
Example: exclude_ratings=PG,PG-13,R

A comma-separated value with ratings such as PG, R, etc to exclude from the
return. Please note that this filters channels by rating, not videos, and will
exclude all channels with those ratings. If this value is not sent, all channels
will be returned as normal.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "total": 5,
    * "hits": [
       * {
          * "_source": {
             * "_id": "59c724ef98e82b310e85fd4c"
            
            }
         
         }
      
      ]
   
   }

}


SEARCH CHANNELS. DEPRECATED

get/search/
https://api.myspotlight.tv/search/

Obtain an array of any channels matching the search query. The channels returned
are automatically sorted based on relevance. This version of search is based on
relevant hits to the channel's title, actors and directors keys.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

Query of your search.

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many channels to return in the search results (useful for pagination).


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "total": 5,
    * "hits": [
       * {
          * "_source": {
             * "_id": "59c724ef98e82b310e85fd4c"
            
            }
         
         }
      
      ]
   
   }

}


SEARCH VIDEOS. DEPRECATED

get/search/videos
https://api.myspotlight.tv/search/videos

Obtain an array of any videos matching the search query. The videos returned are
automatically sorted based on relevance. This version of search is based on
relevant hits to the videos's title, actors and directors keys.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

q
required
string

Query of your search.

from
number
Default: 0

Index at which to begin returning search results (useful for pagination).

size
number
Default: 10

How many videos to return in the search results (useful for pagination). A
maximum of 50 search results can be returned in one query.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "total": 5,
    * "hits": [
       * {
          * "_source": {
             * "_id": "59c724ef98e82b310e85fd4c"
            
            }
         
         }
      
      ]
   
   }

}


SUBSCRIPTION

User Subscriptions are a built-in capability of dotstudioPRO.


SUBSCRIPTION CREATION FLOW

Website: There are two flows that Web users can go through.

The first is Chargify.js. After implementing Chargify.js on your site, the token
received from card submissions will be sent to our API and used to create a
payment profile for the user.

 * First, the user's payment profile needs to be created via the Create With
   Payment route. This will ensure the user's payment profile exists to be used
   for charging their card during the subscription process.
 * Next, the user's subscription needs to be created via the Subscribe a User
   route.
 * Finally, now that a subscription has been created, the user will be entitled
   to any content that their subscription allows.

The second flow is for non-Chargify.js implemenations and requires credit card
data which is saved in our payment processor and tokenized for use with
Chargify.

 * First, the user's payment profile needs to be created via the Create With
   Payment route. This will ensure the user's payment profile exists to be used
   for charging their card during the subscription process.
 * Next, the user's subscription needs to be created via the Import Braintree
   User and Subscribe route. This takes a token from Braintree and passes it to
   Chargify to charge the user as part of the subscription creation.
 * Finally, now that a subscription has been created, the user will be entitled
   to any content that their subscription allows.

Apple (iOS/TV): Subscription purchases are handled through the Apple App Store.
Inside of the Apple app, once a purchase is made, the receipt data needs to be
sent to the Apple Receipt Parse route. The API will process the receipt data and
set the user's subscription up in Chargify, and nothing else is needed. The user
will be entitled to any content that their subscription allows.

Android (Mobile/TV): Subscription purchases are handled through the Google Play
Store. Inside of the Android app, once a purchase is made, the receipt data
needs to be sent to the Google Receipt Parse route. The API will process the
receipt data and set the user's subscription up in Chargify, and nothing else is
needed. The user will be entitled to any content that their subscription allows.

Amazon Fire: Subscription purchases are handled through the Amazon Fire store.
Inside of the Amazon Fire app, once a purchase is made, the receipt data needs
to be sent to the Amazon Fire Receipt Parse route. The API will process the
receipt data and set the user's subscription up in Chargify, and nothing else is
needed. The user will be entitled to any content that their subscription allows.

Roku: Subscription purchases are handled through the Roku Store. The way that
Roku operates is a little different from the other platforms:

 * First, you need to update the user's data with the information that Roku has
   for them. This can be done via the Roku Customer Save route.
 * Second, allow the user to purchase the product. Within the Roku app, you will
   receive a transaction id. This will be necessary for the next step.
 * Third, associate the user's Roku transaction id with their account via the
   Roku Customer Associate route.
 * Fourth, Roku sends a receipt to our API that we use to process the
   subscription after the purchase. You will need to make a check every second
   for about 10 seconds to ensure that the user's subscription has processed
   properly by using the Active Subscriptions route. If the subscription is
   active, you'll receive it in that call.
 * Finally, once you've been able to verify the user has an active subscription,
   they will now be entitled to any content that their subscription allows.


SUBSCRIPTION ENTITLEMENT FLOW

For any platform that we have integrated our subscriptions with, checking
entitlement for a given channel can be done via the Subscription Channel Check
route.

If you use our Homepage api route as part of your app or site, sending over a
client token will return a subscription check for each of the channels returned
in the homepage result. This will allow for the display of lock icons on locked
resources.


SUBSCRIPTION UPGRADE/DOWNGRADE (WEB ONLY)

Web subscriptions can be upgraded/downgraded/migrated via the Subscribe a User
route. Pass the product id you wish to subscribe the user to and our API will
handle applying the change to their Chargify account.


SUBSCRIPTION REACTIVATION (WEB ONLY)

Web is the only platform that requires reactivation via a "manual" API call; the
other platforms send their reactivation receipts to our API automatically. A
user's subscription can be reactivated via the Subscribe a User route. This
works if the user's subscription has been fully cancelled, or if the user's
subscription has a "soft cancel" on it (delayed cancellation until end of
period). The API will process any kind of logic that needs to happen to get the
user's account subscribed and active again.


SUBSCRIPTION SUPPORT

As part of having a subscription service, you will have to deal with customer
support requests. It's difficult to determine if a user should be entitled to
the service based on the information they provide, so we've provided an endpoint
to allow your customer support team to validate the status of a user's
subscription based on what the given store's receipt API comes back with. This
is available via the Support Entitlement Check route


GET COMPANY PRODUCT SUMMARY.

get/subscriptions/summary
https://api.myspotlight.tv/subscriptions/summary

Get detailed information about all of your active subscription products and
contents.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": [
    * {
       * "_id": "618427d5e2792b6911372392",
       * "name": "Monthly Product 1 - Dev",
       * "product_type": "svod",
       * "duration": {
          * "interval": 1,
          * "interval_unit": "month"
         
         },
       * "company_id": "57bdf792d66da8b744a33855",
       * "chargify_id": "5834408",
       * "entire_catalogue": false,
       * "ads_enabled": false,
       * "apple_product_id":
         "com.dotstudioz.dotstudioprotest.autoRenewableWeekly",
       * "google_product_id": "4650964",
       * "roku_product_id": "dprotestmonthly",
       * "amazon_fire_product_id": "com.dotstudioz.dotstudioPRO.inapp.month",
       * "description": "Monthly Product 1",
       * "price": "1.00",
       * "price_display": "monthly",
       * "is_most_popular": false,
       * "status": "Active",
       * "channels": [
          * "609daa215c6b0b61d713cde4",
          * "609da9f15c6b0b61d713cde3"
         
         ],
       * "taxable": false,
       * "trial": null
      
      },
    * {
       * "_id": "61856a9402e84e2583223ab2",
       * "name": "One Time Product 1 - Dev",
       * "product_type": "tvod",
       * "duration": {
          * "interval": 1,
          * "interval_unit": "month"
         
         },
       * "company_id": "57bdf792d66da8b744a33855",
       * "chargify_id": "5834594",
       * "entire_catalogue": false,
       * "ads_enabled": false,
       * "apple_product_id": "tvod_channels_product",
       * "google_product_id": "com.dotstudioz.dotstudiopro.revry.tier3",
       * "roku_product_id": "tvod_channels_product",
       * "amazon_fire_product_id": "com.dotstudioz.dotstudioPRO.inapp.day",
       * "description": "One Time Product 1",
       * "price": "0.00",
       * "rental_length": 1,
       * "rental_unit": "month",
       * "presell": false,
       * "status": "Active",
       * "channels": [
          * "5ff74b535c23614314605f72"
         
         ],
       * "taxable": false,
       * "trial": null
      
      }
   
   ]

}


GET THE DEFAULT SUBSCRIPTION BEHAVIOR.

get/subscriptions/default
https://api.myspotlight.tv/subscriptions/default

Get the default subscription behavior for a company (play_ads or lock_videos).

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "behavior": "play_ads"

}


GET LIST OF CHANNELS IN A PRODUCT.

get/subscriptions/channels-by-product/{product_id}
https://api.myspotlight.tv/subscriptions/channels-by-product/{product_id}

Get a list of all channels that belong to a particular product.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

product_id
required
string

The dotstudioPRO product ID.


RESPONSES

200

Successful operation

400

Product id is incorrectly formatted.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "title": "Some Cool Channel",
       * "poster": "https://x8v4e3f8.ssl.hwcdn.net/57be89b9d66da82435a338511",
       * "spotlight_poster":
         "https://x8v4e3f8.ssl.hwcdn.net/609da01f1f81f024205a44111",
       * "actors": [
          * "a"
         
         ],
       * "directors": [
          * "b"
         
         ],
       * "writers": [
          * "c"
         
         ],
       * "description": "Lorem ipsum dolor set imet...",
       * "display_title": "Some Cool Channel",
       * "slug": "some-cool-channel",
       * "_id": "609daff15c6b0b61d713cde1"
      
      }
   
   ],
 * "entire_catalogue": false

}


GET ALL PRODUCTS A CHANNEL PART OF.

get/subscriptions/products-by-channel/{channel_id}
https://api.myspotlight.tv/subscriptions/products-by-channel/{channel_id}

Get an array of all the products a channel belongs to given a dotstudioPRO
channel ID.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

channel_id
required
string

The dotstudioPRO channel ID.


RESPONSES

200

Successful operation

400

Channel id is improperly formatted.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "products": [
    * {
       * "_id": "618427d5e2792b6911372390",
       * "name": "Monthly Product 1",
       * "product_type": "svod",
       * "duration": {
          * "number": 1,
          * "unit": "month"
         
         },
       * "company_id": "57bdf792d66da8b744a33855",
       * "chargify_id": "5834408",
       * "entire_catalogue": false,
       * "ads_enabled": false,
       * "apple_product_id": "apple1",
       * "google_product_id": "google1",
       * "roku_product_id": "roku1",
       * "amazon_fire_product_id": "fire1",
       * "description": "Monthly Product 1",
       * "price": "$1.00",
       * "price_display": "monthly",
       * "is_most_popular": false,
       * "status": "Active",
       * "updated_at": "2021-11-05T21:36:52.000Z",
       * "created_at": "2021-11-04T18:35:01.000Z",
       * "channels_count": 2
      
      }
   
   ]

}


GET SUBSCRIPTION USER. DEPRECATED

get/subscriptions/users/getuser/{chargify_id}
https://api.myspotlight.tv/subscriptions/users/getuser/{chargify_id}

Get a detailed user object of a Subscription User given EITHER their client
token or their Chargify User ID.

If an x-client-token is passed the path property chargify_id is not required.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

chargify_id
required
string

The user's Chargify User ID.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "user": {
    * "first_name": "John",
    * "last_name": "Doe",
    * "email": "Doe",
    * "reference": "5ace53e098f815d171e4cc70",
    * "id": "21116292"
   
   }

}


GET SUBSCRIPTION USER.

get/subscriptions/users/getuser
https://api.myspotlight.tv/subscriptions/users/getuser

Get a detailed user object of a Subscription User given EITHER their client
token or their Chargify User ID.

If an x-client-token is passed the path property chargify_id is not required.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

chargify_id
required
string

The user's Chargify User ID.


RESPONSES

200

Successful operation

401

Unauthorized or missing client token.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "user": {
    * "first_name": "John",
    * "last_name": "Doe",
    * "email": "Doe",
    * "reference": "5ace53e098f815d171e4cc70",
    * "id": "21116292"
   
   }

}


GET USER'S SUBSCRIPTIONS.

get/subscriptions/users/active_subscriptions
https://api.myspotlight.tv/subscriptions/users/active_subscriptions

Get detailed information about a user's subscriptions.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

401

Unauthorized client token.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "subscriptions": [
    * {
       * "subscription": {
          * "id": 15236915,
          * "state": "active",
          * "current_period_ends_at": "2016-11-15T14:48:10-05:00",
          * "trial_started_at": null,
          * "trial_ended_at": null,
          * "activated_at": "2016-11-14T14:48:12-05:00",
          * "expires_at": null,
          * "created_at": "2016-11-14T14:48:10-05:00",
          * "updated_at": "2016-11-14T15:24:41-05:00",
          * "current_period_started_at": "2016-11-14T14:48:10-05:00",
          * "coupon_code": "5SNN6HFK3GBH",
          * "customer": {
             * "first_name": "Curtis",
             * "last_name": "Test",
             * "email": "curtis@example.com",
             * "created_at": "2016-11-14T14:48:10-05:00",
             * "updated_at": "2016-11-14T14:48:13-05:00",
             * "address": "123 Anywhere Street",
             * "address_2": "",
             * "city": "Boulder",
             * "state": "CO",
             * "zip": "80302",
             * "country": "US"
            
            },
          * "product": {
             * "id": 3792003,
             * "name": "$10 Basic Plan",
             * "handle": "basic",
             * "description": "lorem ipsum",
             * "accounting_code": "basic",
             * "price_in_cents": 1000,
             * "interval": 1,
             * "interval_unit": "day",
             * "trial_interval": null,
             * "trial_interval_unit": "month",
             * "created_at": "2016-03-24T13:38:39-04:00",
             * "updated_at": "2016-11-03T13:03:05-04:00",
             * "archived_at": null
            
            },
          * "credit_card": {
             * "id": 10191713,
             * "payment_type": "credit_card",
             * "first_name": "Curtis",
             * "last_name": "Test",
             * "masked_card_number": "XXXX-XXXX-XXXX-1",
             * "card_type": "bogus",
             * "expiration_month": 1,
             * "expiration_year": 2026,
             * "billing_address": "123 Anywhere Street",
             * "billing_address_2": "",
             * "billing_city": "Boulder",
             * "billing_state": null,
             * "billing_country": "",
             * "billing_zip": "80302"
            
            },
          * "payment_type": "credit_card"
         
         }
      
      }
   
   ]

}


GET USER'S PRODUCTS.

get/subscriptions/users/products
https://api.myspotlight.tv/subscriptions/users/products

Get detailed information about a user's products, both subscriptions and
one-time purchases.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

include_inactive_products
boolean

A flag to include the user's inactive products in the response.


RESPONSES

200

Successful operation

401

Unauthorized client token.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "products": {
    * "svod": [
       * {
          * "id": 15236915,
          * "state": "active",
          * "current_period_ends_at": "2016-11-15T14:48:10-05:00",
          * "trial_started_at": null,
          * "trial_ended_at": null,
          * "activated_at": "2016-11-14T14:48:12-05:00",
          * "expires_at": null,
          * "created_at": "2016-11-14T14:48:10-05:00",
          * "updated_at": "2016-11-14T15:24:41-05:00",
          * "current_period_started_at": "2016-11-14T14:48:10-05:00",
          * "coupon_code": "5SNN6HFK3GBH",
          * "customer": {
             * "first_name": "Curtis",
             * "last_name": "Test",
             * "email": "curtis@example.com",
             * "created_at": "2016-11-14T14:48:10-05:00",
             * "updated_at": "2016-11-14T14:48:13-05:00",
             * "address": "123 Anywhere Street",
             * "address_2": "",
             * "city": "Boulder",
             * "state": "CO",
             * "zip": "80302",
             * "country": "US"
            
            },
          * "product": {
             * "id": 3792003,
             * "name": "$10 Basic Plan",
             * "handle": "basic",
             * "description": "lorem ipsum",
             * "accounting_code": "basic",
             * "price_in_cents": 1000,
             * "interval": 1,
             * "interval_unit": "day",
             * "trial_interval": null,
             * "trial_interval_unit": "month",
             * "created_at": "2016-03-24T13:38:39-04:00",
             * "updated_at": "2016-11-03T13:03:05-04:00",
             * "archived_at": null
            
            },
          * "credit_card": {
             * "id": 10191713,
             * "payment_type": "credit_card",
             * "first_name": "Curtis",
             * "last_name": "Test",
             * "masked_card_number": "XXXX-XXXX-XXXX-1",
             * "card_type": "bogus",
             * "expiration_month": 1,
             * "expiration_year": 2026,
             * "billing_address": "123 Anywhere Street",
             * "billing_address_2": "",
             * "billing_city": "Boulder",
             * "billing_state": null,
             * "billing_country": "",
             * "billing_zip": "80302"
            
            },
          * "payment_type": "credit_card"
         
         }
      
      ],
    * "tvod": [
       * {
          * "id": 15236915,
          * "state": "active",
          * "current_period_ends_at": "2017-11-14T14:48:10-05:00",
          * "trial_started_at": null,
          * "trial_ended_at": null,
          * "activated_at": "2016-11-14T14:48:12-05:00",
          * "expires_at": "2017-11-14T14:48:10-05:00",
          * "created_at": "2016-11-14T14:48:10-05:00",
          * "updated_at": "2016-11-14T15:24:41-05:00",
          * "current_period_started_at": "2016-11-14T14:48:10-05:00",
          * "coupon_code": "5SNN6HFK3GBH",
          * "customer": {
             * "first_name": "Curtis",
             * "last_name": "Test",
             * "email": "curtis@example.com",
             * "created_at": "2016-11-14T14:48:10-05:00",
             * "updated_at": "2016-11-14T14:48:13-05:00",
             * "address": "123 Anywhere Street",
             * "address_2": "",
             * "city": "Boulder",
             * "state": "CO",
             * "zip": "80302",
             * "country": "US"
            
            },
          * "product": {
             * "id": 3792004,
             * "name": "Watch A Channel Plan",
             * "handle": "watch_channel",
             * "description": "lorem ipsum",
             * "accounting_code": "watch_channel",
             * "price_in_cents": 500,
             * "interval": 1,
             * "interval_unit": "day",
             * "trial_interval": null,
             * "trial_interval_unit": "month",
             * "created_at": "2016-03-24T13:38:39-04:00",
             * "updated_at": "2016-11-03T13:03:05-04:00",
             * "archived_at": null
            
            },
          * "credit_card": {
             * "id": 10191713,
             * "payment_type": "credit_card",
             * "first_name": "Curtis",
             * "last_name": "Test",
             * "masked_card_number": "XXXX-XXXX-XXXX-1",
             * "card_type": "bogus",
             * "expiration_month": 1,
             * "expiration_year": 2026,
             * "billing_address": "123 Anywhere Street",
             * "billing_address_2": "",
             * "billing_city": "Boulder",
             * "billing_state": null,
             * "billing_country": "",
             * "billing_zip": "80302"
            
            },
          * "payment_type": "credit_card"
         
         }
      
      ]
   
   },
 * "platform": "string",
 * "paymentInfo": {
    * "first_name": "Testing",
    * "last_name": "User",
    * "masked_card_number": "XXXX-XXXX-XXXX-4242",
    * "card_type": "visa",
    * "expiration_month": 12,
    * "expiration_year": 2024,
    * "billing_address": "1234 Testing Lane",
    * "billing_address_2": null,
    * "billing_city": "Testerville",
    * "billing_state": "CA",
    * "billing_zip": "12345",
    * "billing_country": "US"
   
   }

}


GET A USER'S PURCHASE HISTORY

get/subscriptions/purchases
https://api.myspotlight.tv/subscriptions/purchases

Get the total purchase history of a user including payments made on other
platforms that were registered in our system.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

401

Unauthorized client token.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "current_subscription": {
    * "product": {
       * "id": 1234568,
       * "name": "MONTHLY",
       * "handle": "monthly_subscription",
       * "description": null,
       * "accounting_code": null,
       * "request_credit_card": true,
       * "expiration_interval": null,
       * "expiration_interval_unit": "never",
       * "created_at": "2020-06-04T14:23:29-04:00",
       * "updated_at": "2021-11-15T12:39:18-05:00",
       * "price_in_cents": 199,
       * "interval": 1,
       * "interval_unit": "month",
       * "initial_charge_in_cents": 0,
       * "trial_price_in_cents": null,
       * "trial_interval": null,
       * "trial_interval_unit": null,
       * "archived_at": null,
       * "require_credit_card": false,
       * "return_params": null,
       * "taxable": true,
       * "update_return_url": null,
       * "tax_code": "D0000000",
       * "initial_charge_after_trial": false,
       * "version_number": 1,
       * "update_return_params": null,
       * "default_product_price_point_id": 1234568,
       * "request_billing_address": false,
       * "require_billing_address": false,
       * "require_shipping_address": false,
       * "product_price_point_id": 1234568,
       * "product_price_point_name": "Default",
       * "product_price_point_handle":
         "uuid:5204efe0-0809-0139-c166-064aab0ed7ef",
       * "product_family": {
          * "id": 1234568,
          * "name": "Billing",
          * "description": null,
          * "handle": "billing-plans",
          * "accounting_code": null,
          * "created_at": "2020-06-02T14:54:36-04:00",
          * "updated_at": "2020-06-02T14:54:36-04:00"
         
         },
       * "public_signup_pages": [ ]
      
      },
    * "payment_info": {
       * "first_name": "John",
       * "last_name": "Smith",
       * "masked_card_number": "XXXX-XXXX-XXXX-1111",
       * "card_type": "visa",
       * "expiration_month": 12,
       * "expiration_year": 2025,
       * "billing_address": "1355 Anywhere Street",
       * "billing_address_2": null,
       * "billing_city": "Somewhere",
       * "billing_state": "CA",
       * "billing_zip": "90001",
       * "billing_country": "US"
      
      },
    * "platform": "web",
    * "subscription_info": {
       * "id": 39238114,
       * "state": "active",
       * "trial_started_at": null,
       * "trial_ended_at": null,
       * "activated_at": "2021-02-04T13:32:03-05:00",
       * "created_at": "2021-02-04T13:31:59-05:00",
       * "updated_at": "2021-05-27T13:21:46-04:00",
       * "expires_at": null,
       * "balance_in_cents": 0,
       * "current_period_ends_at": "2027-09-04T13:31:00-04:00",
       * "next_assessment_at": "2027-09-04T13:31:00-04:00",
       * "canceled_at": null,
       * "cancellation_message": null,
       * "next_product_id": null,
       * "next_product_handle": null,
       * "cancel_at_end_of_period": false,
       * "payment_collection_method": "automatic",
       * "snap_day": null,
       * "cancellation_method": null,
       * "current_period_started_at": "2021-02-04T13:31:59-05:00",
       * "previous_state": "active",
       * "signup_payment_id": 465942021,
       * "signup_revenue": "7.99",
       * "delayed_cancel_at": null,
       * "coupon_code": null,
       * "total_revenue_in_cents": 0,
       * "product_price_in_cents": 799,
       * "product_version_number": 1,
       * "payment_type": "credit_card",
       * "referral_code": null,
       * "coupon_use_count": null,
       * "coupon_uses_allowed": null,
       * "reason_code": null,
       * "automatically_resume_at": null,
       * "coupon_codes": [ ],
       * "offer_id": null,
       * "payer_id": null,
       * "receives_invoice_emails": null,
       * "product_price_point_id": 1143655,
       * "next_product_price_point_id": null,
       * "credit_balance_in_cents": 200,
       * "prepayment_balance_in_cents": 0,
       * "net_terms": null,
       * "stored_credential_transaction_id": null,
       * "locale": null,
       * "reference": null,
       * "currency": "USD",
       * "on_hold_at": null,
       * "scheduled_cancellation_at": null,
       * "product_price_point_type": "catalog",
       * "group": null,
       * "price": 7.99
      
      }
   
   },
 * "history": [
    * [
       * {
          * "type": "credit",
          * "platform": "web",
          * "credit_amount": "$3.99",
          * "created_at": "2021-02-16T16:17:12.000Z"
         
         },
       * {
          * "type": "refund",
          * "platform": "web",
          * "credit_amount": "$3.99",
          * "created_at": "2021-02-16T16:17:12.000Z"
         
         },
       * {
          * "type": "payment",
          * "payment_amount": "$3.99",
          * "created_at": "2021-02-04T18:32:02.000Z",
          * "platform": "web",
          * "period_start": "2021-02-04T00:00:00.000Z",
          * "period_end": "2021-03-04T00:00:00.000Z",
          * "masked_card_number": "XXXX-XXXX-XXXX-1111",
          * "card_brand": "master",
          * "dsp_product_id": "6ad93f22358eee1a5e0d6202",
          * "product_id": 1234568,
          * "product_name": "MONTHLY SUBSCRIPTION",
          * "product_type": "svod"
         
         }
      
      ]
   
   ]

}


CHECK SUBSCRIPTION STATUS.

get/subscriptions/check/{channel_id}
https://api.myspotlight.tv/subscriptions/check/{channel_id}

Perform a check against a particular channel to see if customer currently has an
active subscription for it. Note: if you request a parent channel, the
childchannels within that parent channel will be checked and returned in a
childchannels array.

The customer you are a performing a check against must be registered in Chargify
in order for this call to work. If they are not the call will always return
unlocked=false.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

channel_id
required
string

dotstudioPRO Channel ID


RESPONSES

200

Successful operation

400

Channel id is improperly formatted.

401

Unauthorized client token.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "unlocked": true,
 * "ads_enabled": true,
 * "childchannels": [
    * {
       * "dspro_id": "5416ba9c97f815f27881be04",
       * "unlocked": true,
       * "ads_enabled": true
      
      }
   
   ]

}


CREATE A PAYMENT PROFILE FOR A USER (WEB)

post/subscriptions/users/create_with_payment
https://api.myspotlight.tv/subscriptions/users/create_with_payment

Creates a payment profile for a user within Braintree to be used by Chargify
(web users only)

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

A Chargify.js token, or card info to create a payment profile. If a Chargify.js
token is passed, the credit card fields are unnecessary. Without the Chargify.js
token, all credit card fields are required.

chargify_token
string

Customer's Chargify token from the Chargify.js form submission.

first_name
string

Customer's first name.

last_name
string

Customer's last name.

card_number
string

Credit card number.

exp_month
string

Credit card expiry month.

exp_year
string

Credit card expiry year.

cvv
string

Credit card CVV value.

billing_address
string

Billing address 1.

billing_address_2
string

Billing address 2.

billing_city
string

Billing city.

billing_state
string

Billing state.

billing_zip
string

Billing ZIP code.

billing_country
string

ISO Alpha2 formatted two letter country code.


RESPONSES

200

Successful operation

400

One or more necessary parameters is missing or incorrect.

401

Unauthorized client token.

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "chargify_token": "tok_smcb6h2rthmf7sdprr7z67pm",
 * "first_name": "John",
 * "last_name": "Doe",
 * "card_number": "4111111111111111",
 * "exp_month": "10",
 * "exp_year": "2020",
 * "cvv": 123,
 * "billing_address": "1111 A Street",
 * "billing_address_2": "Unit 101",
 * "billing_city": "Vancouver",
 * "billing_state": "BC",
 * "billing_zip": "V6A0A1",
 * "billing_country": "CA"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "_id": "61b265abb72dbb41787e30342",
    * "company_id": "37bdf792d66da8b744a33851",
    * "customer_id": "31b2659f12df9c6f423d753a",
    * "braintree_customer_id": "318986578686165"
   
   }

}


IMPORT BRAINTREE USER AND SUBSCRIBE (WEB)

post/subscriptions/users/import/subscribe_to/{subscription_id}
https://api.myspotlight.tv/subscriptions/users/import/subscribe_to/{subscription_id}

Creates a new customer object in Chargify corresponding to an existing user in
dotstudioPRO's Braintree account. The Braintree user must have a payment method
associated with their account in order for this call to work. After creating the
user in Chargify they will be subscribed to the subscription ID provided.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

subscription_id
required
string

The Chargify Subscription ID the user should be subscribed to.

QUERY PARAMETERS

coupon
string

Coupon to apply to the subscription (optional). Coupon MUST BE VALID if passed,
otherwise call will error.


RESPONSES

200

Successful operation

401

Unauthorized client token.

403

Missing or invalid API access token.

404

The product you're creating a subscription for could not be found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "customer": { },
    * "product": { },
    * "credit_card": { }
   
   }

}


SUBSCRIBE USER.

post/subscriptions/users/subscribe_to/{subscription_id}
https://api.myspotlight.tv/subscriptions/users/subscribe_to/{subscription_id}

Subscribe a user who has already been created in Chargify to a subscription.
This call is useful when using external payment processors such as Apple Pay or
Roku Payments. A customer using an external subscription processor may be
created in Chargify without credit card data, subscribed using this endpoint,
and credited continuously using the Generate Payment endpoint.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

subscription_id
required
string

The Chargify Subscription ID the user should be subscribed to.

QUERY PARAMETERS

platform
required
string
Enum: "android" "android_tv" "apple" "firetv" "roku" "web"

The platform creating the request.

coupon
string

A coupon code for this user's plan

immediate
boolean
Default: false

For subscription plan changes. Determines whether the plan changes at the end of
the billing period or immediately.


RESPONSES

200

Successful operation

401

Unauthorized client token.

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "customer": { },
    * "product": { },
    * "credit_card": { }
   
   }

}


CANCEL SUBSCRIPTION (WEB)

post/subscriptions/users/cancel
https://api.myspotlight.tv/subscriptions/users/cancel

Cancels a user's existing subscription. Since a user may be on only 1 active
subscription plan at a time it is not necessary to provide a subscription_id to
this route.

When cancelled, a user will stop being charged immediately. They will maintain
access to contents of their old subscription package until their current billing
period expires.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

401

Unauthorized client token.

403

Missing or invalid API access token.

404

The customer could not be found.

409

The customer does not have a subscription.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "subscription": {
    * "id": 49813741,
    * "state": "active",
    * "trial_started_at": null,
    * "trial_ended_at": null,
    * "activated_at": "2021-12-09T15:27:10-05:00",
    * "created_at": "2021-12-09T15:27:07-05:00",
    * "updated_at": "2021-12-09T15:31:02-05:00",
    * "expires_at": null,
    * "balance_in_cents": 0,
    * "current_period_ends_at": "2022-01-09T15:27:07-05:00",
    * "next_assessment_at": "2022-01-09T15:27:07-05:00",
    * "canceled_at": null,
    * "cancellation_message": null,
    * "next_product_id": null,
    * "next_product_handle": null,
    * "cancel_at_end_of_period": true,
    * "payment_collection_method": "automatic",
    * "snap_day": null,
    * "cancellation_method": null,
    * "current_period_started_at": "2021-12-09T15:27:07-05:00",
    * "previous_state": "active",
    * "signup_payment_id": 586167439,
    * "signup_revenue": "1.00",
    * "delayed_cancel_at": "2022-01-09T15:27:07-05:00",
    * "coupon_code": null,
    * "total_revenue_in_cents": 100,
    * "product_price_in_cents": 100,
    * "product_version_number": 1,
    * "payment_type": "credit_card",
    * "referral_code": null,
    * "coupon_use_count": null,
    * "coupon_uses_allowed": null,
    * "reason_code": "CH:Unknown",
    * "automatically_resume_at": null,
    * "coupon_codes": [ ],
    * "offer_id": null,
    * "payer_id": null,
    * "receives_invoice_emails": null,
    * "product_price_point_id": 1632148,
    * "next_product_price_point_id": null,
    * "credit_balance_in_cents": 0,
    * "prepayment_balance_in_cents": 0,
    * "net_terms": null,
    * "stored_credential_transaction_id": null,
    * "locale": null,
    * "reference": null,
    * "currency": "USD",
    * "on_hold_at": null,
    * "scheduled_cancellation_at": "2022-01-09T15:27:07-05:00",
    * "product_price_point_type": "default",
    * "customer": {
       * "id": 50773431,
       * "first_name": "Testing",
       * "last_name": "User",
       * "organization": null,
       * "email": "a5c5ab1d-5b4b-429d-9be4-b2abec64fc75_testrunner@dsptest.com",
       * "created_at": "2021-12-09T15:27:07-05:00",
       * "updated_at": "2021-12-09T15:27:07-05:00",
       * "reference": "61b2659f12df9c6f423d753b",
       * "address": null,
       * "address_2": null,
       * "city": null,
       * "state": null,
       * "state_name": null,
       * "zip": null,
       * "country": null,
       * "country_name": null,
       * "phone": null,
       * "portal_invite_last_sent_at": null,
       * "portal_invite_last_accepted_at": null,
       * "verified": false,
       * "portal_customer_created_at": null,
       * "vat_number": null,
       * "cc_emails": null,
       * "tax_exempt": false,
       * "parent_id": null,
       * "locale": null
      
      },
    * "product": {
       * "id": 5834408,
       * "name": "Monthly Product 1 - Dev",
       * "handle": "monthly_product_1",
       * "description": "",
       * "accounting_code": "",
       * "request_credit_card": true,
       * "expiration_interval": null,
       * "expiration_interval_unit": "never",
       * "created_at": "2021-11-04T14:35:00-04:00",
       * "updated_at": "2021-11-07T12:38:41-05:00",
       * "price_in_cents": 100,
       * "interval": 1,
       * "interval_unit": "month",
       * "initial_charge_in_cents": null,
       * "trial_price_in_cents": null,
       * "trial_interval": null,
       * "trial_interval_unit": "month",
       * "archived_at": null,
       * "require_credit_card": false,
       * "return_params": "",
       * "taxable": false,
       * "update_return_url": "",
       * "tax_code": "D0000000",
       * "initial_charge_after_trial": false,
       * "version_number": 1,
       * "update_return_params": "",
       * "default_product_price_point_id": 1632148,
       * "request_billing_address": false,
       * "require_billing_address": false,
       * "require_shipping_address": false,
       * "product_price_point_id": 1632148,
       * "product_price_point_name": "Default",
       * "product_price_point_handle":
         "uuid:ed52ff10-2084-013a-dab2-02b7f9ecc5f5",
       * "product_family": {
          * "id": 1996356,
          * "name": "Billing Plans",
          * "description": null,
          * "handle": "dotstudioz-billing-plans",
          * "accounting_code": null,
          * "created_at": "2021-11-04T14:28:30-04:00",
          * "updated_at": "2021-11-04T14:28:30-04:00"
         
         },
       * "public_signup_pages": [ ]
      
      },
    * "credit_card": {
       * "id": 33982672,
       * "first_name": "Testing",
       * "last_name": "User",
       * "masked_card_number": "XXXX-XXXX-XXXX-1111",
       * "card_type": "visa",
       * "expiration_month": 12,
       * "expiration_year": 2030,
       * "customer_id": 50773431,
       * "current_vault": "braintree_blue",
       * "vault_token": "163908213855540265612",
       * "billing_address": "1234 Anywhere St",
       * "billing_city": "Anywhere",
       * "billing_state": "CA",
       * "billing_zip": "90210",
       * "billing_country": "US",
       * "customer_vault_token": null,
       * "billing_address_2": null,
       * "payment_type": "credit_card",
       * "disabled": false,
       * "site_gateway_setting_id": 22901,
       * "gateway_handle": null
      
      },
    * "group": null
   
   }

}


VALIDATE COUPON (WEB)

post/subscriptions/validate_coupon
https://api.myspotlight.tv/subscriptions/validate_coupon

Check whether or not a coupon code is valid

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



coupon
string

The coupon code


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "coupon": "ONE_MONTH_FREE"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "coupon_is_valid": true

}


CREATE AN AMAZON FIRE SUBSCRIPTION (AMAZON FIRE)

postsubscriptions/amazon_fire/customer/parse
https://api.myspotlight.tvsubscriptions/amazon_fire/customer/parse

Create an Amazon Fire subscription subscription using receipt data

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



orderId
string

packageName
string

productId
string

purchaseTime
string

purchaseState
string

purchaseToken
string

autoRenewing
object

signature
object



RESPONSES

200

Successful operation

400

The format of the values sent over is incorrect. This error code will also be
returned if the Amazon Fire API returns an error.

403

Missing or invalid API access token, or missing/invalid client token.

404

The customer or the product could not be found within our system.

409

This customer already has an active subscription.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "orderId": "_n2lIHPuwE9RgcfBK4R3XYtDHrFcsXJdfysmHiyNXAg=:5:44",
 * "packageName": "com.dotstudioz.helloworld",
 * "productId": "com.dotstudioz.helloworld",
 * "purchaseTime": "Mon Dec 06 23:25:27 PST 2021",
 * "purchaseState": "SUCCESSFUL",
 * "purchaseToken": "_n2lIHPuwE9RgcfBK4R3XYtDHrFcsXJdfysmHiyNXAg=:5:44",
 * "autoRenewing": {
    * "userId": "R0f03EbSdRlaflvBbc1ExsY5Hs54luI3cnBjaHu4L58",
    * "marketplace": "US"
   
   },
 * "signature": {
    * "receiptId": "_n2lIHPuwE9RgcfBK4R3XYtDHrFcsXJdfysmHiyNXAg=:5:44",
    * "sku": "com.dotstudioz.dotstudioPRO.inapp.month",
    * "itemType": "SUBSCRIPTION",
    * "purchaseDate": "Mon Dec 06 23:25:27 PST 2021"
   
   }

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "data": "Customer account created, subscribed, and credited."

}


CREATE AN APPLE SUBSCRIPTION (APPLE)

post/subscriptions/apple/customer/parse
https://api.myspotlight.tv/subscriptions/apple/customer/parse

Create an Apple subscription using receipt data

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



latest_receipt
string

notification_type
string

product_id
string



RESPONSES

200

Successful operation

400

The format of the values sent over is incorrect.

403

Missing or invalid API access token, or missing/invalid client token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "latest_receipt": "abcdaruiaofjapdf",
 * "notification_type": "INITIAL_BUY",
 * "product_id": "some.apple.product"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "data": "User subscription created!"

}


CREATE AN ANDROID/GOOGLE SUBSCRIPTION (ANDROID/GOOGLE)

postsubscriptions/google/parse
https://api.myspotlight.tvsubscriptions/google/parse

Create an Android/Google subscription using receipt data

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



orderId
string

packageName
string

productId
string

purchaseTime
number

purchaseState
number

purchaseToken
string

autoRenewing
boolean

acknowledged
boolean



RESPONSES

200

Successful operation

400

The format of the values sent over is incorrect.

403

Missing or invalid API access token, or missing/invalid client token.

404

The customer or the product could not be found within our system.

409

This customer already has an active subscription.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "orderId": "GPA.5348-0076-1021-86015",
 * "packageName": "com.dotstudioz.helloworld",
 * "productId": "abc123",
 * "purchaseTime": 1624481193482,
 * "purchaseState": 0,
 * "purchaseToken": "afdaeafafdafdafdad",
 * "autoRenewing": true,
 * "acknowledged": true

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data_received": {
    * "email": "someuser@coolsite.com",
    * "message": "User subscription created!"
   
   }

}


ATTACH ROKU CUSTOMER DATA TO A USER (ROKU)

post/subscriptions/roku/customer/save
https://api.myspotlight.tv/subscriptions/roku/customer/save

Attach Roku customer data to a user so we have name/address/etc

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



email_address
string

firstname
string

lastname
string

city
string

street1
string

state
string

zip
string

country
string



RESPONSES

200

Successful operation

400

The format of the values sent over is incorrect.

403

Missing or invalid API access token, or missing/invalid client token.

404

The customer could not be found within our system.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "email_address": "someuser@coolsite.com",
 * "firstname": "John",
 * "lastname": "Smith",
 * "city": "Sacramento",
 * "street1": "123 Anywhere Street",
 * "state": "CA",
 * "zip": "90001",
 * "country": "US"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "data": "User updated."

}


ASSOCIATE A ROKU TRANSACTION ID WITH A USER (ROKU)

post/subscriptions/roku/customer/associate
https://api.myspotlight.tv/subscriptions/roku/customer/associate

Associate a Roku transaction id with a user so that we can evaluate any receipts
we get for this transaction

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



email_address
string

transaction_id
string



RESPONSES

200

Successful operation

400

The format of the values sent over is incorrect.

403

Missing or invalid API access token, or missing/invalid client token.

404

The customer or the product could not be found within our system.

409

This customer already has an active subscription.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "email_address": "cooldude@somesite.com",
 * "transaction_id": "aodufaojfd9iafdh78a"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "email_address": "cooldude@somesite.com",
 * "data": "Customer associated with Roku txid"

}


CREATE A ROKU SUBSCRIPTION (ROKU)

postsubscriptions/roku/customer/parse
https://api.myspotlight.tvsubscriptions/roku/customer/parse

Create a Roku subscription using receipt data. Please note that the return value
for this will match the responseKey value due to this route being used by the
Roku webhook service as well.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED



customerId
string

transactionType
string

transactionId
string

channelId
string

productCode
string

price
number

tax
number

total
number

currency
string

comments
string

eventDate
string

responseKey
string

expirationDate
string



RESPONSES

200

Successful operation

400

The format of the values sent over is incorrect.

403

Missing or invalid API access token, or missing/invalid client token.

404

The customer or the product could not be found within our system.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "customerId": "adfaeae498ad49a1d6",
 * "transactionType": "Sale",
 * "transactionId": "adfae89eaw91ae498ad49a1d6",
 * "channelId": "58948",
 * "productCode": "monthly_plan",
 * "price": 0.99,
 * "tax": 0.99,
 * "total": 0.99,
 * "currency": "usd",
 * "comments": "New order processed.",
 * "eventDate": "2014-02-17T22:45:37.496125Z",
 * "responseKey": "adfouapifjaioai478syf8",
 * "expirationDate": "2014-02-17T22:45:37.496125Z"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
"adfouapifjaioai478syf8"


UPDATE PAYMENT PROFILE.

put/subscriptions/payment/update
https://api.myspotlight.tv/subscriptions/payment/update

Update a payment profile for a customer (ie associate a new credit card with
their account). A successful return of this route indicates the customer's old
payment method was deleted.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

A Chargify.js token, or card info to create a payment profile. If a Chargify.js
token is passed, the credit card fields are unnecessary. Without the Chargify.js
token, all credit card fields are required.

chargify_token
string

Customer's Chargify token from the Chargify.js form submission.

first_name
string

Customer's first name.

last_name
string

Customer's last name.

card_number
string

Credit card number.

exp_month
string

Credit card expiry month.

exp_year
string

Credit card expiry year.

cvv
string

Credit card CVV value.

billing_address
string

Billing address 1.

billing_address_2
string

Billing address 2.

billing_city
string

Billing city.

billing_state
string

Billing state.

billing_zip
string

Billing ZIP code.

billing_country
string

ISO Alpha2 formatted two letter country code.


RESPONSES

200

Successful operation

400

Invalid parameters passed.

401

Unauthorized client token.

403

Missing or invalid API access token.

407

Route requires HTTPS protocol.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "chargify_token": "tok_smcb6h2rthmf7sdprr7z67pm",
 * "first_name": "John",
 * "last_name": "Doe",
 * "card_number": "4111111111111111",
 * "exp_month": "10",
 * "exp_year": "2020",
 * "cvv": 123,
 * "billing_address": "1111 A Street",
 * "billing_address_2": "Unit 101",
 * "billing_city": "Vancouver",
 * "billing_state": "BC",
 * "billing_zip": "V6A0A1",
 * "billing_country": "CA"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "subscriptions": {
    * "payment_profile": {
       * "site_gateway_setting_id": 22901,
       * "customer_id": 50773431,
       * "id": 33982672,
       * "first_name": "Test",
       * "last_name": "User",
       * "masked_card_number": "XXXX-XXXX-XXXX-1111",
       * "card_type": "visa",
       * "expiration_month": 12,
       * "expiration_year": 2030,
       * "current_vault": "braintree_blue",
       * "vault_token": "16390813854025612",
       * "billing_address": "1234 Anywhere St",
       * "billing_city": "Anywhere",
       * "billing_state": "CA",
       * "billing_zip": "90210",
       * "billing_country": "US",
       * "customer_vault_token": null,
       * "billing_address_2": null,
       * "payment_type": "credit_card",
       * "disabled": false,
       * "gateway_handle": null
      
      }
   
   }

}


VERIFY SUBSCRIPTION ENTITLEMENT FOR ONE OR MORE USERS.

post/subscriptions/support/entitlement
https://api.myspotlight.tv/subscriptions/support/entitlement

Verify the subscription entitlement for one or more users based on validating
their subscription against the store receipt we have for their subscription. The
response example contains results for each platform we currently support.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED


Array
string




RESPONSES

200

Successful operation

400

Invalid parameters passed.

403

Missing or invalid API access token.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "emails": [
    * "some_user_1@provider.net",
    * "some_user_2@provider.net"
   
   ]

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "results": [
    * [
       * {
          * "customer": {
             * "first_name": "John",
             * "last_name": "Doe",
             * "email": "some_customer@provider.net"
            
            },
          * "subscription": {
             * "details": {
                * "customer_id": 786899376,
                * "product_id": 786899376,
                * "state": "canceled",
                * "created_at": "2023-02-28T04:51:50-05:00",
                * "canceled_at": "2023-02-28T05:05:29-05:00",
                * "cancel_at_end_of_period": false,
                * "delayed_cancel_at": null
               
               },
             * "dotstudiopro": {
                * "platform": "android",
                * "chargify_product_id": 786899376,
                * "chargify_customer_id": 786899376
               
               }
            
            },
          * "receipt": {
             * "startTimeMillis": "1670250015113",
             * "expiryTimeMillis": "1676207981068",
             * "autoRenewing": false,
             * "priceCurrencyCode": "GBP",
             * "priceAmountMicros": "7000000",
             * "countryCode": "GB",
             * "developerPayload": "",
             * "cancelReason": 0,
             * "userCancellationTimeMillis": "1676207978495",
             * "orderId": "GPA.1111-2222-3333-44444..0",
             * "cancelSurveyResult": {
                * "cancelSurveyReason": 1
               
               },
             * "acknowledgementState": 1,
             * "kind": "androidpublisher#subscriptionPurchase",
             * "productId": "some_product",
             * "purchaseToken": "google play purchase token"
            
            },
          * "entitled": false
         
         },
       * {
          * "customer": {
             * "email": "some_customer_2@provider.net"
            
            },
          * "subscription": {
             * "details": {
                * "customer_id": 681506817,
                * "product_id": 681506817,
                * "state": "active",
                * "created_at": "2023-02-27T21:20:41-05:00",
                * "canceled_at": null,
                * "cancel_at_end_of_period": false,
                * "delayed_cancel_at": null
               
               },
             * "dotstudiopro": {
                * "platform": "apple",
                * "chargify_product_id": 681506817,
                * "chargify_customer_id": 681506817
               
               }
            
            },
          * "receipt": {
             * "receipt": {
                * "original_purchase_date_pst": "2020-08-18 22:46:48
                  America/Los_Angeles",
                * "quantity": "1",
                * "unique_vendor_identifier":
                  "AFDFDSFDS-F073-4793-A626-DADFSDFEREFD",
                * "bvrs": "1111.11",
                * "expires_date_formatted": "2020-12-19 06:46:48 Etc/GMT",
                * "is_in_intro_offer_period": "false",
                * "purchase_date_ms": "1605768408000",
                * "expires_date_formatted_pst": "2020-12-18 22:46:48
                  America/Los_Angeles",
                * "is_trial_period": "false",
                * "item_id": "681506817",
                * "unique_identifier": "681506817",
                * "original_transaction_id": "681506817",
                * "subscription_group_identifier": "681506817",
                * "app_item_id": "681506817",
                * "transaction_id": "681506817",
                * "web_order_line_item_id": "681506817",
                * "version_external_identifier": "681506817",
                * "purchase_date": "2020-11-19 06:46:48 Etc/GMT",
                * "product_id": "some_product",
                * "expires_date": "1608360408000",
                * "original_purchase_date": "2020-08-19 05:46:48 Etc/GMT",
                * "purchase_date_pst": "2020-11-18 22:46:48
                  America/Los_Angeles",
                * "bid": "com.someapp.mobileapp",
                * "original_purchase_date_ms": "1597816008000"
               
               },
             * "auto_renew_product_id": "some_product",
             * "auto_renew_status": 1,
             * "latest_receipt_info": {
                * "original_purchase_date_pst": "2020-08-18 22:46:48
                  America/Los_Angeles",
                * "quantity": "1",
                * "unique_vendor_identifier":
                  "DFSDFEFFE-2C23-4E9F-9DFD-DADFDDSFDS",
                * "bvrs": "1",
                * "expires_date_formatted": "2023-03-28 01:20:35 Etc/GMT",
                * "is_in_intro_offer_period": "false",
                * "purchase_date_ms": "1677550835000",
                * "expires_date_formatted_pst": "2023-03-27 18:20:35
                  America/Los_Angeles",
                * "is_trial_period": "false",
                * "item_id": "681506817",
                * "unique_identifier": "00008030-681506817",
                * "original_transaction_id": "681506817",
                * "subscription_group_identifier": "681506817",
                * "app_item_id": "681506817",
                * "transaction_id": "681506817",
                * "in_app_ownership_type": "PURCHASED",
                * "web_order_line_item_id": "681506817",
                * "version_external_identifier": "681506817",
                * "purchase_date": "2023-02-28 02:20:35 Etc/GMT",
                * "product_id": "some_product",
                * "expires_date": "1679966435000",
                * "original_purchase_date": "2020-08-19 05:46:48 Etc/GMT",
                * "purchase_date_pst": "2023-02-27 18:20:35
                  America/Los_Angeles",
                * "bid": "com.someapp.mobileapp",
                * "original_purchase_date_ms": "1597816008000"
               
               },
             * "latest_receipt": "apple receipt string",
             * "status": 0
            
            },
          * "entitled": true
         
         },
       * {
          * "customer": {
             * "email": "some_customer_2@provider.net"
            
            },
          * "subscription": {
             * "details": {
                * "customer_id": 681506817,
                * "product_id": 681506817,
                * "state": "active",
                * "created_at": "2023-02-27T21:20:41-05:00",
                * "canceled_at": null,
                * "cancel_at_end_of_period": false,
                * "delayed_cancel_at": null
               
               },
             * "dotstudiopro": {
                * "platform": "apple",
                * "chargify_product_id": 681506817,
                * "chargify_customer_id": 681506817
               
               }
            
            },
          * "receipt": {
             * "environment": "Production",
             * "receipt": {
                * "receipt_type": "Production",
                * "adam_id": 822994382,
                * "app_item_id": 822994382,
                * "bundle_id": "com.someapp.mobileapp",
                * "application_version": "2",
                * "download_id": null,
                * "version_external_identifier": 822994382,
                * "receipt_creation_date": "2022-10-30 04:53:51 Etc/GMT",
                * "receipt_creation_date_ms": "1667105631000",
                * "receipt_creation_date_pst": "2022-10-29 21:53:51
                  America/Los_Angeles",
                * "request_date": "2023-02-28 19:33:18 Etc/GMT",
                * "request_date_ms": "1677612798399",
                * "request_date_pst": "2023-02-28 11:33:18 America/Los_Angeles",
                * "original_purchase_date": "2023-02-28 19:33:18 Etc/GMT",
                * "original_purchase_date_ms": "1677612798365",
                * "original_purchase_date_pst": "2023-02-28 11:33:18
                  America/Los_Angeles",
                * "original_application_version": "1",
                * "in_app": [
                   * {
                      * "quantity": "1",
                      * "product_id": "some_product_id",
                      * "transaction_id": "822994382",
                      * "original_transaction_id": "822994382",
                      * "purchase_date": "2017-12-06 08:23:03 Etc/GMT",
                      * "purchase_date_ms": "1512548583000",
                      * "purchase_date_pst": "2017-12-06 00:23:03
                        America/Los_Angeles",
                      * "original_purchase_date": "2017-10-27 21:37:55 Etc/GMT",
                      * "original_purchase_date_ms": "1509140275000",
                      * "original_purchase_date_pst": "2017-10-27 14:37:55
                        America/Los_Angeles",
                      * "expires_date": "2018-01-06 08:23:03 Etc/GMT",
                      * "expires_date_ms": "1515226983000",
                      * "expires_date_pst": "2018-01-06 00:23:03
                        America/Los_Angeles",
                      * "web_order_line_item_id": "822994382",
                      * "is_trial_period": "false",
                      * "is_in_intro_offer_period": "false",
                      * "in_app_ownership_type": "PURCHASED"
                     
                     },
                   * {
                      * "quantity": "1",
                      * "product_id": "some_product_id",
                      * "transaction_id": "822994382",
                      * "original_transaction_id": "822994382",
                      * "purchase_date": "2017-10-27 21:37:55 Etc/GMT",
                      * "purchase_date_ms": "1509140275000",
                      * "purchase_date_pst": "2017-10-27 14:37:55
                        America/Los_Angeles",
                      * "original_purchase_date": "2017-10-27 21:37:55 Etc/GMT",
                      * "original_purchase_date_ms": "1509140275000",
                      * "original_purchase_date_pst": "2017-10-27 14:37:55
                        America/Los_Angeles",
                      * "expires_date": "2017-11-27 22:37:55 Etc/GMT",
                      * "expires_date_ms": "1511822275000",
                      * "expires_date_pst": "2017-11-27 14:37:55
                        America/Los_Angeles",
                      * "web_order_line_item_id": "822994382",
                      * "is_trial_period": "true",
                      * "is_in_intro_offer_period": "false",
                      * "in_app_ownership_type": "PURCHASED"
                     
                     }
                  
                  ]
               
               },
             * "latest_receipt_info": [ ],
             * "latest_receipt": "apple receipt string",
             * "pending_renewal_info": [
                * {
                   * "auto_renew_product_id": "some_product_id",
                   * "product_id": "some_product_id",
                   * "original_transaction_id": "822994382",
                   * "auto_renew_status": "1"
                  
                  }
               
               ],
             * "status": 0
            
            },
          * "entitled": true
         
         },
       * {
          * "customer": {
             * "first_name": "Some",
             * "last_name": "Guy",
             * "email": "some_customer_3@provider.net"
            
            },
          * "subscription": {
             * "details": {
                * "customer_id": 452452543,
                * "product_id": 452452543,
                * "state": "active",
                * "created_at": "2023-02-26T15:18:48-05:00",
                * "canceled_at": null,
                * "cancel_at_end_of_period": false,
                * "delayed_cancel_at": null
               
               },
             * "dotstudiopro": {
                * "platform": "roku",
                * "chargify_product_id": 452452543,
                * "chargify_customer_id": 452452543
               
               }
            
            },
          * "receipt": {
             * "errorCode": null,
             * "errorDetails": null,
             * "errorMessage": "",
             * "status": 0,
             * "transactionId":
               "adfadfae-bffasdfaffe6t12-11dasfadfd-424354fad-adsfa4eer",
             * "rokuCustomerId": "asdfafewr5w452452543",
             * "purchaseDate": "/Date(1677442719021+0000)/",
             * "channelId": 452452543,
             * "channelName": "Some App Channel",
             * "productName": "Recurring Monthly",
             * "productId": "some_roku_product_id",
             * "amount": 7,
             * "tax": 0.48,
             * "total": 7.47,
             * "quantity": 1,
             * "expirationDate": "/Date(1679861919021+0000)/",
             * "originalPurchaseDate": "/Date(1677442719021+0000)/",
             * "partnerReferenceId": "",
             * "couponCode": null,
             * "cancelled": true,
             * "purchaseType": null,
             * "purchaseChannel": "DEVICE",
             * "purchaseContext": "IAP",
             * "cancelledTransactionIds": null,
             * "purchaseStatus": "Active",
             * "currency": "usd",
             * "OriginalTransactionId":
               "adfadfae-bffasdfaffe6t12-11dasfadfd-424354fad-adsfa4eer",
             * "isEntitled": true
            
            },
          * "entitled": true
         
         },
       * {
          * "customer": {
             * "email": "some_customer_4@provider.net"
            
            },
          * "subscription": {
             * "details": {
                * "customer_id": 78978245254,
                * "product_id": 78978245254,
                * "state": "canceled",
                * "created_at": "2023-02-28T13:57:53-05:00",
                * "canceled_at": "2023-02-28T14:10:19-05:00",
                * "cancel_at_end_of_period": false,
                * "delayed_cancel_at": null
               
               },
             * "dotstudiopro": {
                * "platform": "amazon_fire",
                * "chargify_product_id": 78978245254,
                * "chargify_customer_id": 78978245254
               
               }
            
            },
          * "receipt": {
             * "autoRenewing": false,
             * "betaProduct": false,
             * "cancelDate": 1677346340000,
             * "cancelReason": 1,
             * "deferredDate": null,
             * "deferredSku": null,
             * "freeTrialEndDate": null,
             * "fulfillmentDate": null,
             * "fulfillmentResult": null,
             * "gracePeriodEndDate": null,
             * "parentProductId": null,
             * "productId": "some_product_id",
             * "productType": "SUBSCRIPTION",
             * "promotions": null,
             * "purchaseDate": 1660843940000,
             * "purchaseMetadataMap": null,
             * "quantity": null,
             * "receiptId": "some receipt id string",
             * "renewalDate": null,
             * "term": "1 Month",
             * "termSku": "SOME_SKU",
             * "testTransaction": false
            
            },
          * "entitled": false
         
         },
       * {
          * "customer": {
             * "first_name": "John",
             * "last_name": "Doe",
             * "email": "some_customer_5@provider.net"
            
            },
          * "subscription": {
             * "details": {
                * "customer_id": 4845675776,
                * "product_id": 4845675776,
                * "state": "canceled",
                * "created_at": "2023-02-28T14:16:12-05:00",
                * "canceled_at": "2023-02-28T14:40:26-05:00",
                * "cancel_at_end_of_period": false,
                * "delayed_cancel_at": null
               
               },
             * "dotstudiopro": {
                * "platform": "web",
                * "chargify_product_id": 4845675776,
                * "chargify_customer_id": 4845675776
               
               }
            
            }
         
         }
      
      ]
   
   ]

}


TOKEN


OBTAIN API ACCESS TOKEN.

post/token
https://api.myspotlight.tv/token

Obtain an access token for use with the API.

The access token is a standard JSON Web Token (JWT). You may decode this token
in your code, or by using a service like https://jwt.io/, to see when it
expires. Tokens issued by the Spotlight API are valid for 30 days. After the
date in expires you will need to obtain a new token.

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

Your API key

string (APIKey)



RESPONSES

200

Success

403

Missing or invalid API key.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "key": "<your_api_key>"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"

}


USER

Create and manage customer data, customer tokens, and payments.

Please note all calls in this category require a client token as described in
the Authentication section of this documentation.


GET A CLIENT TOKEN. DEPRECATED

post/users/login
https://api.myspotlight.tv/users/login

Creates a token that can be used to validate users and be pased for subsequent
calls to /users/*

The life span of these client tokens is significantly reduced as compared to a
company identifying token. The life span is set to be 3 hours. It is recommended
to have a system in place that checks for a tokens expiry and make a call for a
refreshed client token.

The token is a standard JWT token. The decoded information in this token
contains:

  {
    "iss": "<COMPANY_THAT_ISSUED_THE_CLIENT_TOKEN>",
    "expires": "<EXPIRY_DATE_IN_MILLISECONDS_SINCE_UNIX_EPOCH>",
    "context": {
      "avatar": "<PATH TO AVATAR>",
      "id": "<USER_ID>",
      "first_name": "<FIRST_NAME>",
      "last_name": "<LAST_NAME>"
    }
  }


AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON
REQUIRED

User's login info

email
string

User email.

password
string

User password.


RESPONSES

200

Successful operation.

403

The credentials provided were not valid.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "email": "my.email@provider.com",
 * "password": "s3cret"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"

}


GET USER DETAILS.

get/users/details
https://api.myspotlight.tv/users/details

Returns a user's details.

Please note that the return may differ based on what method the user registered
with. If they registered through dotstudioPRO (native login) the return object
will contain similar data to the sample return. If they registered through a
social media provider (Facebook/Google+) the return object will contain an
additional sub-object cointaining the user info provided through that social
media's Auth service.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

403

The credentials provided were not valid.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "_id": null,
    * "avatar": "https://images.dotstudiopro.com/default_avatar/70/70/1",
    * "email": "my.email@provider.com",
    * "first_name": "John",
    * "last_name": "Doe",
    * "register": "dotstudiopro"
   
   }

}


REMOVE A USER FROM THE SYSTEM

delete/users/account/purge
https://api.myspotlight.tv/users/account/purge

Calling this route will set a user's account to be purged from dotstudioPRO's
system. This means their auth and subscription data will be completely deleted
automatically after 30 days.

Once their data is deleted, it will be as if they never had an account.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

400

The user cannot be set to delete due to an active subscription plan.

403

The credentials provided were not valid.

404

The user does not exist.

409

This user is already set to be deleted.


RESPONSE SAMPLES

 * 200
 * 409

Content type
application/json
Copy
{
 * "success": true,
 * "account_deletion_ts": 1651943341658

}



GET THE ACCOUNT DELETION DATE FOR A USER

get/users/account/purge
https://api.myspotlight.tv/users/account/purge

Get the account deletion date for a user if they have requested their account be
deleted.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

403

The credentials provided were not valid.

404

The user account does not exist.

412

The account you're querying has not requested to be deleted.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "account_deletion_ts": 1651943341658

}


REFRESH CLIENT TOKEN.

post/users/token/refresh
https://api.myspotlight.tv/users/token/refresh

Returns a fresh client token.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

403

Insufficient or invalid credentials provided.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"

}


GET PAYMENT TOKEN.

post/users/payment/token
https://api.myspotlight.tv/users/payment/token

Returns a Braintree token which can be used to generate an order with
dotstudioPRO.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation.

403

Insufficient or invalid credentials provided.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "success": true,
 * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"

}


GET ALL "RECENTLY WATCHED" DATA.

get/users/resumption/videos
https://api.myspotlight.tv/users/resumption/videos

Returns two arrays containing video objects with resumption data.

Videos viewed by the user to at least 5% completion and up to 95% completion
will be returned in the array with the key continue-watching. The minimum and
maximum values can be changed via the ct_min and ct_max query params.

Videos viewed by the user past 95% completion will be returned in the array with
the key watch-again. This can be changed via the wa_min query param.

This data may be used to construct special rails for logged in users that track
their viewing progress.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

limit
string
Default: 100

The limit of resumptions for each returned array. If you set a limit of 50, the
continue-watching and watch-again arrays will have a maximum of 50 resumptions
each.

ct_min
string
Default: 0.05

The minimum progress percentage (in decimal format) that will be used to get
continue-watching values.

ct_max
string
Default: 0.95

The limit of progress percentage (in decimal format) that will be used to get
continue-watching values.

wa_min
string
Default: 0.95

The minimum progress percentage (in decimal format) that will be used to get
watch-again values.

most_recent
number
Default: 0

Get only the most recent values from a given channel or parent channel. Without
this flag, if you watch 3 episodes of a show, that is 3 different resumption
points and will be returned as 3 different resumption points. With this flag,
you would only receive one resumption point for the show, which will be the
latest episode was watched.


RESPONSES

200

Successful operation.

403

The credentials provided were not valid.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "continue-watching": [
       * {
          * "_id": "5e41f4756b4c5d439f3ebca2",
          * "company_id": "5e41f4756b4c5d439f3ebca2",
          * "user_id": "5f21ab918f4a8e0fbc29ac86",
          * "title": "This Weeks Episode",
          * "thumb": "5e42d4e6b70e4f7f038b4862",
          * "duration": 5419,
          * "point": 645,
          * "episode": 1,
          * "updatedAt": "2020-07-29T21:05:10.488Z",
          * "channel": {
             * "_id": "5e42d4e6b70e4f7f038b4861",
             * "programming_type": "series",
             * "season": 1,
             * "slug": "some-cool-channel",
             * "title": "Some Cool Channel",
             * "poster": "https://someimage.com/img",
             * "spotlight_poster": "https://someimage.com/img"
            
            },
          * "parent_channel": {
             * "_id": "5e42d4e6b70e4f7f038b4861",
             * "title": "Some Cool Parent Channel",
             * "slug": "some-cool-parent-channel",
             * "programming_type": "series",
             * "poster": "https://someimage.com/img",
             * "spotlight_poster": "https://someimage.com/img"
            
            }
         
         }
      
      ],
    * "watch-again": [
       * {
          * "_id": "5e41f4756b4c5d439f3ebca2",
          * "company_id": "5e41f4756b4c5d439f3ebca2",
          * "user_id": "5f21ab918f4a8e0fbc29ac86",
          * "title": "This Weeks Episode",
          * "thumb": "5e42d4e6b70e4f7f038b4862",
          * "duration": 5419,
          * "point": 645,
          * "episode": 1,
          * "updatedAt": "2020-07-29T21:05:10.488Z",
          * "channel": {
             * "_id": "5e42d4e6b70e4f7f038b4861",
             * "programming_type": "series",
             * "season": 1,
             * "slug": "some-cool-channel",
             * "title": "Some Cool Channel",
             * "poster": "https://someimage.com/img",
             * "spotlight_poster": "https://someimage.com/img"
            
            },
          * "parent_channel": {
             * "_id": "5e42d4e6b70e4f7f038b4861",
             * "title": "Some Cool Parent Channel",
             * "slug": "some-cool-parent-channel",
             * "programming_type": "series",
             * "poster": "https://someimage.com/img",
             * "spotlight_poster": "https://someimage.com/img"
            
            }
         
         }
      
      ]
   
   }

}


GET "RECENTLY WATCHED" DATA FOR A VIDEO.

get/users/videos/point/{video_id}
https://api.myspotlight.tv/users/videos/point/{video_id}

Returns the value in seconds at which the user last stopped playback of this
video.

If the user has no data for this Video ID the value of point in the return will
be null

AUTHORIZATIONS:

api_key

PATH PARAMETERS

video_id
required
string

The ID of the video you wish to receive "recently watched" data for.


RESPONSES

200

Successful operation.

403

The credentials provided were not valid.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "point": 60,
    * "video_id": "59f371db9fcf707c2f967c9c"
   
   }

}


CREATE POINT DATA.

post/users/videos/point/{video_id}/{point}
https://api.myspotlight.tv/users/videos/point/{video_id}/{point}

Save user's watch progress to dotstudioPRO so it can be recovered later with the
/users/resumption/videos endpoint.

In order to ensure a user can be redirected to the appropriate channel later on
(via deep linking or selecting a "continue watching" entry in an application) it
is recommended to pass information about the channel when using this endpoint.
In the case of a standalone player embed the optional query string parameters
can be omitted.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

video_id
required
string

The ID of the video you wish to save "recently watched" data for.

point
required
number

Time (in seconds) the user has watched the video to.

QUERY PARAMETERS

channel_id
string

The ID of the channel this video is being viewed from

parent_channel_id
string

The ID of the parent channel the video is being viewed from (if applicable)


RESPONSES

200

Successful operation.

403

The credentials provided were not valid.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "data": {
    * "point": 60,
    * "user_id": "6001fc981c4fb75112aaceaa",
    * "video_id": "5f917e95bd3247663c72a762",
    * "company_id": "53fd1266d66da833047b23c6",
    * "createdAt": "2021-01-15T20:35:52.466Z",
    * "updatedAt": "2021-01-15T20:37:19.610Z",
    * "progress": 0.62
   
   }

}


VIDEO

Retrieve video data from dotstudioPRO


GET A VIDEO BY ID.

get/video/play/{video_id}/{width}/{height}
https://api.myspotlight.tv/video/play/{video_id}/{width}/{height}

Returns a video content object & playback URLs for a particular Video ID.

Note: the parameters passed to the VMAP route by mobile apps (like app_bundle)
should be passed to this route as well to support SSAI video playback.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

video_id
required
string

ID of the video you wish to retrieve.

width
required
number

Width of the player the video will be getting displayed in. Required to aid in
advertising & targeting.

height
required
number

Height of the player the video will be getting displayed in. Required to aid in
advertising & targeting.

QUERY PARAMETERS

embedded_captions
boolean

Request an HLS playback URL with embedded VTT captions.

with_chromecast
boolean

Send back a Chromecast VMAP url with the response. Used for mobile devices that
can cast to a TV so a VMAP url can be passed to the Chromecast device.


RESPONSES

200

Successful operation

400

The Video ID provided is not valid.

403

Missing or invalid API access token.

404

Video not found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "5452484e97f8154f0c092f3ec",
 * "ads": {
    * "pre": "yes",
    * "mid": "yes",
    * "post": "no",
    * "over": "no",
    * "pre_offset": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      },
    * "post_offset": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      },
    * "offsets": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      }
   
   },
 * "ad_tag": {
    * "pre": "https://adserver.com/custom_ad_tag?param=true",
    * "mid": "string",
    * "post": "string",
    * "customTagPre": true,
    * "customTagMid": false,
    * "customTagPost": false
   
   },
 * "access": "public",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "category": "Web-series",
 * "chromecast_vmap":
   "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
 * "company": {
    * "_id": "59c724ef98e82b310e85fd4c",
    * "name": "coolmovies",
    * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
    * "custom_cdn": "https://222222.ssl.hwcdn.net",
    * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
   
   },
 * "company_id": "5452484e97f8154f0c092f3ec",
 * "country": "Canada",
 * "custom_fields": [
    * {
       * "field_title": "custom_field_1",
       * "field_value": "custom_value_1"
      
      },
    * {
       * "field_title": "custom_field_2",
       * "field_value": "custom_value_2"
      
      }
   
   ],
 * "description": "A large and lovable rabbit deals with three tiny bullies, led
   by a flying squirrel,\nwho are determined to squelch his happiness.\n",
 * "directors": [
    * "Director A",
    * "Director B"
   
   ],
 * "duration": 1072,
 * "episode": 1,
 * "geoblock": "ALL",
 * "genres": [
    * "2000s animation"
   
   ],
 * "geocheck": true,
 * "is_teaser": false,
 * "language": "English",
 * "paths": { },
 * "paywall": { },
 * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "product_id": 11470,
 * "rating": "PG",
 * "roku_bif_files": {
    * "sd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
    * "hd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
    * "fhd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
   
   },
 * "season": 1,
 * "seriestitle": "Open Source Films",
 * "server_side_ads": true,
 * "slug": "big-buck-bunny",
 * "socialImage": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "status": "Uploaded",
 * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
 * "thumbs": [
    * "5ed871383d9aea7cf65b2184",
    * "5ed7f8c22f40d94404789de7",
    * "5ed7f8c12f40d94404789de6"
   
   ],
 * "title": "Big Buck Bunny",
 * "video_m3u8":
   "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
 * "vmap":
   "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET A VIDEO BY SLUG.

get/video/playbyslug/{video_slug}/{width}/{height}
https://api.myspotlight.tv/video/playbyslug/{video_slug}/{width}/{height}

Returns a video content object & playback URLs for a particular Video ID.

Note: the parameters passed to the VMAP route by mobile apps (like app_bundle)
should be passed to this route as well to support SSAI video playback.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

video_slug
required
string

Slug of the video you wish to retrieve.

width
required
number

Width of the player the video will be getting displayed in. Required to aid in
advertising & targeting.

height
required
number

Height of the player the video will be getting displayed in. Required to aid in
advertising & targeting.

QUERY PARAMETERS

embedded_captions
boolean

Request an HLS playback URL with embedded VTT captions.

with_chromecast
boolean

Send back a Chromecast VMAP url with the response. Used for mobile devices that
can cast to a TV so a VMAP url can be passed to the Chromecast device.


RESPONSES

200

Successful operation

400

The Video ID provided is not valid.

403

Missing or invalid API access token.

404

Video not found.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "5452484e97f8154f0c092f3ec",
 * "ads": {
    * "pre": "yes",
    * "mid": "yes",
    * "post": "no",
    * "over": "no",
    * "pre_offset": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      },
    * "post_offset": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      },
    * "offsets": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      }
   
   },
 * "ad_tag": {
    * "pre": "https://adserver.com/custom_ad_tag?param=true",
    * "mid": "string",
    * "post": "string",
    * "customTagPre": true,
    * "customTagMid": false,
    * "customTagPost": false
   
   },
 * "access": "public",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "category": "Web-series",
 * "chromecast_vmap":
   "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
 * "company": {
    * "_id": "59c724ef98e82b310e85fd4c",
    * "name": "coolmovies",
    * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
    * "custom_cdn": "https://222222.ssl.hwcdn.net",
    * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
   
   },
 * "company_id": "5452484e97f8154f0c092f3ec",
 * "country": "Canada",
 * "custom_fields": [
    * {
       * "field_title": "custom_field_1",
       * "field_value": "custom_value_1"
      
      },
    * {
       * "field_title": "custom_field_2",
       * "field_value": "custom_value_2"
      
      }
   
   ],
 * "description": "A large and lovable rabbit deals with three tiny bullies, led
   by a flying squirrel,\nwho are determined to squelch his happiness.\n",
 * "directors": [
    * "Director A",
    * "Director B"
   
   ],
 * "duration": 1072,
 * "episode": 1,
 * "geoblock": "ALL",
 * "genres": [
    * "2000s animation"
   
   ],
 * "geocheck": true,
 * "is_teaser": false,
 * "language": "English",
 * "paths": { },
 * "paywall": { },
 * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "product_id": 11470,
 * "rating": "PG",
 * "roku_bif_files": {
    * "sd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
    * "hd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
    * "fhd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
   
   },
 * "season": 1,
 * "seriestitle": "Open Source Films",
 * "server_side_ads": true,
 * "slug": "big-buck-bunny",
 * "socialImage": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "status": "Uploaded",
 * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
 * "thumbs": [
    * "5ed871383d9aea7cf65b2184",
    * "5ed7f8c22f40d94404789de7",
    * "5ed7f8c12f40d94404789de6"
   
   ],
 * "title": "Big Buck Bunny",
 * "video_m3u8":
   "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
 * "vmap":
   "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET A RANDOM VIDEO. DEPRECATED

get/video/random/{days}/{mrss}
https://api.myspotlight.tv/video/random/{days}/{mrss}

Returns a random video uploaded in the last <days> days.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

days
required
string

A random video uploaded in the last <days> days will be returned.

mrss
required
string
Enum: 0 1

If this parameter is set to 1 the call will an MRSS feed instead of a JSON
Object.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "_id": "5452484e97f8154f0c092f3ec",
 * "ads": {
    * "pre": "yes",
    * "mid": "yes",
    * "post": "no",
    * "over": "no",
    * "pre_offset": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      },
    * "post_offset": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      },
    * "offsets": {
       * "nonlinear": [
          * 0.001
         
         ],
       * "linear": [
          * 0.001
         
         ]
      
      }
   
   },
 * "ad_tag": {
    * "pre": "https://adserver.com/custom_ad_tag?param=true",
    * "mid": "string",
    * "post": "string",
    * "customTagPre": true,
    * "customTagMid": false,
    * "customTagPost": false
   
   },
 * "access": "public",
 * "actors": [
    * "Actor A",
    * "Actor B"
   
   ],
 * "category": "Web-series",
 * "chromecast_vmap":
   "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080?device_type=chromecast",
 * "company": {
    * "_id": "59c724ef98e82b310e85fd4c",
    * "name": "coolmovies",
    * "cast_custom_cdn": "https://111111.ssl.hwcdn.net",
    * "custom_cdn": "https://222222.ssl.hwcdn.net",
    * "media_tailor_cdn": "https://333333.ssl.hwcdn.net"
   
   },
 * "company_id": "5452484e97f8154f0c092f3ec",
 * "country": "Canada",
 * "custom_fields": [
    * {
       * "field_title": "custom_field_1",
       * "field_value": "custom_value_1"
      
      },
    * {
       * "field_title": "custom_field_2",
       * "field_value": "custom_value_2"
      
      }
   
   ],
 * "description": "A large and lovable rabbit deals with three tiny bullies, led
   by a flying squirrel,\nwho are determined to squelch his happiness.\n",
 * "directors": [
    * "Director A",
    * "Director B"
   
   ],
 * "duration": 1072,
 * "episode": 1,
 * "geoblock": "ALL",
 * "genres": [
    * "2000s animation"
   
   ],
 * "geocheck": true,
 * "is_teaser": false,
 * "language": "English",
 * "paths": { },
 * "paywall": { },
 * "poster": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "product_id": 11470,
 * "rating": "PG",
 * "roku_bif_files": {
    * "sd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-sd.bif",
    * "hd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-hd.bif",
    * "fhd":
      "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/bif/5ed7e4b6b32ab5755a17a932-fhd.bif"
   
   },
 * "season": 1,
 * "seriestitle": "Open Source Films",
 * "server_side_ads": true,
 * "slug": "big-buck-bunny",
 * "socialImage": "https://images.dotstudiopro.com/5a3aa50d99f815b87996da90",
 * "status": "Uploaded",
 * "thumb": "https://images.dotstudiopro.com/59a5a4f899f815d6403c31dd",
 * "thumbs": [
    * "5ed871383d9aea7cf65b2184",
    * "5ed7f8c22f40d94404789de7",
    * "5ed7f8c12f40d94404789de6"
   
   ],
 * "title": "Big Buck Bunny",
 * "video_m3u8":
   "https://cdn.dotstudiopro.com/videos/5ed7e4b6b32ab5755a17a932/vod/5ed7e4b6b32ab5755a17a932.m3u8",
 * "vmap":
   "https://api.myspotlight.tv/vmap/5452484e97f8154f0c092f3ec/1920/1080",
 * "writers": [
    * "Writer A",
    * "Writer B"
   
   ],
 * "year": 2020

}


GET VIDEO MRSS FEED.

get/videos/mrss
https://api.myspotlight.tv/videos/mrss

Returns an MRSS feed containing all of this company's videos.

AUTHORIZATIONS:

api_key


RESPONSES

200

Successful operation

403

Missing or invalid API access token.




VMAP


GET A VMAP DOCUMENT FOR A VIDEO

get/vmap/{video_id}/{width}/{height}
https://api.myspotlight.tv/vmap/{video_id}/{width}/{height}

Creates a VMAP XML doc based on ad parameters passed, as well as the given video
id. Please note that there are many custom macros that can be passed to this
route as query string parameters - https://www.dotstudiopro.com/adtags

Please note that authentication is not necessary for this route.

AUTHORIZATIONS:

api_key

PATH PARAMETERS

video_id
required
string

ID of the video you wish to retrieve.

width
required
number

The width of the video player requesting the VMAP

height
required
string

The height of the video player requesting the VMAP

QUERY PARAMETERS

secure
boolean

If passed, any ad tags returned will have the https:// protocol explicitly
specified. Otherwise the RFC 3986 URI identifier generic syntax will be used,
which means all ad tags returned will be prepended with //.


RESPONSES

200

Successful operation

403

Missing or invalid API access token.




WATCHLIST

Watchlists are lists that a user adds channels to in order to watch videos from
them in the future (or possibly rewatch them). When a user adds a channel to a
watchlist, that channel will be returned in the call to get the user's watchlist
channels.

If a user adds a child channel to a watchlist, it is necessary to add a parent
channel as well. If a child channel lives in multiple parent channels, an app or
website will not know which parent channel to use when routing users to their
watchlist channels, which may lead to unwanted behavior in some apps and sites.


GET A USER'S WATCHLIST.

get/watchlist/channels
https://api.myspotlight.tv/watchlist/channels

Get a list of channels that a user has added to their watchlist.

AUTHORIZATIONS:

api_key

QUERY PARAMETERS

exclude_live
string
Example: exclude_live=1

Exclude channels with a programming type of "Live Broadcast" from appearing in
the result.

exclude_vod
string
Example: exclude_vod=1

Include only channels that have a programming type of "Live Broadcast" in the
result.


RESPONSES

200

Successful operation

400

Missing or invalid client token.

401

Unauthorized client token.

403

Missing or invalid API access token.

407

No client token present.


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "channels": [
    * {
       * "_id": "12345678910",
       * "title": "Cool Series | Season 1",
       * "description": "Cool SEries description",
       * "company_id": "01987654321",
       * "poster": "https://images.dotstudiopro.com/abcdefg",
       * "spotlight_poster": "https://images.dotstudiopro.com/hijklmno",
       * "slug": "cool-series-season-1"
      
      }
   
   ]

}


ADD TO A USER'S WATCHLIST.

post/watchlist/channels/add
https://api.myspotlight.tv/watchlist/channels/add

Add a channel to a user's watchlist.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON

To add a channel without a parent channel, pass channel_id OR slug in the body.
To add a parent channel as well, pass parent_channel_id OR parent_channel_slug
in the body with the child channel_id OR slug.

channel_id
string

The channel id to add to the user's watchlist

slug
string

The channel slug to add to the user's watchlist

parent_channel_id
string

A parent channel_id a user wishes to add to their watchlist

parent_channel_slug
string

A parent channel slug a user wishes to add to their watchlist


RESPONSES

200

Successful operation

400

Missing or invalid client token, or missing channel_id/slug.

401

Unauthorized client token.

403

Missing or invalid API access token.

407

No client token present.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "channel_id": "5ab29fdb6ee98b644a93b649",
 * "parent_channel_id": "5ab29fdb6ee98b644a93b650"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "result": [
    * {
       * "_id": "12345678910",
       * "customer_id": "01987654321",
       * "company_id": "01987654321",
       * "channels": [
          * {
             * "channel_id": "5ab29fdb6ee98b644a93b649",
             * "parent_channel_id": "5ab29fdb6ee98b644a93b650"
            
            }
         
         ]
      
      }
   
   ]

}


DELETE A CHANNEL FROM A USER'S WATCHLIST.

delete/watchlist/channels/delete
https://api.myspotlight.tv/watchlist/channels/delete

Remove a channel from the user's watchlist array.

AUTHORIZATIONS:

api_key

REQUEST BODY SCHEMA: APPLICATION/JSON

The id of the channel the user wishes to remove from their watchlist.

channel_id
string

A channel_id a user wishes to remove from their watchlist


RESPONSES

200

Successful operation

400

Missing or invalid client token, or missing channel_id.

401

Unauthorized client token.

403

Missing or invalid API access token.

407

No client token present.


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "channel_id": "5ab29fdb6ee98b644a93b649"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "success": true,
 * "result": [
    * {
       * "_id": "12345678910",
       * "customer_id": "01987654321",
       * "channels": [
          * {
             * "channel_id": "5ab29fdb6ee98b644a93b649",
             * "parent_channel_id": "5ab29fdb6ee98b644a93b650"
            
            }
         
         ]
      
      }
   
   ]

}


WEBHOOKS

The dotstudioPRO CMS is able to notify of any changes to content via Webhooks.
The Webhooks can be tested anytime by creating a temporary Webhook listener at
https://webhook.site/ and adding the resulting URL to your dashboard.

The following Webhooks are available, and can be subscribed to from the
dashboard by opening the user menu sidebar and clicking on Settings -> Company
-> Webhooks.

Add Video

 * Webhook Trigger: new video is uploaded
 * HTTP Method: POST
 * Webhook Body: video object

Edit Video

 * Webhook Trigger: existing video metadata is edited
 * HTTP Method: PUT
 * Webhook Body: updated video object

Add Channel

 * Webhook Trigger: new channel is published
 * HTTP Method: POST
 * Webhook Body: channel object

Edit Channel

 * Webhook Trigger: published channel metadata is edited
 * HTTP Method: PUT
 * Webhook Body: updated channel object

Delete Channel

 * Webhook Trigger: a previously pubished channel is unpublished
 * HTTP Method: DELETE
 * Webhook Body: channel ID

Add Category

 * Webhook Trigger: new category is created
 * HTTP Method: POST
 * Webhook Body: category object

Edit Category

 * Webhook Trigger: existing category metadata is edited
 * HTTP Method: PUT
 * Webhook Body: updated category object

DELETE Category - category is deleted

 * Webhook Trigger: existing category is deleted
 * HTTP Method: DELETE
 * Webhook Body: category ID