Meta Service

The meta service is used to provide the details about film and TV shows.

Summary: Update the items of a bundle
Authentication: X-Auth Admin
                      PUT /services/meta/v1/bundles/[bundle_id]/items
                    

Description

Use this API to update only the items of a bundle. This API is only accessible to users who have the admin role.

Request Parameters

Parameter Required Description
items string Ordered array of slugs of items in this bundle.

Response Parameters

Parameter Required Description
items string Ordered array of slugs of items in this bundle.

Examples

Update Items for Bundle 10

curl -i 'https://store.shift72.com/services/meta/v1/bundles/10/items' \
  -X PUT \
  -H 'x-auth-token: a7499b7029d80791ff18834fec73aeef' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '["/film/52"]'

Response: Success

HttpStatus: 200
[  
   "/film/52"
]

Response: Bundle Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Get a bundle
Authentication: X-Auth Admin
                      GET /services/meta/v1/bundles/[bundle_id]
                    

Description

Use this API to get the specified bundle. This API is only accessible to users who have the admin role.

Response Parameters

Parameter Type Description
id number The unique ID of the bundle.
title string The identifiable name of the bundle.
tagline string A brief description about the bundle.
description string A description of the bundle.
status string “draft” or “published”
published_date string The date the bundle was published on the site.
seo_title string The title of the bundle, used for SEO.
seo_keywords string Keywords used for SEO.
seo_description string Description used for SEO.
header_image string URL to the header image.
portrait_image string URL to the portrait image.
landscape_image string URL to the landscape image.
carousel_image string URL to the carousel image.
bg_image string URL to the background image.
promo_url string URL to a promotional MP4 video.
created_at string The ISO 8601 time and date the bundle was created.
updated_at string The ISO 8601 time and date the bundle was last updated.
items string Ordered array of slugs of items in this bundle.
external_id string A text field that can be used to store an ID from an external system.
external_id2 string A text field that can be used to store an ID from an external system.

Examples

Request Bundle 5

curl -i 'https://store.shift72.com/services/meta/v1/bundles/5' \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b'

Response: Success

HttpStatus: 200
{  
   "id":5,
   "title":"Test Bundle",
   "tagline":"The tagline for a bundle goes here",
   "description":null,
   "status":"draft",
   "published_date":null,
   "seo_title":"metatitle",
   "seo_keywords":"meta key words",
   "seo_description":"metadescription",
   "header_image":null,
   "portrait_image":null,
   "landscape_image":null,
   "carousel_image":null,
   "created_at":"2016-10-07T02:49:32.349Z",
   "updated_at":"2016-10-07T02:50:43.921Z",
   "external_id":"ID1234",
   "external_id2":"ID5678",
   "items":[  
      "/film/200",
      "/film/110",
      "/tv/4/season/1",
      "/film/140",
      "/film/52"
   ]
}

Response: Bundle Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Create a bundle
Authentication: X-Auth Admin
                      POST /services/meta/v1/bundles
                    

Description

Use this API to create a new bundle. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Bundle data.

Response Parameters

Returns Bundle.

Examples

Create a New Bundle

curl -i 'https://store.shift72.com/services/meta/v1/bundles' \
  -X POST \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
     "title":"Five for a fiver",
     "tagline":"Five films for five dollars"
  }'

Response: Success

HttpStatus: 200
{  
   "id":11,
   "title":"Five for a fiver",
   "tagline":"Five films for five dollars",
   "description":null,
   "status":"draft",
   "published_date":null,
   "seo_title":null,
   "seo_keywords":null,
   "seo_description":null,
   "header_image":null,
   "portrait_image":null,
   "landscape_image":null,
   "carousel_image":null,
   "created_at":"2016-10-17T20:00:47.469Z",
   "updated_at":"2016-10-17T20:00:47.469Z",
   "items":[]
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete a bundle
Authentication: X-Auth Admin
                      DELETE /services/meta/v1/bundles/[bundle_id]
                    

Description

Use this API to delete a specific bundle. This API is only accessible to users who have the admin role.

Examples

Delete Bundle 11

curl -i 'https://store.shift72.com/services/meta/v1/bundles/11' \
  -X DELETE \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b'

Response: Success

HttpStatus: 204

Response: Bundle Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: List all of the bundles
Authentication: None, X-Auth Admin
                      GET /services/meta/v1/bundles
                    

Description

Use this API to get a list of bundles.

Response Parameters

Returns an array of Bundles.

Examples

Request Bundles

curl -i 'https://store.shift72.com/services/meta/v1/bundles'

Response: Success

HttpStatus: 200
[
  {
    "id": 1,
    "title": "5 for a fiver",
    "tagline": "5 films for five dollars",
    "description": "5 films for five dollars",
    "status": "draft",
    "published_date": null,
    "seo_title": "5 for a fiver",
    "seo_keywords": "",
    "seo_description": "5 films for five dollars",
    "header_image": null,
    "portrait_image": null,
    "landscape_image": null,
    "carousel_image": null,
    "bg_image":null,
    "promo_url":null,
    "created_at": "2016-10-06T02:42:10.359Z",
    "updated_at": "2016-10-11T02:57:53.360Z",
    "items": [
      "/film/140",
      "/film/141",
      "/film/142",
      "/film/143",
      "/film/53"
    ]
  },
  {
    "id": 5,
    "title": "Test Bundle",
    "tagline": "The tagline for a bundle goes here",
    "description": null,
    "status": "draft",
    "published_date": null,
    "seo_title": "metatitle",
    "seo_keywords": "meta key words",
    "seo_description": "metadescription",
    "header_image": null,
    "portrait_image": null,
    "landscape_image": null,
    "carousel_image": null,
    "bg_image":null,
    "promo_url":null,
    "created_at": "2016-10-07T02:49:32.349Z",
    "updated_at": "2016-10-07T02:50:43.921Z",
    "items": [
      "/film/200",
      "/film/110",
      "/tv/4/season/1",
      "/film/140",
      "/film/52"
    ]
  }
]
Summary: Request owned bundles
Authentication: X-Auth
                      GET /services/meta/v1/bundles/owned
                    

Description

Use this API to get a list of bundles that you have edit permissions for.

Response Parameters

Returns Bundle.

Examples

Request Owned Bundles

curl -i 'https://store.shift72.com/services/meta/v1/bundles/owned' \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'x-bypass-cache: 1'

Response: Success

HttpStatus: 200
[
  {
    "id": 33,
    "title": "Family Bundle",
    "tagline": "Three great movies at a great price",
    "description": "We selected three of our top films that your family will love as our Family Bundle. ",
    "status": "published",
    "published_date": "2018-05-09T00:18:36.932Z",
    "seo_title": null,
    "seo_keywords": null,
    "seo_description": null,
    "portrait_image": "/posters-and-backdrops/282x422/bundle/33/5c02c3858d4c238a6400500bf85941ac.jpg",
    "landscape_image": "/posters-and-backdrops/585x330/bundle/33/241adc00a9f2a2c867e249e13e0d47b8.jpg",
    "carousel_image": null,
    "created_at": "2018-05-08T22:19:21.219Z",
    "updated_at": "2018-05-09T00:18:36.944Z",
    "bg_image": null,
    "promo_url": null,
    "external_id": null,
    "external_id2": null,
    "items": [
      "/film/8065",
      "/film/8064",
      "/film/8102"
    ]
  }
]

Response: No Owned Bundles

HttpStatus: 200
[]
Summary: Update a bundle
Authentication: X-Auth Admin
                      PUT /services/meta/v1/bundles/[bundle_id]
                    

Description

Use this API to update a specific bundle. Note that if the items are updated, any users who have already purchased the bundle will not receive any new items added, or have any items taken away. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Bundle data.

Response Parameters

Returns Bundle.

Examples

Update Bundle 11

curl -i 'https://store.shift72.com/services/meta/v1/bundles/11' \
  -X PUT \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "title":"Five for $5",
    "tagline":"Five films for five dollars.",
    "description":"Enjoy these five films for only $5.",
    "status":"draft",
    "published_date":null,
    "seo_title":null,
    "seo_keywords":null,
    "seo_description":null,
    "header_image":null,
    "portrait_image":null,
    "landscape_image":null,
    "carousel_image":null,
    "bg_image":null,
    "promo_url":null,
    "created_at":"2016-10-17T19:48:25.950Z",
    "updated_at":"2016-10-17T19:48:25.950Z",
    "items":[ ]
}'

Response: Success

HttpStatus: 200
{  
   "id":11,
   "title":"Five for $5",
   "tagline":"Five films for five dollars.",
   "description":"Enjoy these five films for only $5.",
   "status":"draft",
   "published_date":null,
   "seo_title":null,
   "seo_keywords":null,
   "seo_description":null,
   "header_image":null,
   "portrait_image":null,
   "landscape_image":null,
   "carousel_image":null,
   "bg_image":null,
   "promo_url":null,
   "created_at":"2016-10-17T20:00:47.469Z",
   "updated_at":"2016-10-17T20:09:19.209Z",
   "items":[ ]
}

Response: Bundle Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Create a classification record for the specified content
Authentication: X-Auth Admin
                      POST /services/meta/v1/classification/[slug]
                    

Description

Use this API to create a classification record for the given film. Provided the submitted country code and slug are unique, a new record will be created. This API is only available to users with the Admin role.

Request Parameters

Parameter Type Description
country_code string ISO 3166-1 two-letter country code
label string Classification of the film
description string Any further information relevant to the classification

Response Parameters

Returns the new Classification record. The country_code value will be converted to lowercase.

Examples

Add a New Classification to Film 71

curl -i 'https://store.shift72.com/services/meta/v1/classification/film/71' \
 -H 'x-auth-token: 6d7f5aa97fxi516e8af1b669c48f4970' \
 -H 'Content-type: application/json' \
 -X POST \
 --data '{ "country_code": "NZ", "label": "Label like PG or G", "description": "Suitable for mature audiences" }'

Response: Success

HttpStatus: 200
{
   "id":9,
   "slug":"/film/71",
   "country_code": "nz",
   "label": "Label like PG or G",
   "description": "Suitable for mature audiences"
}

Response: Missing JSON Fields

HttpStatus: 422
{
   "error":"missing type",
   "code":"missing_type"
}

Response: Non-unique Record

HttpStatus: 409
{
  "error": "Matching record already exists",
  "code": "matching_record_already_exists"
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete a classification
Authentication: X-Auth Admin
                      DELETE /services/meta/v1/classification/[id]
                    

Description

Use this API to delete a classification record. This API is only available to users with the Admin role.

Examples

Delete Classification with ID 9

curl -i 'https://store.shift72.com/services/meta/v1/classification/9' \
  -X DELETE \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 204

Response: No Matching Record

HttpStatus: 404

Response: Unauthorized

HttpStatus: 401
Summary: Update a classification for the specified content
Authentication: X-Auth Admin
                      PUT /services/meta/v1/classification/[slug]
                    

Description

Use this API to update a classification record for the given film. If there is a record matching the submitted slug and country code, it will be updated. If no such matching record is found, an error will be returned. This API is only available to users with the Admin role.

Request Parameters

Parameter Type Description
country_code string ISO 3166-1 two-letter country code
label string Classification of the film
description string Any further information relevant to the classification

Response Parameters

Returns the new Classification record. The value of country_code will be converted to lowercase.

Examples

Add a New Classification to Film 71

curl -i 'https://store.shift72.com/services/meta/v1/classification/film/71' \
 -H 'x-auth-token: 6d7f5aa97fxi516e8af1b669c48f4970' \
 -H 'Content-type: application/json' \
 -X PUT \
 --data '{ "country_code": "NZ", "label": "Label like PG or G", "description": "Suitable for mature audiences" }'

Response: Success

HttpStatus: 200
{
   "id":9,
   "slug":"/film/71",
   "country_code": "nz",
   "label": "Label like PG or G",
   "description": "Suitable for mature audiences"
}

Response: Missing JSON Fields

HttpStatus: 422
{
   "error":"missing type",
   "code":"missing_type"
}

Response: No Matching Record

HttpStatus: 404

Response: Unauthorized

HttpStatus: 401
Summary: Request classifications for the specified content
Authentication: X-Auth
                      GET /services/meta/v1/classification/[slug]
                    

Description

Use this API to get a list of the classifications records for this slug. The records will be ordered alphabetically by country code.

Response Parameters

Parameter Type Description
id number Unique ID of this classification record.
slug string Slug of the film.
country_code string ISO 3166-1 two-letter country code (lowercase)
label string Classification of the film
description string Any further information relevant to the classification

Examples

Request Classifications for Film 59

curl -i 'https://store.shift72.com/services/meta/v1/classification/film/59' \
  -H 'x-auth-token: 7e628644bf631464bcf68575bcd8f49e'

Response: Success

HttpStatus: 200
[
   {
      "id":2,
      "slug":"/film/59",
      "country_code":"ru",
      "label":"PG",
      "description":"Suitable for 13 and older"
   },
   {
      "id":1,
      "slug":"/film/59",
      "country_code":"sg",
      "label":"G",
      "description":"Suitable for all languages"
   }
]

Response: Unauthorized

HttpStatus: 401
Summary: Request a collection of featured items
Authentication: None
                      GET /services/meta/v4/featured/[collection_id]
                    

Description

Use this API to get a collection of items that are typically shown together in a carousel or slider.

Response Parameters

Parameter Required Description
id number The unique ID of the collection.
title string The identifiable name of the collection.
title_slug string The slug of the collection.
description string A description of the collection.
created_at string Deprecated. This is no longer used.
updated_at string Deprecated. This is no longer used.
display_name string The display name for the featured item.
search_query string Items returned will be based on this search query.
items_per_row string Configuration of number of items to display per row.
item_layout string Configuration of layout type between portrait and landscape.
header_image string URL to an image to be used as the header.
carousel_image string URL to an image to be used in the carousel.
portrait_image string URL to an image to be used in portrait lists and sliders.
landscape_image string URL to an image to be used in landscape lists and sliders.
seo_title string The title of the page used for SEO.
seo_keywords string Keywords used for SEO.
seo_description string Description used for SEO.
items string Ordered array of slugs of items in this collection.

Examples

Request Collection 20

curl -i 'https://store.shift72.com/services/meta/v4/featured/20'

Response: Success

HttpStatus: 200
{
  "id":20,
  "title":"2. Staff Picks",
  "title_slug":"home_page_slider",
  "description":"**Only the Most Exceptional Films Become a Staff Pick.**  \n  \nWe are always searching for the best films to watch and here we share our favorites with you.",
  "created_at":"2014-08-21T01:00:22.932Z",
  "updated_at":"2015-07-09T03:07:09.926Z",
  "display_name":"Staff Picks",
  "search_query":null,
  "items_per_row":4,
  "item_layout":"portrait",
  "header_image":null,
  "carousel_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "items":[
    "/film/83",
    "/film/69",
    "/film/80",
    "/film/65",
    "/film/73",
    "/film/71",
    "/film/79",
    "/film/119",
    "/tv/1/season/4/episode/2"
  ]
}

Response: Collection Doesn’t Exist

HttpStatus: 404
{
  "error":"The resource does not exist."
}
Summary: Create a collection of featured items
Authentication: X-Auth Admin
                      POST /services/meta/v4/featured
                    

Description

Use this API to create a collection of items. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Collection data.

Response Parameters

Returns Collection.

Examples

Create a New Collection

curl -i 'https://store.shift72.com/services/meta/v4/featured' \
  -X POST \
  -H 'x-auth-token: a7499b7029d80791ff18834fec73aeef' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "feature":{  
      "title":"Recent Releases",
      "title_slug":"recent-releases",
      "item_layout":"portrait",
      "items_per_row":6
    }
  }'

Response: Success

HttpStatus: 200
{  
  "id":126,
  "title":"Recent Releases",
  "title_slug":"recent-releases",
  "description":null,
  "created_at":"2015-07-09T04:08:32.852Z",
  "updated_at":"2015-07-09T04:08:32.852Z",
  "display_name":null,
  "search_query":null,
  "items_per_row":6,
  "item_layout":"portrait",
  "header_image":null,
  "carousel_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "items":[  
  ]
}

Response: Title Slug Already Used

HttpStatus: 422
{  
  "error":{  
    "title_slug":[  
      "The title slug has already been taken."
    ]
  }
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete a collection of featured items
Authentication: X-Auth Admin
                      DELETE /services/meta/v4/featured/[collection_id]
                    

Description

Use this API to delete a collection of items by the featured ID. This API is only accessible to users who have the admin role.

Response Parameters

Parameter Type Description
error string A message that provides more information about the error.

Examples

Delete Collection with Feature ID 126

curl -i 'https://store.shift72.com/services/meta/v4/featured/126' \
  -X DELETE \
  -H 'x-auth-token: a7499b7029d80791ff18834fec73aeef'

Response: Success

HttpStatus: 204

Response: Collection Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Request all of the collections of featured items
Authentication: None
                      GET /services/meta/v4/featured
                    

Description

Use this API to get a list of all of the collections.

Response Parameters

Returns an array of Collections.

Examples

curl -i 'https://store.shift72.com/services/meta/v4/featured'

Response: Success

HttpStatus: 200
[
  {
    "id":30,
    "title":"1. Home page carousel",
    "title_slug":"home_page_carousel",
    "description":"",
    "created_at":"2014-08-31T23:32:37.930Z",
    "updated_at":"2015-05-29T01:23:19.595Z",
    "display_name":null,
    "search_query":null,
    "items_per_row":4,
    "item_layout":"portrait",
    "header_image":null,
    "carousel_image":null,
    "portrait_image":null,
    "landscape_image":null,
    "seo_title":null,
    "seo_keywords":null,
    "seo_description":null,
    "items":[
      "/film/98",
      "/film/65",
      "/film/94",
      "/film/80",
      "/tv/1/season/1",
      "/film/81",
      "/tv/5/season/1/episode/23"
    ]
  },
  {
    "id":20,
    "title":"2. Staff Picks",
    "title_slug":"home_page_slider",
    "description":"**Only the Most Exceptional Films Become a Staff Pick.**  \n  \nWe are always searching for the best films to watch and here we share our favorites with you.",
    "created_at":"2014-08-21T01:00:22.932Z",
    "updated_at":"2015-06-30T04:05:47.835Z",
    "display_name":"Staff Picks",
    "search_query":null,
    "items_per_row":4,
    "item_layout":"portrait",
    "header_image":null,
    "carousel_image":null,
    "portrait_image":null,
    "landscape_image":null,
    "seo_title":null,
    "seo_keywords":null,
    "seo_description":null,
    "items":[
      "/film/83",
      "/film/69",
      "/film/80",
      "/film/65",
      "/film/73",
      "/film/71",
      "/film/79",
      "/film/119",
      "/tv/1/season/4/episode/2"
    ]
  },
  {
    "id":33,
    "title":"3. Documentaries",
    "title_slug":"home_page_slider2",
    "description":"Get lost in another world with stories told by some of the most insane global citizens.",
    "created_at":"2014-09-09T04:31:14.617Z",
    "updated_at":"2015-06-30T23:14:39.289Z",
    "display_name":"Documentaries",
    "search_query":null,
    "items_per_row":6,
    "item_layout":"portrait",
    "header_image":null,
    "carousel_image":null,
    "portrait_image":null,
    "landscape_image":null,
    "seo_title":null,
    "seo_keywords":null,
    "seo_description":null,
    "items":[
      "/tv/1/season/1",
      "/film/72",
      "/film/75",
      "/film/77",
      "/film/70",
      "/film/97",
      "/film/82",
      "/film/81",
      "/film/64",
      "/film/71",
      "/film/79",
      "/film/93",
      "/film/78",
      "/film/65",
      "/film/92",
      "/film/119"
    ]
  }
]
Summary: Request the items of a collection
Authentication: None
                      GET /services/meta/v4/featured/[collection_id]/items
                    

Description

Use this API to get the items of a specific collection. The item can be a link to a film, TV season, another collection or a page.

Response Parameters

Parameter Type Description
id number The unique ID of the collection item.
featured_id number The collection ID that this item belongs to.
film_id number The unique ID of the film.
tv_id number The unique ID of the TV show.
season_id number The season number of the TV show.
episode_id number The episode number (within the season) of the TV show.
position number The position of this item within the collection
created_at string Deprecated. This is no longer used.
updated_at string Deprecated. This is no longer used.
linked_feature_id string The unique ID of the collection.
page_id string The unique ID of the page.

Examples

curl -i 'https://store.shift72.com/services/meta/v4/featured/20/items'

Response: Success

HttpStatus: 200
[
  {
    "id":239,
    "feature_id":20,
    "film_id":83,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":0,
    "created_at":"2014-08-27T03:47:04.359Z",
    "updated_at":"2015-06-30T23:14:01.747Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":326,
    "feature_id":20,
    "film_id":69,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":1,
    "created_at":"2014-09-10T04:34:58.121Z",
    "updated_at":"2015-06-30T23:14:01.757Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":211,
    "feature_id":20,
    "film_id":80,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":2,
    "created_at":"2014-08-21T01:00:22.936Z",
    "updated_at":"2015-06-30T23:14:01.766Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":225,
    "feature_id":20,
    "film_id":65,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":3,
    "created_at":"2014-08-22T04:00:57.679Z",
    "updated_at":"2015-06-30T23:14:01.775Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":474,
    "feature_id":20,
    "film_id":73,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":4,
    "created_at":"2014-10-08T21:45:38.218Z",
    "updated_at":"2015-06-30T23:14:01.782Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":228,
    "feature_id":20,
    "film_id":71,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":5,
    "created_at":"2014-08-22T04:00:57.684Z",
    "updated_at":"2015-06-30T23:14:01.791Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":320,
    "feature_id":20,
    "film_id":79,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":6,
    "created_at":"2014-09-10T03:07:23.696Z",
    "updated_at":"2015-06-30T23:14:01.798Z",
    "linked_feature_id":null,
    "page_id":null
  },
  {
    "id":1586,
    "feature_id":20,
    "film_id":119,
    "tv_id":null,
    "season_id":null,
    "episode_id":null,
    "position":7,
    "created_at":"2015-06-16T21:00:20.502Z",
    "updated_at":"2015-06-30T23:14:01.806Z",
    "linked_feature_id":null,
    "page_id":null
  }
]

Response: Collection Doesn’t Exist

HttpStatus: 404
{
  "error":"The resource does not exist."
}
Summary: Update the items of a collection
Authentication: X-Auth Admin
                      PUT /services/meta/v4/featured/[collection_id]/items
                    

Description

Use this API to update only the items of a collection. This API is only accessible to users who have the admin role.

Request Parameters

Parameter Required Description
items string Ordered array of slugs of items in this collection.

Response Parameters

Returns Collection Items.

Examples

Update Collection Items with Feature ID 125

curl -i 'https://store.shift72.com/services/meta/v4/featured/125/items' \
  -X PUT \
  -H 'x-auth-token: a7499b7029d80791ff18834fec73aeef' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "items":[  
      {  
        "item":"/film/91"
      },
      {  
        "item":"/film/75"
      }
    ]
  }'

Response: Success

HttpStatus: 200
{  
  "items":[  
    {  
      "id":1735,
      "feature_id":125,
      "film_id":91,
      "tv_id":null,
      "season_id":null,
      "episode_id":null,
      "position":0,
      "created_at":"2015-07-12T21:23:36.471Z",
      "updated_at":"2015-07-12T21:23:36.477Z",
      "linked_feature_id":null,
      "page_id":null
    },
    {  
      "id":1736,
      "feature_id":125,
      "film_id":75,
      "tv_id":null,
      "season_id":null,
      "episode_id":null,
      "position":1,
      "created_at":"2015-07-12T21:23:36.485Z",
      "updated_at":"2015-07-12T21:23:36.490Z",
      "linked_feature_id":null,
      "page_id":null
    }
  ]
}

Response: Collection Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Update a collection of featured items
Authentication: X-Auth Admin
                      PUT /services/meta/v4/featured/[collection_id]
                    

Description

Use this API to update a collection of items by the featured ID. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Collection data.

Response Parameters

Returns Collection.

Examples

Update Collection with Feature ID 125

curl -i 'https://store.shift72.com/services/meta/v4/featured/125' \
  -X PUT \
  -H 'x-auth-token: a7499b7029d80791ff18834fec73aeef' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "feature":{
      "id":125,
      "title":"New Releases",
      "title_slug":"new-releases",
      "description":null,
      "created_at":"2015-07-09T03:50:38.184Z",
      "updated_at":"2015-07-12T21:01:23.326Z",
      "display_name":"New Releases",
      "search_query":null,
      "items_per_row":6,
      "item_layout":"portrait",
      "header_image":null,
      "carousel_image":null,
      "portrait_image":null,
      "landscape_image":null,
      "seo_title":null,
      "seo_keywords":null,
      "seo_description":null,
      "items":[
        "/film/91",
        "/film/75",
        "/tv/3/season/12",
        "/tv/1/season/1/episode/1"
      ]
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":125,
  "title":"New Releases",
  "title_slug":"new-releases",
  "description":null,
  "created_at":"2015-07-09T03:50:38.184Z",
  "updated_at":"2015-07-12T21:18:02.577Z",
  "display_name":"New Releases",
  "search_query":null,
  "items_per_row":6,
  "item_layout":"portrait",
  "header_image":null,
  "carousel_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "items":[
    "/film/91",
    "/film/75",
    "/tv/3/season/12",
    "/tv/1/season/1/episode/1"
  ]
}

Response: Collection Doesn’t Exist

HttpStatus: 404
{
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Request meta configuration settings
Authentication: None
                      GET /services/meta/configuration
                    

Description

Use this API to get the configuration settings for the Meta service.

Response Parameters

Parameter Type Description
image_root_path string Deprecated. The root url of where images are stored. This may use a CDN so it may take a while for images to update on this path.
admin_image_root_path string Deprecated. The root url of where images are stored. This does not use a CDN so updated images will show immediately. If this value does not exist the image_root_path should be used.
classification_image_path string Deprecated. The image path for classification images.
landscape_poster_path string Deprecated. The image path for landscape poster images.
portrait_poster_path string Deprecated. The image path for portrait poster images.
header_image_path string Deprecated. The image path for header poster images.
media_item_caption_genres_count string Optional. The maximum number of genres to show underneath the film title.
media_item_caption string Optional. Set to “true” if the title is shown underneath the poster. If not present the default is false.
search_disabled string Optional. Set to “true” if the search functionality is hidden. If not present the default is false.
carousel_maximum_item_limit string The maximum number of items that can appear in a carousel.
slider_maximum_item_limit string The maximum number of items that can appear in a slider.

Examples

Meta Configuration Request

curl -i 'https://store.shift72.com/services/meta/configuration'

Response: Success

HttpStatus: 200
{  
  "classification_image_path":"/posters-and-backdrops/170x70",
  "image_root_path":"https://s3-ap-southeast-2.amazonaws.com/s72-client-2-assets/production",
  "landscape_poster_path":"/posters-and-backdrops/585x330",
  "portrait_poster_path":"/posters-and-backdrops/282x422",
  "header_image_path":"/posters-and-backdrops/1200x422",
  "media_item_caption":"true",
  "media_item_caption_genres_count":"4"
}
Summary: Request admin configuration settings
Authentication: X-Auth Admin
                      GET /services/meta/v1/configuration/private
                    

Description

Use this API to get the configuration settings that can be changed by an administrator. These configuration settings may include private settings that are only visible to administrators. This API is only accessible to users who have the admin role.

Response Parameters

Parameter Type Description
seo_site_name string The name of the client site.
seo_keywords string Keywords used for SEO. These are used on all pages.
seo_title_prefix string A prefix that appears before the normal page title.
seo_title_suffix string A suffix that appears after the normal page title.
media_item_caption_genres_count string Optional. The maximum number of genres to show underneath the film title.
media_item_caption string Optional. Set to “true” if the title is shown underneath the poster. If not present the default is false.
search_disabled string Optional. Set to “true” if the search functionality is hidden. If not present the default is false.

Examples

Admin Configuration Request

curl -i 'https://store.shift72.com/services/meta/v1/configuration/private' \
  -H 'x-auth-token: 7e628644bf631464bcf68575bcd8f89e'

Response: Success

HttpStatus: 200
{  
  "seo_title_prefix":"Prefix |",
  "seo_site_keywords":"SHIFT72, Demo, On Demand",
  "seo_site_name":"SiteName.",
  "seo_title_suffix":"| The End",
  "search_disabled":true,
  "media_item_caption_genre_counts":5.0,
  "media_item_caption":false
}

Response: Unauthorized

HttpStatus: 401
Summary: Update admin configuration settings
Authentication: X-Auth Admin
                      PATCH /services/meta/v1/configuration/private
                    

Description

Use this API to update the configuration settings for the site. These configuration settings may include private settings that are only visible to administrators. This API is only accessible to users who have the admin role.

Request Parameters

Parameter Type Description
seo_site_name string Optional. The name of the client site.
seo_keywords string Optional. Keywords used for SEO. These are used on all pages.
seo_title_prefix string Optional. A prefix that appears before the normal page title.
seo_title_suffix string Optional. A suffix that appears after the normal page title.
media_item_caption_genres_count string Optional. The maximum number of genres to show underneath the film title.
media_item_caption string Optional. Set to “true” if the title is shown underneath the poster. If not present the default is false.
search_disabled string Optional. Set to “true” if the search functionality is hidden. If not present the default is false.

Response Parameters

Returns Configuration (Admin).

Examples

Update SEO Title Suffix

curl -i 'https://store.shift72.com/services/meta/v1/configuration/private' \
  -X PATCH \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{ "seo_title_suffix":"| Watch On Demand" }'

Response: Success

HttpStatus: 200
{  
  "seo_title_prefix":"Prefix |",
  "seo_site_keywords":"SHIFT72, Demo, On Demand",
  "seo_site_name":"SiteName.",
  "seo_title_suffix":"| Watch On Demand",
  "search_disabled":true,
  "media_item_caption_genre_counts":5.0,
  "media_item_caption":false
}

Response: Key Doesn’t Exist

HttpStatus: 400
{
  "error":"Bad request, request contains invalid key."
}

Response: Unauthorized

HttpStatus: 401
Summary: Get a content page
Authentication: X-Auth Admin
                      GET /services/meta/v1/pages/[page_id]
                    

Description

Use this API to get the specified page. This API is only accessible to users who have the admin role.

Response Parameters

Parameter Type Description
id number The unique Content Page ID.
title string The title of the page.
slug string The slug of the page.
page_type string The type of page: content, curated, homepage or external.
content string The content of the page styled with markdown.
seo_title string The title of the page used for SEO.
seo_keywords string Keywords used for SEO.
seo_description string Description used for SEO.
header_image string URL to the header image.
portrait_image string URL to the portrait image.
landscape_image string URL to the landscape image.
carousel_image string URL to the carousel image.
created_at string The ISO 8601 time and date the page was created.
updated_at string The ISO 8601 time and date the page was last updated.
published bool Set to true if the page is published on the site.
page_features array Ordered array of Page Collections that are to be displayed on the site.
url string URL used when the page_type is set to external.
tagline string A brief description about the page that can be displayed in a slider.

Examples

Request Page 25

curl -i 'https://store.shift72.com/services/meta/v1/pages/25' \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b'

Response: Success

HttpStatus: 200
{  
  "id":41,
  "title":"Home",
  "slug":"home",
  "page_type":"homepage",
  "content":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "header_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "carousel_image":null,
  "created_at":"2015-05-27T01:58:55.901Z",
  "updated_at":"2015-06-04T04:11:30.813Z",
  "published":true,
  "page_features":[  
    {  
      "feature_id":24,
      "layout":"carousel",
      "items_per_row":4,
      "item_layout":"portrait"
    },
    {  
      "feature_id":16,
      "layout":"list",
      "items_per_row":6,
      "item_layout":"portrait"
    },
    {  
      "feature_id":26,
      "layout":"slider",
      "items_per_row":6,
      "item_layout":"portrait"
    }
  ]
}

Response: Page Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Create a content page
Authentication: X-Auth Admin
                      POST /services/meta/v1/pages
                    

Description

Use this API to create a new content page. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Page data.

Response Parameters

Returns Page Collections.

Examples

Create a New Content Page

curl -i 'https://store.shift72.com/services/meta/v1/pages' \
  -X POST \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "page":{  
      "title":"New Page",
      "slug":"new_page",
      "content":null,
      "published":false
    }
  }'

Response: Success

HttpStatus: 200
{  
  "id":64,
  "title":"New Page",
  "slug":"new_page",
  "page_type":"curated",
  "content":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "header_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "carousel_image":null,
  "created_at":"2015-06-12T01:44:50.053Z",
  "updated_at":"2015-06-12T01:44:50.053Z",
  "published":false,
  "page_features":[  
  ]
}

Response: Slug Already Used

HttpStatus: 422
{  
  "error":{  
    "slug":[  
      "The slug has already been taken."
    ]
  }
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete a content page
Authentication: X-Auth Admin
                      DELETE /services/meta/v1/pages/[page_id]
                    

Description

Use this API to delete a specific content page. This API is only accessible to users who have the admin role.

Examples

Delete Content Page 41

curl -i 'https://store.shift72.com/services/meta/v1/pages/64' \
  -X DELETE \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b'

Response: Success

HttpStatus: 204

Response: Page Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Get a content page
Authentication: None
                      GET /services/meta/v1/pages/[page_id]/detail
                    

Description

Use this API to get the specified page.

Response Parameters

Returns Page.

Examples

Request Page 25

curl -i 'https://store.shift72.com/services/meta/v1/pages/25/detail'

Response: Success

HttpStatus: 200
{  
  "id":41,
  "title":"Home",
  "slug":"home",
  "page_type":"homepage",
  "content":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "header_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "carousel_image":null,
  "created_at":"2015-05-27T01:58:55.901Z",
  "updated_at":"2015-06-04T04:11:30.813Z",
  "published":true,
  "page_features":[  
    {  
      "feature_id":24,
      "layout":"carousel",
      "items_per_row":4,
      "item_layout":"portrait"
    },
    {  
      "feature_id":16,
      "layout":"list",
      "items_per_row":6,
      "item_layout":"portrait"
    },
    {  
      "feature_id":26,
      "layout":"slider",
      "items_per_row":6,
      "item_layout":"portrait"
    }
  ]
}

Response: Page Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}
Summary: Get the collections of a content page
Authentication: X-Auth Admin
                      GET /services/meta/v1/pages/[page_id]/features
                    

Description

Use this API to get the collections of the specified content page. This API is only accessible to users who have the admin role.

Response Parameters

Parameter Type Description
feature_id number The unique ID of the collection.
layout string The layout type. “list”, “carousel”, or “slider”.
items_per_row number The number of items to display in a row.
item_layout string The item layout, portrait or landscape.

Examples

Request Collections of Content Page 25

curl -i 'https://store.shift72.com/services/meta/v1/pages/25' \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b'

Response: Success

HttpStatus: 200
[  
  {  
    "feature_id":24,
    "layout":"carousel",
    "items_per_row":4,
    "item_layout":"portrait"
  },
  {  
    "feature_id":26,
    "layout":"slider",
    "items_per_row":6,
    "item_layout":"portrait"
  },
  {  
    "feature_id":27,
    "layout":"slider",
    "items_per_row":2,
    "item_layout":"landscape"
  },
  {  
    "feature_id":16,
    "layout":"list",
    "items_per_row":6,
    "item_layout":"portrait"
  },
  {  
    "feature_id":16,
    "layout":"slider",
    "items_per_row":2,
    "item_layout":"landscape"
  },
  {  
    "feature_id":13,
    "layout":"list",
    "items_per_row":4,
    "item_layout":"portrait"
  }
]

Response: Page Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Update the collections of a content page
Authentication: X-Auth Admin
                      PUT /services/meta/v1/pages/[page_id]/features
                    

Description

Use this API to update the collections of the specified content page. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Page Collections data.

Response Parameters

Returns Page Collections.

Examples

Update Collections of Content Page 41

curl -i 'https://store.shift72.com/services/meta/v1/pages/41/features' \
  -X PUT \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "items":[  
      {  
        "feature_id":24,
        "layout":"carousel",
        "items_per_row":3,
        "item_layout":"portrait"
      },
      {  
        "feature_id":26,
        "layout":"slider",
        "items_per_row":6,
        "item_layout":"portrait"
      },
      {  
        "feature_id":27,
        "layout":"slider",
        "items_per_row":2,
        "item_layout":"landscape"
      },
      {  
        "feature_id":16,
        "layout":"list",
        "items_per_row":6,
        "item_layout":"portrait"
      },
      {  
        "feature_id":16,
        "layout":"slider",
        "items_per_row":2,
        "item_layout":"landscape"
      },
      {  
        "feature_id":13,
        "layout":"list",
        "items_per_row":4,
        "item_layout":"portrait"
      }
    ]
  }'

Response: Success

HttpStatus: 200
{  
  "items":[  
    {  
      "feature_id":24,
      "layout":"carousel",
      "items_per_row":3,
      "item_layout":"portrait"
    },
    {  
      "feature_id":26,
      "layout":"slider",
      "items_per_row":6,
      "item_layout":"portrait"
    },
    {  
      "feature_id":27,
      "layout":"slider",
      "items_per_row":2,
      "item_layout":"landscape"
    },
    {  
      "feature_id":16,
      "layout":"list",
      "items_per_row":6,
      "item_layout":"portrait"
    },
    {  
      "feature_id":16,
      "layout":"slider",
      "items_per_row":2,
      "item_layout":"landscape"
    },
    {  
      "feature_id":13,
      "layout":"list",
      "items_per_row":4,
      "item_layout":"portrait"
    }
  ]
}

Response: Page Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Get the list of content pages
Authentication: X-Auth Admin
                      GET /services/meta/v1/pages
                    

Description

Use this API to get all of the content pages. This API is only accessible to users who have the admin role. Pages can be accessed without an auth token via the BIOS API.

Response Parameters

Returns an array of Content Pages.

Examples

Request Content Pages

curl -i 'https://store.shift72.com/services/meta/v1/pages' \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b'

Response: Success

HttpStatus: 200
[
  {  
    "id":41,
    "title":"Home",
    "slug":"home",
    "page_type":"homepage",
    "content":null,
    "seo_title":null,
    "seo_keywords":null,
    "seo_description":null,
    "header_image":null,
    "portrait_image":null,
    "landscape_image":null,
    "carousel_image":null,
    "created_at":"2015-05-27T01:58:55.901Z",
    "updated_at":"2015-06-04T04:11:30.813Z",
    "published":true,
    "page_features":[  
      {  
        "feature_id":24,
        "layout":"carousel",
        "items_per_row":4,
        "item_layout":"portrait"
      },
      {  
        "feature_id":16,
        "layout":"list",
        "items_per_row":6,
        "item_layout":"portrait"
      },
      {  
        "feature_id":26,
        "layout":"slider",
        "items_per_row":6,
        "item_layout":"portrait"
      }
    ]
  }
]

Response: Unauthorized

HttpStatus: 401
Summary: Update a content page
Authentication: X-Auth Admin
                      PUT /services/meta/v1/pages/[page_id]
                    

Description

Use this API to update a specific content page. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Page data.

Response Parameters

Returns Page Collections.

Examples

Update Content Page 41

curl -i 'https://store.shift72.com/services/meta/v1/pages/41' \
  -X PUT \
  -H 'x-auth-token: 1cc06762a22db2093e6dcef08e8ea66b' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "page":{  
      "id":41,
      "title":"Home",
      "slug":"home",
      "page_type":"homepage",
      "content":null,
      "seo_title":null,
      "seo_keywords":null,
      "seo_description":null,
      "header_image":null,
      "portrait_image":null,
      "landscape_image":null,
      "carousel_image":null,
      "published":true,
      "page_features":[  
        {  
          "feature_id":24,
          "layout":"carousel",
          "items_per_row":3,
          "item_layout":"portrait"
        },
        {  
          "feature_id":26,
          "layout":"slider",
          "items_per_row":6,
          "item_layout":"portrait"
        },
        {  
          "feature_id":27,
          "layout":"slider",
          "items_per_row":2,
          "item_layout":"landscape"
        },
        {  
          "feature_id":16,
          "layout":"list",
          "items_per_row":6,
          "item_layout":"portrait"
        },
        {  
          "feature_id":16,
          "layout":"slider",
          "items_per_row":2,
          "item_layout":"landscape"
        },
        {  
          "feature_id":13,
          "layout":"list",
          "items_per_row":4,
          "item_layout":"portrait"
        }
      ]
    }
  }'

Response: Success

HttpStatus: 200
{  
  "id":41,
  "title":"Home",
  "slug":"home",
  "page_type":"homepage",
  "content":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null,
  "header_image":null,
  "portrait_image":null,
  "landscape_image":null,
  "carousel_image":null,
  "created_at":"2015-05-27T01:58:55.901Z",
  "updated_at":"2015-06-04T04:11:30.813Z",
  "published":true,
  "page_features":[  
    {  
      "feature_id":24,
      "layout":"carousel",
      "items_per_row":3,
      "item_layout":"portrait"
    },
    {  
      "feature_id":26,
      "layout":"slider",
      "items_per_row":6,
      "item_layout":"portrait"
    },
    {  
      "feature_id":27,
      "layout":"slider",
      "items_per_row":2,
      "item_layout":"landscape"
    },
    {  
      "feature_id":16,
      "layout":"list",
      "items_per_row":6,
      "item_layout":"portrait"
    },
    {  
      "feature_id":16,
      "layout":"slider",
      "items_per_row":2,
      "item_layout":"landscape"
    },
    {  
      "feature_id":13,
      "layout":"list",
      "items_per_row":4,
      "item_layout":"portrait"
    }
  ]
}

Response: Page Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Create a new film
Authentication: X-Auth Admin
                      POST /services/meta/v2/film/create
                    

Description

Use this API to create a new film. This API is only accessible to users who have the admin role.

Request Parameters

Title, status_id, and meta_data are compulsory. Any of the other Film Meta can be optionally supplied.

Response Parameters

Returns Film Meta.

Examples

Create a New Film

curl -i 'https://store.shift72.com/services/meta/v2/film/create' \
  -X POST \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "film":{
      "title":"New Film",
      "status_id":1,
      "meta_data":{
        "trailers":[
        ],
        "bonuses":[
        ],
        "tags": [
          "tag ONE", "tag TWO"
        ]
      }
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":119,
  "client_id":2,
  "studio_id":null,
  "title":"New Film",
  "imdb_id":null,
  "created_at":"2015-05-28T03:59:36.432Z",
  "updated_at":"2015-05-28T03:59:36.432Z",
  "meta_data":{
    "trailers":[
    ],
    "bonuses":[
    ],
    "title":"New Film",
    "tags": [
      "tag one", "tag two"
    ]
  },
  "status_id":1,
  "published_date":null,
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null
}

Response: Missing Data

HttpStatus: 422
{
  "error":{
    "meta_data":[
      "can't be blank"
    ]
  }
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete a film and associated records
Authentication: X-Auth Admin
                      DELETE /services/meta/v2/film/[id]
                    

Description

Use this API to delete a film and its associated records. This will remove the film from any plans, from user libraries, from collections and from recommendations. This will also delete all of the film’s media content from our servers. This API is only accessible to users who have the admin role.

Examples

Delete Film 123

curl -i 'https://store.shift72.com/services/meta/v2/film/123' \
  -X DELETE \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 204

Response: Film Doesn’t Exist

HttpStatus: 404
{  
  "error":"No film info found for provided id"
}

Response: Unauthorized

HttpStatus: 401
Summary: List all films on the site
Authentication: X-Auth Admin, None
                      GET /services/meta/v2/film/index
                    

Description

Use this API to display a list of all of the films available on the site. This will include films that are in a draft status. Filter on the status_id to get a list of films that are published. The external id parameters are returned for X-Auth Admin requests.

Response Parameters

Parameter Type Description
id number The unique ID of the film.
title string The title of the film.
imdb_id string Deprecated. This is no longer used.
status_id number Published status. 1 = draft, 2 = published.
published_date string The date the film was published on the site.
external_id string A text field that can be used to store an ID from an external system.
external_id2 string A text field that can be used to store an ID from an external system.

Examples

Request Film Index

curl -i 'https://store.shift72.com/services/meta/v2/film/index'

Response: Success

HttpStatus: 200
[  
  {  
    "id":80,
    "title":"Please Subscribe",
    "imdb_id":"http://www.imdb.com/title/tt2368182/?ref_=nv_sr_1",
    "status_id":2,
    "published_date":"2014-09-01T12:00:00.000Z"
    "external_id":"ID1234"
    "external_id2":"ID5678"
  },
  {  
    "id":49,
    "title":"Example Film",
    "imdb_id":"",
    "status_id":1,
    "published_date":"2014-06-26T09:56:00.000Z"
    "external_id":"ID1234"    
    "external_id2":"ID5678"
  },
  {  
    "id":76,
    "title":"Verity's Summer",
    "imdb_id":null,
    "status_id":2,
    "published_date":"2014-09-07T12:00:00.000Z"
    "external_id":"ID1234"
    "external_id2":"ID5678"
  },
  {  
    "id":81,
    "title":"King Lee",
    "imdb_id":"http://www.imdb.com/title/tt2637156/?ref_=fn_al_tt_1",
    "status_id":2,
    "published_date":"2015-03-27T01:46:12.871Z"
    "external_id":"ID1234"
    "external_id2":"ID5678"
  }
]
Summary: Request film meta data
Authentication: X-Auth Admin
                      GET /services/meta/v2/film/[id]/show
                    

Description

Use this API to get meta data for a specific film. It is recommended that you use Film Meta Show Multiple as that API can be used for one or more films.

Response Parameters

Parameter Type Description
id number The unique ID of the film.
title string The title of the film.
imdb_id string Deprecated. This is no longer used.
crew[name] string The name of the crew member.
crew[job] string The job the crew member performed.
cast[name] string The name of the cast member.
cast[job] string Deprecated. This is no longer used.
cast[character] string The character the cast member played.
studio[name] string The name of the studio or production company.
trailers[url] string A URL link to the location of the trailer.
trailers[type] string Deprecated. This is no longer used.
tagline string A brief description about the film that is displayed in the carousel.
overview string The synopsis of the film.
release_date string The date the film was publicly released.
runtime number The runtime of the film in minutes.
certification string Deprecated. This is no longer used.
countries string A list of countries where the film was made.
languages string A list of languages used throughout the film.
bonuses[number] number The ordering number of the bonus content.
bonuses[title] string The title of the bonus content.
bonuses[description] string The description of the bonus content.
bonuses[runtime] number The runtime of the bonus content in minutes.
bonuses[tags] string List of tags particular to the bonus content
subtitles string The language of the subtitles if the film contains them.
genres string A list of genres of the film.
status_id number Published status. 1 = draft, 2 = published.
published_date string The date the film was published on the site.
seo_title string The title of the page used for SEO.
seo_keywords string Keywords used for SEO.
seo_description string Description used for SEO.
portait_image string The URL of the portrait image.
landscape_image string The URL of the landscape image.
header_image string The URL of the header image.
carousel_image string The URL of the carousel image.
classification_image string The URL of the classification image.
background_image string The URL of the background image.
seo_image string The URL of the SEO image.
external_id string A text field that can be used to store an ID from an external system.
external_id2 string A text field that can be used to store an ID from an external system.
tags string Alphabetically-ordered list of unique, lower-case tags
slug string Slug of the film

Examples

Request Film Meta for Film 71

curl -i 'https://store.shift72.com/services/meta/v2/film/71/show'

Response: Success

HttpStatus: 200
{
  "id":71,
  "title":"Grabbers",
  "imdb_id":"http://www.imdb.com/title/tt1525366/?ref_=nv_sr_1",
  "meta_data":{
    "crew":[
      {
        "name":"Kevin Lehane",
        "job":"Writer"
      },
      {
        "name":"Jon Wright",
        "job":"Director"
      }
    ],
    "cast":[
      {
        "name":"Richard Coyle",
        "job":"",
        "character":"Garda Ciarán O'Shea"
      },
      {
        "name":"Ruth Bradley",
        "job":"",
        "character":"Garda Lisa Nolan"
      },
      {
        "name":"Russell Tovey",
        "job":"",
        "character":"Dr. Adam Smith"
      }
    ],
    "studio":[
      {
        "name":"Forward Films"
      },
      {
        "name":"High Treason Productions"
      },
      {
        "name":"Irish Film Board"
      }
    ],
    "trailers":[
      {
        "url":"https://dhtm9e8kk4phk.cloudfront.net/bff2364d-bce0-4ade-a10e-cd6bba644dc1/grabbers_480_2000_trailer_kb_trailer_HD.mp4",
        "type":""
      }
    ],
    "tagline":"Take Your best Shot",
    "overview":"The Sundance smash hit has arrived What do you do when blood-sucking aliens invade your hometown? Kick arse What do you do if they're allergic to alcohol? Get pissed, then kick arse Only the Irish could dream up such a scenario. GRABBERS is 90 minutes of drunken shenanigans that will have you, literally, running to the bar Drink up OR DIE\n\nWhen the tiny Irish township of Erin Island is invaded by bloodthirsty aliens from deep space, all hope appears lost. Salvation appears with the discovery that the octopus-like aliens are terminally allergic to alcohol-tainted human blood and the local townsfolk decide that its time to get drunk and get even\n\nGRABBERS affectionately tips a tentacle to many creature feature traditions while raising a pint in the name of slime covered carnage and saturates you in both. A feckin' scary laff-fest to be sure",
    "release_date":"2014-10-29T11:00:00.000Z",
    "runtime":94,
    "certification":"PG",
    "countries":[
      "Ireland"
    ],
    "languages":[
      "English"
    ],
    "bonuses":[
      {
        "number":1,
        "title":"The Making of Grabbers",
        "description":"The making of Grabbers",
        "runtime":10
      },
      {
        "number":2,
        "title":"Behind the scenes Grabbers",
        "description":"Behind the scenes footage during the making of grabbers",
        "runtime":32,
        "tags": [ "behind the scenes" ]
      }
    ],
    "subtitles": "Gaelic",
    "tags": [ "comedy", "irish film", "science fiction" ]
    "title":"Grabbers",
    "genres":[
      "Comedy",
      "Horror",
      "Science Fiction"
    ]
  },
  "status_id":2,
  "published_date":"2014-09-07T12:00:00.000Z",
  "external_id":"ID1234",
  "external_id2":"ID5678",
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null
}

Response: Film Doesn’t Exist

HttpStatus: 404
{
  "error":"No film info found for provided id"
}
Summary: Request owned films
Authentication: X-Auth
                      GET /services/meta/v3/film/owned?page=[pg]&per_page=[num]&title=[search_string]&publish_state=[publish|review|draft]
                    

Description

Use this API to get a list of films that you have edit permissions for. Results are paginated and optionally filterable.

Query String Request Parameters

Parameter Required Description
page number The page of data to request. Defaults to 1.
per_page number Number of films to return per page.
title (optional) string Term matched against a film title. Will match anywhere within title. Case insensitive.
publish_state (optional) string Filters films based on published state: published, review or draft. Returns all films if omitted.

Pagination Header Response Parameters

Pagination information is returned via the header Pagination

Parameter Type Description
page_size number The number of items per page.
first_page number The number of the first page.
next_page number The number of the next page.
prev_page number The number of the previous page.
last_page number The number of the last page.
total_count number The total number of items found in the search.
pages_count number The total number of pages.

Response Parameters

An array of films is returned.

Parameter Type Description
id number The unique ID of the film.
title string The title of the film.
imdb_id string Deprecated. This is no longer used.
status_id number Published status. 1 = draft, 2 = published.
published_date string The date the film was published on the site.
slug string The unique ID of the film formatted in a usable format.
portait_image string The URL of the portrait image.
landscape_image string The URL of the landscape image.
header_image string The URL of the header image.
carousel_image string The URL of the carousel image.
classification_image string The URL of the classification image.
background_image string The URL of the background image.
publishing_state string One of null, “preparing_submission”, “in_review”, or “complete”.

Examples

Request Owned Films

curl -i 'https://store.shift72.com/services/meta/v2/film/owned?page=1&page_size=10' \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'x-bypass-cache: 1'

Response: Success

HttpStatus: 200
[
  {
    "id": 8065,
    "title": "Home Run Showdown",
    "imdb_id": null,
    "status_id": 2,
    "published_date": "2018-05-07T00:22:40.492Z",
    "slug": "/film/8065",
    "portrait_image": "/posters-and-backdrops/282x422/film/8065/4a3acff37db0d74019cb434a236c430b.jpg",
    "landscape_image": "/posters-and-backdrops/585x330/film/8065/1ca3cf98b250095f34c8279112b7b6ac.jpg",
    "header_image": null,
    "carousel_image": "/posters-and-backdrops/1600x600/film/8065/f56fb84a2b2662b31c85a65b4b873e23.jpg",
    "classification_image": null,
    "background_image": "/posters-and-backdrops/1600x1100/film/8065/8fcb303737ffd9bbf4c9541eed32d31b.jpg",
    "publishing_state": "complete"
  },
  {
    "id": 8061,
    "title": "Trailer Made",
    "imdb_id": null,
    "status_id": 2,
    "published_date": "2018-05-06T23:56:29.610Z",
    "slug": "/film/8061",
    "portrait_image": "/posters-and-backdrops/282x422/film/8061/57c741e9c25a0f1e66fddaba6da7f8a9.jpg",
    "landscape_image": "/posters-and-backdrops/585x330/film/8061/a234ad1cc83c5c05073708a53dd80e9d.jpg",
    "header_image": null,
    "carousel_image": "/posters-and-backdrops/1600x600/film/8061/1a37e1bb0cd7902d6c47ccb56c61bc35.jpg",
    "classification_image": null,
    "background_image": "/posters-and-backdrops/1600x1100/film/8061/95a496114261fe4d029c5ecba4762013.jpg",
    "publishing_state": "complete"
  }
]

Response: No Owned Films

HttpStatus: 200
[]
Summary: Request film meta data for multiple films
Authentication: None
                      GET /services/meta/v2/film/[id],[id],[id]/show_multiple
                    

Description

Use this API to get meta data for multiple films.

Response Parameters

Parameter Type Description
crew[name] string The name of the crew member.
crew[job] string The job the crew member performed.
cast[name] string The name of the cast member.
cast[job] string Deprecated. This is no longer used.
cast[character] string The character the cast member played.
studio[name] string The name of the studio or production company.
trailers[url] string A url link to the location of the trailer.
trailers[type] string Deprecated. This is no longer used.
tagline string A brief description about the film that is displayed in the carousel.
overview string The synopsis of the film.
release_date string The date the film was publicly released.
runtime number The runtime of the film in minutes.
certification string Deprecated. This is no longer used.
countries string A list of countries where the film was made.
languages string A list of languages used throughout the film.
bonuses[number] number The ordering number of the bonus content.
bonuses[title] string The title of the bonus content.
bonuses[description] string The description of the bonus content.
bonuses[runtime] number The runtime of the bonus content in minutes.
bonuses[tags] string List of tags particular to the bonus content
published bool Set to true if the film is published on the site.
classifications string A list of classification records, indexed alphabetically by country code
classification[label] string Classification for the film
classification[description] string Any further information relevant to the classification
subtitles string A list of subtitle languages if the film contains them.
title string The title of the film.
slug string The unique ID of the film formatted in a usable format.
film_id number The unique ID of the film.
id number The unique ID of the film.
recommendations string Ordered array of slugs of recommended items.
genres string A list of genres of the film.
image_urls[bg] string The URL of the background image.
image_urls[carousel] string The URL of the carousel image.
image_urls[classification] string The URL of the classification image.
image_urls[header] string The URL of the header image.
image_urls[landscape] string The URL of the landscape image.
image_urls[portrait] string The URL of the portrait image.
external_id string A text field that can be used to store an ID from an external system.
external_id2 string A text field that can be used to store an ID from an external system.
tags string An alphabetically-ordered list of unique, lower-case tags

Examples

Request Film Meta for Films 71, 80 and 94

curl -i 'https://store.shift72.com/services/meta/v2/film/71,80,94/show_multiple'

Response: Success

[
  {
    "crew":[
      {
        "name":"Kevin Lehane",
        "job":"Writer"
      },
      {
        "name":"Jon Wright",
        "job":"Director"
      }
    ],
    "cast":[
      {
        "name":"Richard Coyle",
        "job":"",
        "character":"Garda Ciarán O'Shea"
      },
      {
        "name":"Ruth Bradley",
        "job":"",
        "character":"Garda Lisa Nolan"
      },
      {
        "name":"Russell Tovey",
        "job":"",
        "character":"Dr. Adam Smith"
      }
    ],
    "studio":[
      {
        "name":"Forward Films"
      },
      {
        "name":"High Treason Productions"
      },
      {
        "name":"Irish Film Board"
      }
    ],
    "trailers":[
      {
        "url":"https://dhtm9e8kk4phk.cloudfront.net/bff2364d-bce0-4ade-a10e-cd6bba644dc1/grabbers_480_2000_trailer_kb_trailer_HD.mp4",
        "type":""
      }
    ],
    "tagline":"Take Your best Shot",
    "overview":"The Sundance smash hit has arrived What do you do when blood-sucking aliens invade your hometown? Kick arse What do you do if they're allergic to alcohol? Get pissed, then kick arse Only the Irish could dream up such a scenario. GRABBERS is 90 minutes of drunken shenanigans that will have you, literally, running to the bar Drink up OR DIE\n\nWhen the tiny Irish township of Erin Island is invaded by bloodthirsty aliens from deep space, all hope appears lost. Salvation appears with the discovery that the octopus-like aliens are terminally allergic to alcohol-tainted human blood and the local townsfolk decide that its time to get drunk and get even\n\nGRABBERS affectionately tips a tentacle to many creature feature traditions while raising a pint in the name of slime covered carnage and saturates you in both. A feckin' scary laff-fest to be sure",
    "release_date":"2014-10-29T11:00:00.000Z",
    "runtime":94,
    "countries":[
      "Ireland"
    ],
    "languages":[
      "English"
    ],
    "bonuses":[
      {
        "number":1,
        "title":"The Making of Grabbers",
        "description":"The making of Grabbers",
        "runtime":10
      },
      {
        "number":2,
        "title":"Behind the scenes Grabbers",
        "description":"Behind the scenes footage during the making of grabbers",
        "runtime":32
      }
    ],
    "published":true,
    "classifications": {
        "au": {
            "label": "G",
            "description": "Suitable for General Audiences"
        },
        "nz": {
            "label": "G",
            "description": "Suitable for General Audiences"
        }
    },
    "subtitles": [
      "Gaelic"
    ],
    "title":"Grabbers",
    "slug":"/film/71",
    "film_id":71,
    "id":71,
    "recommendations":[
      "/film/73",
      "/film/65",
      "/film/93",
      "/tv/1/season/1",
      "/film/117",
      "/film/81",
      "/film/94",
      "/film/70",
      "/film/318",
      "/film/83"
    ],
    "genres":[
      "Comedy",
      "Horror",
      "Science Fiction"
    ],
    "tags":[
      "irish film"
    ]
  },
  {
    "crew":[
      {
        "name":"Dan Dobi",
        "job":"Director"
      }
    ],
    "cast":[
      {
        "name":"Grace Helbig",
        "job":"",
        "character":"Daily Grace"
      },
      {
        "name":"Dan Brown",
        "job":"",
        "character":"PogoBat"
      },
      {
        "name":"Hannah Hart",
        "job":"",
        "character":"My Harto"
      }
    ],
    "studio":[
      {
        "name":"Dobi Media LLC"
      }
    ],
    "trailers":[
      {
        "url":"https://dhtm9e8kk4phk.cloudfront.net/be3012eb-a7d2-404c-b534-69e054b80dd3/please_subscribe_480_2000_trailer_kb_trailer_HD.mp4",
        "type":"Full"
      }
    ],
    "tagline":"A Documentary About Youtubers",
    "overview":"Please Subscribe is an intimate look into the lives of YouTubers and answers the question that many family members and friends love to ask you: What is a YouTuber? This documentary was born out of my desire to be able to answer this question for myself. I've been making YouTube videos for years and yet there was something so much more to the community and the spirit of the content creators than I was able to explain. I brought this idea to the community and through their amazing support, I decided to interview and follow some of the site's top content creators to try to find what drives them, where they come from, and where they see themselves going.",
    "release_date":"2014-09-18T12:00:00.000Z",
    "runtime":90,
    "countries":[
      "United States"
    ],
    "languages":[
      "English"
    ],
    "title":"Please Subscribe",
    "slug":"/film/80",
    "film_id":80,
    "id":80,
    "external_id": "ID1234a",
    "external_id2": "ID5678a",
    "recommendations":[

    ],
    "genres":[
      "Documentary"
    ]
  },
  {
    "crew":[
      {
        "name":"David Cholewa",
        "job":"Director"
      },
      {
        "name":"Vincent Julé",
        "job":"Writer"
      }
    ],
    "cast":[
      {
        "name":"Fabian Wolfrom",
        "job":"",
        "character":"Chris"
      },
      {
        "name":"Blandine Marmigère",
        "job":"",
        "character":"Claire"
      }
    ],
    "studio":[
      {
        "name":"DC Medias"
      }
    ],
    "trailers":[
      {
        "url":"https://indiereign02-a.akamaihd.net/b235a6a9-6207-4c53-9910-a69bcfc8f47d/dead_shadows_480_2000_trailer_kb_trailer_HD.mp4",
        "type":"Full"
      }
    ],
    "overview":"Chris' parents were murdered on the same day the Halley comet was visible from Earth. Eleven years later, a new comet lights up the Parisian sky, but as the night goes on, people begins to transform into horrible creatures.",
    "tagline":"Will it be the end of the world? This film brings out the fear in everyone...",
    "release_date":"2014-09-29T11:00:00.000Z",
    "runtime":75,
    "countries":[
      "France"
    ],
    "languages":[
      "French"
    ],
    "subtitles":[
      "English"
    ],
    "published":true,
    "bonuses":[
      {
        "number":1,
        "title":"new bonus",
        "description":"fsadfdsa",
        "runtime":34
      }
    ],
    "tags":[
      "body horror"
    ],
    "title":"Dead Shadows",
    "slug":"/film/94",
    "film_id":94,
    "id":94,
    "external_id": "ID1234b",
    "external_id2": "ID5678b",
    "recommendations":[

    ],
    "genres":[
      "Horror",
      "Science Fiction"
    ]
  }
]
Summary: Update a film's meta data
Authentication: X-Auth Admin
                      PUT /services/meta/v2/film/[film_id]/update
                    

Description

Use this API to replace the meta data for a specific film. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Film Meta data.

Response Parameters

Returns Film Meta.

Examples

Update the portrait image URL for Film 92

curl -i 'https://store.shift72.com/services/meta/v2/film/92/update' \
  -X PUT \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "film":{
      "portrait_image": "/posters-and-backdrops/282x422/film/430/549238a7c9e71b5c582beb0b6eb513b4.jpg"
    }
  }'

Update the Meta Data for Film 92

curl -i 'https://store.shift72.com/services/meta/v2/film/92/update' \
  -X PUT \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "film":{
      "meta_data":{
        "crew":[
          {
            "name":"Eric Waetjen",
            "job":"Director"
          },
          {
            "name":"Eric Waetjen",
            "job":"Writer"
          }
        ],
        "cast":[
          {
            "name":"Christian Lagadec",
            "job":"",
            "character":"Dancer"
          },
          {
            "name":"Jon Bebe",
            "job":"",
            "character":"Brackett"
          },
          {
            "name":"Ari Montgomery",
            "job":"",
            "character":"Natalie"
          }
        ],
        "studio":[
          {
            "name":"Intrinsic Media"
          }
        ],
        "trailers":[
          {
            "url":"https://indiereign02-a.akamaihd.net/043ffa3d-bb80-4e4b-9125-2026c5012180/ambrosia_480_2000_trailer_kb_trailer_HD.mp4",
            "type":"Full"
          }
        ],
        "overview":"In the near future corporations violently battle for control of a breakthrough serum called Ambrosia. After a failed attempt to hijack the serum it randomly ends up in the possession of a young girl who becomes the target of deadly assassins.",
        "tagline":"In the near future corporations violently battle for control of a breakthrough serum called Ambrosia.",
        "release_date":"2015-11-27T00:00:00.000Z",
        "runtime":41,
        "certification":"PG",
        "countries":[
          "United States"
        ],
        "languages":[
          "English"
        ],
        "bonuses":[
          {
            "number":1,
            "title":"werafesz"
          }
        ],
        "published":true,
        "genres":[
          "Science Fiction",
          "Action",
          "Crime"
        ],
        "subtitles":"",
        "tags":[
          "Sci-Fi",
          " young-girl ",
          "dystopia"
        ]
      },
      "id":92,
      "imdb_id":"http://www.imdb.com/title/tt2173870/?ref_=ttmd_md_nm",
      "published_date":"2014-08-31T12:00:00.000Z",
      "seo_description":"Ambrosia is an action packed Independent Science Fiction Film. Made in the UK by award winning independent film director Eric Waetjen.",
      "seo_keywords":"Independent, Science Fiction, Film, UK, award winning",
      "seo_title":"Ambrosia - Award winning Science Fiction Independent UK Short Film",
      "status_id":2,
      "title":"Ambrosia"
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":92,
  "title":"Ambrosia",
  "imdb_id":"http://www.imdb.com/title/tt2173870/?ref_=ttmd_md_nm",
  "meta_data":{
    "crew":[
      {
        "name":"Eric Waetjen",
        "job":"Director"
      },
      {
        "name":"Eric Waetjen",
        "job":"Writer"
      }
    ],
    "cast":[
      {
        "name":"Christian Lagadec",
        "job":"",
        "character":"Dancer"
      },
      {
        "name":"Jon Bebe",
        "job":"",
        "character":"Brackett"
      },
      {
        "name":"Ari Montgomery",
        "job":"",
        "character":"Natalie"
      }
    ],
    "studio":[
      {
        "name":"Intrinsic Media"
      }
    ],
    "trailers":[
      {
        "url":"https://indiereign02-a.akamaihd.net/043ffa3d-bb80-4e4b-9125-2026c5012180/ambrosia_480_2000_trailer_kb_trailer_HD.mp4",
        "type":"Full"
      }
    ],
    "overview":"In the near future corporations violently battle for control of a breakthrough serum called Ambrosia. After a failed attempt to hijack the serum it randomly ends up in the possession of a young girl who becomes the target of deadly assassins.",
    "tagline":"In the near future corporations violently battle for control of a breakthrough serum called Ambrosia.",
    "release_date":"2015-11-27T00:00:00.000Z",
    "runtime":41,
    "certification":"PG",
    "countries":[
      "United States"
    ],
    "languages":[
      "English"
    ],
    "bonuses":[
      {
        "number":1,
        "title":"werafesz"
      }
    ],
    "published":true,
    "genres":[
      "Science Fiction",
      "Action",
      "Crime"
    ],
    "subtitles":"",
    "tags":[
      "dystopia",
      "sci-fi",
      "young-girl"
    ],
    "title":"Ambrosia"
  },
  "status_id":2,
  "published_date":"2014-08-31T12:00:00.000Z",
  "seo_title":"Ambrosia - Award winning Science Fiction Independent UK Short Film",
  "seo_keywords":"Independent, Science Fiction, Film, UK, award winning",
  "seo_description":"Ambrosia is an action packed Independent Science Fiction Film. Made in the UK by award winning independent film director Eric Waetjen.",
  "updated_at":"2015-05-28T04:15:00.957Z"
}

Response: Missing Data

HttpStatus: 422
{
  "error":{
    "meta_data":[
      "can't be blank"
    ]
  }
}

Response: Film Doesn’t Exist

HttpStatus: 422
{
  "error":"No film info found for provided id"
}

Response: Unauthorized

HttpStatus: 401
Summary: Create a new award category
Authentication: X-Auth Admin
                      POST /services/meta/v1/award_categories
                    

Description

Use this API to create a new award category. This API is only accessible to users who have the admin role.

Request Parameters

Title is compulsory, any of the other parameters can be optionally supplied.

Response Parameters

Returns Award Category.

Examples

Create a New Award Category

curl -i 'https://store.shift72.com/services/meta/v1/award_categories' \
  -X POST \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "title":"Best Picture 2024",
    "film_slugs":["/film/7","/film/123"],
    "display_label": "Best Picture",
    "active": "true"
  }'

Response: Success

HttpStatus: 200
{
    "id": 17,
    "title": "Best Picture 2024",
    "display_label": "test label",
    "active": true,
    "film_slugs": [
        "/film/7",
        "/film/123"
    ]
}

Response: Invalid Film Slug

HttpStatus: 404
{
    "code": "film_not_found",
    "error": "no film found with slug '/film/7'"
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete an award category
Authentication: X-Auth Admin
                      DELETE /services/meta/v1/award_categories/[id]
                    

Description

Use this API to delete an award category. This API is only accessible to users who have the admin role.

Examples

Delete Award Category

curl -i 'https://store.shift72.com/services/meta/v1/award_categories/3' \
  -X DELETE \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 200
{
    "message": "category with id '3' deleted"
}

Response: Award Category Not Found

HttpStatus: 404
{
    "code": "category_not_found",
    "error": "no category found with id '3'"
}

Response: Unauthorized

HttpStatus: 401
Summary: Request award category meta data
Authentication: X-Auth Admin
                      GET /services/meta/v1/award_categories/[id]
                    

Description

Use this API to get an award category and its associated records. This API is only accessible to users who have the admin role.

Examples

Get Award Category

curl -i 'https://store.shift72.com/services/meta/v1/award_categories/17' \
  -X GET \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 200
{
    "id": 17,
    "title": "Best Picture 2024",
    "display_label": "yes",
    "active": false,
    "film_slugs": [
        "/film/104",
        "/film/105"
    ]
}

Response: Award Category Not Found

HttpStatus: 404
{
    "code": "category_not_found",
    "error": "no category found with id '3'"
}

Response: Unauthorized

HttpStatus: 401
Summary: List all award categories on the site
Authentication: None, X-Auth Admin
                      GET /services/meta/v1/award_categories
                    

Description

Use this API to get all award categories. An unauthenticated request will only return active award categories, and only published films.

Examples

Get All Award Categories

curl -i 'https://store.shift72.com/services/meta/v1/award_categories' \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 200
[
  {
    "id": 1,
    "title": "Best Picture 2024",
    "display_label": "Best Picture",
    "active": true,
    "film_slugs": [
        "/film/17",
        "/film/25"
    ]
},
{
    "id": 2,
    "title": "Best Documentary 2024",
    "display_label": "Best Documentary",
    "active": false,
    "film_slugs": [
        "/film/3",
        "/film/14",
        "/film/99",
    ]
}
]

Response: Unauthorized

HttpStatus: 401
Summary: Update a award category's meta data
Authentication: X-Auth Admin
                      PUT /services/meta/v1/award_categories/[id]
                    

Description

Use this API to update an existing award category. This API is only accessible to users who have the admin role.

Request Parameters

Any of the parameters can be optionally supplied.

Response Parameters

Returns Award Category.

Examples

Update an Existing Award Category

curl -i 'https://store.shift72.com/services/meta/v1/award_categories/3' \
  -X PUT \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "title": "Updated Title",
    "film_slugs": ["/film/7","/film/123","/film/8"],
    "display_label": "Updated Label",
    "active": "true",
    "results": [
      {
        "display_label": "Some label",
        "winners": [
          { "title": "Film Seven", "slug": "/film/7" }
        ]
      },
      {
        "display_label": "A different label",
        "winners": [
          { "title": "Film Seven", "slug": "/film/7" },
          { "title": "Film One Two Three", "slug": "/film/123" }
        ]
      }
    ]
  }'

Response: Success

HttpStatus: 200
{
    "id": 3,
    "title": "Updated Title",
    "display_label": "Updated Label",
    "active": true,
    "film_slugs": [
        "/film/7",
        "/film/123"
    ],
    "results": [
      {
        "display_label": "Some label",
        "winners": [
          { "title": "Film Seven", "slug": "/film/7" }
        ]
      },
      {
        "display_label": "A different label",
        "winners": [
          { "title": "Film Seven", "slug": "/film/7" },
          { "title": "Film One Two Three", "slug": "/film/123" }
        ]
      }
    ]
}

Response: Invalid Film Slug

HttpStatus: 404
{
    "code": "film_not_found",
    "error": "no film found with slug '/film/7'"
}

Response: Award Category Not Found

HttpStatus: 404
{
    "code": "category_not_found",
    "error": "no category found with id '3'"
}

Response: Film in results not on award category

HttpStatus: 404
{
    "code": "invalid_request",
    "error": "A selected winning film doesn't exist on this award category"
}

Response: Film cannot be winner of multiple results

HttpStatus: 400
{
    "code": "invalid_request",
    "error": "A film can not be attached to multiple results"
}

Response: Unauthorized

HttpStatus: 401
Summary: Get the navigation menus
Authentication: X-Auth Admin
                      GET /services/meta/v1/navigation
                    

Description

Use this API to get the pages in the navigation menus. This API is only accessible to users who have the admin role. Pages can be accessed without an auth token via the BIOS API.

Response Parameters

Parameter Type Description
header array Ordered array of items to appear in the header menu.
footer array Ordered array of items to appear in the footer menu.
label string The label of the item that appears in the menu.
link[page_id] number The ID of the page that this menu item links to.

Examples

Request Navigation

curl -i 'https://store.shift72.com/services/meta/v1/navigation' \
  -H 'x-auth-token: 123197c039422f4e11c2caad08a50c3c'

Response: Success

HttpStatus: 200
{  
  "header":null,
  "footer":[  
    {  
      "label":"About Us",
      "link":{  
        "page_id":35
      }
    },
    {  
      "label":"Help",
      "link":{  
        "page_id":28
      }
    },
    {  
      "label":"Terms and Conditions",
      "link":{  
        "page_id":34
      }
    },
    {  
      "label":"Privacy Policy",
      "link":{  
        "page_id":15
      }
    }
  ]
}

Response: Unauthorized

HttpStatus: 401
Summary: Update the navigation menus
Authentication: X-Auth Admin
                      PUT /services/meta/v1/navigation
                    

Description

Use this API to update the pages in the navigation menus. This API is only accessible to users who have the admin role.

Request Parameters

The same as the Navigation data.

Response Parameters

Returns Navigation.

Examples

Update Navigation

curl -i 'https://store.shift72.com/services/meta/v1/navigation' \
  -X PUT \
  -H 'x-auth-token: 123197c039422f4e11c2caad08a50c3c' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{  
    "footer":[  
      {  
        "label":"About Us",
        "link":{  
          "page_id":35
        }
      },
      {  
        "label":"Help",
        "link":{  
          "page_id":28
        }
      },
      {  
        "label":"Terms \u0026 Conditions",
        "link":{  
          "page_id":34
        }
      },
      {  
        "label":"Privacy Policy",
        "link":{  
          "page_id":15
        }
      }
    ]
  }'

Response: Success

HttpStatus: 200
{  
  "header":[  
  ],
  "footer":[  
    {  
      "label":"About Us",
      "link":{  
        "page_id":35
      }
    },
    {  
      "label":"Help",
      "link":{  
        "page_id":28
      }
    },
    {  
      "label":"Terms \u0026 Conditions",
      "link":{  
        "page_id":34
      }
    },
    {  
      "label":"Privacy Policy",
      "link":{  
        "page_id":15
      }
    }
  ]
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete subtitles
Authentication: X-Auth Admin
                      DELETE /services/meta/v1/subtitle/[id]
                    

Description

Use this API to delete a subtitle records. This will remove the subtitles file from the servers. This API is only accessible to users who have the admin role.

Examples

Delete Subtitles with ID 1

curl -i 'https://store.shift72.com/services/meta/v2/subtitle/1' \
  -X DELETE \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 204

Response: Subtitle Doesn’t Exist

HttpStatus: 404
{  
  "error":"The resource does not exist."
}

Response: Unauthorized

HttpStatus: 401
Summary: Create subtitles for the specified content
Authentication: X-Auth Admin
                      POST /services/meta/v1/subtitle/[slug]
                    

Description

Use this API to create a new subtitle record for the specified content. This API is only accessible to users who have the admin role. Subtitles can be either SRT, sub rip file format, or WebVTT, The Web Video Text Tracks Format.

Request Parameters

Parameter Type Description
language string ISO 639-1 two-letter language code.
type string Can be one of subtitle, caption or content.
file string The subtitles file.

Response Parameters

Returns Subtitles.

Examples

Upload English Subtitles to Film 71

curl -i 'https://store.shift72.com/services/meta/v1/subtitle/film/71' \
 -H 'x-auth-token: a8a23c8895edc93b4d869db3b672bcf2' \
 -F file=@/Users/simon/Desktop/example.srt \
 -F 'type=subtitle' \
 -F 'language=en'

Response: Success

HttpStatus: 200
{  
   "id":1,
   "slug":"/film/71",
   "language":"EN",
   "subtitle_type":"subtitle",
   "status":"processing",
   "subtitle_path":"",
   "error_message":"",
   "created_at":"2016-05-16T22:59:34.889Z",
   "language_name":"English"
}

Response: Missing JSON fields

HttpStatus: 422
{  
   "error":"missing type",
   "code":"missing_type"
}

Response: Unauthorized

HttpStatus: 401
Summary: Request subtitles for the specified content
Authentication: X-Auth
                      GET /services/meta/v1/subtitle/[slug]
                    

Description

Use this API to get the subtitle details for the specified content.

Response Parameters

Parameter Type Description
id number Unique ID of this subtitle record.
slug string The slug of the film or TV show and season.
language string ISO 639-1 two-letter language code.
subtitle_type string Can be one of subtitle, caption or content.
status string The current status of the subtitles. Can be on of processing, completed or errored.
subtitle_path string The relative path to the subtitle file.
error_message string The error message if the status is set to errored.
created_at string The ISO 8601 time and date the subtitle was uploaded.
language_name string The language name of the ISO 639-1 two-letter language code.

Examples

Request Subtitles for Film 71

curl -i 'https://store.shift72.com/services/meta/v1/subtitle/film/71' \
  -H 'x-auth-token: 7e628644bf631464bcf68575bcd8f89e'

Response: Success

HttpStatus: 200
[  
   {  
      "id":1,
      "slug":"/film/71",
      "language":"EN",
      "subtitle_type":"caption",
      "status":"completed",
      "subtitle_path":"production/subtitles/film/71/en/caption-1.vtt",
      "error_message":"",
      "created_at":"2016-05-16T22:59:34.889Z",
      "language_name":"English"
   }
]

Response: Unauthorized

HttpStatus: 401
Summary: List all TV shows and seasons on the site
Authentication: None
                      GET /services/meta/v3/tv/index
                    

Description

Use this API to display a list of all of the TV shows and their seasons that are available on the site. This will include TV seasons that are in a draft status. Filter on the status_id to get a list of TV seasons that are published.

Response Parameters

Parameter Type Description
id number The unique ID of the TV show.
title string The title of the show.
imdb_id string Deprecated. This is no longer used.
status_id number Deprecated. TV shows don’t use publish status, only seasons have a publish status.
published_date string Deprecated. Refer to the TV season for publish status.
seasons[slug] string The slug of the TV show and season formatted in a usable format.
seasons[status_id] string Published status. 1 = draft, 2 = published.

Examples

Request Film Index

curl -i 'https://store.shift72.com/services/meta/v3/tv/index'

Response: Success

HttpStatus: 200
[
  {
    "id":2,
    "title":"The Brokenwood Mysteries",
    "imdb_id":null,
    "status_id":2,
    "published_date":"2014-09-08T12:00:00.000Z",
    "seasons":[
      {
        "slug":"/tv/2/season/1",
        "status_id":2
      }
    ]
  },
  {
    "id":3,
    "title":"Go Girls",
    "imdb_id":null,
    "status_id":2,
    "published_date":"2014-09-14T12:00:00.000Z",
    "seasons":[
      {
        "slug":"/tv/3/season/1",
        "status_id":2
      }
    ]
  },
  {
    "id":1,
    "title":"Hope and Wire",
    "imdb_id":"",
    "status_id":2,
    "published_date":"2014-06-03T12:00:00.000Z",
    "seasons":[
      {
        "slug":"/tv/1/season/1",
        "status_id":2
      }
    ]
  },
  {
    "id":11,
    "title":"New TV Show",
    "imdb_id":null,
    "status_id":1,
    "published_date":"2015-03-09T11:00:00.000Z",
    "seasons":[
      {
        "slug":"/tv/11/season/2",
        "status_id":1
      },
      {
        "slug":"/tv/11/season/3",
        "status_id":2
      },
      {
        "slug":"/tv/11/season/1",
        "status_id":1
      }
    ]
  }
]
Summary: Request owned TV
Authentication: X-Auth
                      GET /services/meta/v3/tv/owned
                    

Description

Use this API to get a list of TV that you have edit permissions for.

Response Parameters

Parameter Type Description
id number The unique ID of the film.
slug string The unique ID of the film formatted in a usable format.
title string The title of the film.
status_id number Published status. 1 = draft, 2 = published.
published_date string The date the film was published on the site.
portait_image string The URL of the portrait image.
landscape_image string The URL of the landscape image.
season[slug] string The unique ID of the film formatted in a usable format.
season[status_id] number Published status. 1 = draft, 2 = published.
season[portait_image] string The URL of the portrait image.
season[landscape_image] string The URL of the landscape image.
season[header_image] string The URL of the header image.
season[carousel_image] string The URL of the carousel image.
season[classification_image] string The URL of the classification image.
season[background_image] string The URL of the background image.

Examples

Request Owned TV

curl -i 'https://store.shift72.com/services/meta/v3/tv/owned' \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'x-bypass-cache: 1'

Response: Success

HttpStatus: 200
[
  {
    "id": 720,
    "slug": "/tv/720",
    "title": "Go Frills",
    "status_id": 1,
    "published_date": null,
    "seasons": [
      {
        "slug": "/tv/720/season/3",
        "status_id": 2,
        "portrait_image": "/posters-and-backdrops/282x422/tv/720/season/3/f9264dafbfe3a44f4828baff624a89ad.jpg",
        "landscape_image": "/posters-and-backdrops/585x330/tv/720/season/3/5023dea7cf418dc9341186121b1c6bde.jpg",
        "header_image": null,
        "carousel_image": "/posters-and-backdrops/1600x600/tv/720/season/3/9384b8359f31773d9d011edf2f475703.jpg",
        "classification_image": null,
        "background_image": "/posters-and-backdrops/1600x1100/tv/720/season/3/a8468af84b088617175c7ff0a3813c44.jpg"
      },
      {
        "slug": "/tv/720/season/1",
        "status_id": 2,
        "portrait_image": "/posters-and-backdrops/282x422/tv/720/season/1/78d604209a282f6a9184897403bc6988.jpg",
        "landscape_image": "/posters-and-backdrops/585x330/tv/720/season/1/4b6ed75353c792a930ad0dde7a0972e4.jpg",
        "header_image": null,
        "carousel_image": "/posters-and-backdrops/1600x600/tv/720/season/1/5d6c9fe7b8e6d87d50685d851bda60fc.jpg",
        "classification_image": null,
        "background_image": "/posters-and-backdrops/1600x1100/tv/720/season/1/b300923dfcd5ba93c3805f9c157e1ec7.jpg"
      },
      {
        "slug": "/tv/720/season/2",
        "status_id": 2,
        "portrait_image": "/posters-and-backdrops/282x422/tv/720/season/2/1d5ed2143f3eb6e5ca1d09d7ea70b7f2.jpg",
        "landscape_image": "/posters-and-backdrops/585x330/tv/720/season/2/b6be3fa549e90ea5925faa3c123ce773.jpg",
        "header_image": null,
        "carousel_image": "/posters-and-backdrops/1600x600/tv/720/season/2/4d2dd6c8773d53d32f6e2036f510f063.jpg",
        "classification_image": null,
        "background_image": "/posters-and-backdrops/1600x1100/tv/720/season/2/f5f3fbe3b7be1f153549682523c4a132.jpg"
      }
    ],
    "portrait_image": "/posters-and-backdrops/282x422/tv/720/fad4827bd246fb00ccaa1d2719a058f0.jpg",
    "landscape_image": "/posters-and-backdrops/585x330/tv/720/1f15e9e7a7ae43fd813af58d06d6715b.jpg"
  },
  {
    "id": 16,
    "slug": "/tv/16",
    "title": "Cheese Slices",
    "status_id": 1,
    "published_date": null,
    "seasons": [
      {
        "slug": "/tv/16/season/1",
        "status_id": 1,
        "portrait_image": null,
        "landscape_image": "/posters-and-backdrops/585x330/tv/16/season/1/2918b15b7d7da0c36b19ebe363be4336.jpg",
        "header_image": null,
        "carousel_image": null,
        "classification_image": null,
        "background_image": null
      }
    ],
    "portrait_image": null,
    "landscape_image": null
  }
]

Response: No Owned TV

HttpStatus: 200
[]
Summary: Request TV season meta data
Authentication: None
                      GET /services/meta/v2/tv/[show_id]/season/[season_id]/show
                    

Description

Use this API to get meta data for a specific TV season. It is recommended that you use TV Season Meta Show Multiple as that API can be used for one or more tv seasons.

Response Parameters

Parameter Type Description
id number Deprecated. The unique ID of the TV season.
tv_info_id number The unique ID of the TV show.
season number The season number of the TV show.
title string Deprecated. The title of the season. This is not used.
imdb_id string Deprecated. This is no longer used.
crew[name] string The name of the crew member.
crew[job] string The job the crew member performed.
cast[name] string The name of the cast member.
cast[job] string Deprecated. This is no longer used.
cast[character] string The character the cast member played.
episodes[episode_number] number The episode number of the TV season.
episodes[title] string The title of the episode.
episodes[overview] string The synopsis of the episode.
episodes[air_date] number The date the episode was first publicly aired.
episodes[runtime] number The runtime of the episode in minutes.
episodes[displayTitle] string A nicely formatted string of how the episode title should display.
trailers[url] string A url link to the location of the trailer.
trailers[type] string Deprecated. This is no longer used.
tagline string A brief description about the season that is displayed in the carousel.
overview string The synopsis of the TV season.
published_date string The date the film was published on the site. This could be a future date.
status_id number Published status. 1 = draft, 2 = published.
created_at string Deprecated. The date this entry was first created.
updated_at string Deprecated. The date this entry was last updated.
seo_title string The title of the page used for SEO.
seo_keywords string Keywords used for SEO.
seo_description string Description used for SEO.
portait_image string The URL of the portrait image.
landscape_image string The URL of the landscape image.
header_image string The URL of the header image.
carousel_image string The URL of the carousel image.
classification_image string The URL of the classification image.
background_image string The URL of the background image.
seo_image string The URL of the SEO image.
external_id string A text field that can be used to store an ID from an external system.
external_id2 string A text field that can be used to store an ID from an external system.
tags string Alphabetically-ordered list of unique, lower-case tags

Examples

Request TV Season Meta for TV Show 1, Season 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/1/season/1/show'

Response: Success

HttpStatus: 200
{
  "id":3,
  "tv_info_id":1,
  "season":1,
  "title":null,
  "imdb_id":null,
  "meta_data":{
    "crew":[
      {
        "name":"Gaylene Preston",
        "job":"Director"
      },
      {
        "name":"Dave Armstrong",
        "job":"Writer"
      },
      {
        "name":"Gaylene Preston",
        "job":"Writer"
      }
    ],
    "cast":[
      {
        "name":"Bernard Hill",
        "job":"",
        "character":"Len Russell"
      },
      {
        "name":"Rachel House",
        "job":"",
        "character":"Joycie Waru"
      },
      {
        "name":"Jarod Rawiri",
        "job":"",
        "character":"Ryan"
      },
      {
        "name":"Miriama McDowell",
        "job":"",
        "character":"Donna"
      },
      {
        "name":"Stephen Lovatt",
        "job":"",
        "character":"Jonty Smith-Robinson"
      },
      {
        "name":"Luanne Gordon",
        "job":"",
        "character":"Ginny Smith-Robinson"
      },
      {
        "name":"Joel Tobeck",
        "job":"",
        "character":"Greggo"
      }
    ],
    "episodes":[
      {
        "episode_number":1,
        "title":"Part One",
        "overview":"When Len and Joycie are jolted off their couch and into their backyard by a massive earthquake, they find their young neighbours unexpectedly helpful. But unsavoury elements are on the prowl and continuing aftershocks are shredding everyone’s nerves to breaking point. Tuesday February 22, 2011 dawns peacefully enough but little does Ginny know that at 12.51pm a lethal earthquake will reveal fractures in her family that she cannot ignore. Joycie fears for Len in Lyttelton, but to Monee the earthquake means freedom.",
        "air_date":"2014-07-02T12:00:00.000Z",
        "runtime":87,
        "displayTitle":"Episode 1. Part One"
      },
      {
        "episode_number":2,
        "title":"Part Two",
        "overview":"In the post-earthquake ‘new normal’, Ryan is living in his ute outside his liquefied dream home.  Joycie shines as camp mother to inner-city waifs and strays, while Jonty becomes ever more desperate to get to his office through the closed red zone cordon. Quake runner Donna is frustrated when Ryan visits the family in Auckland and can’t get the shaky city out of his mind.  Ginny confronts Jonty over his guilty secrets.  Monee, on the run and squatting in the deserted suburb Atlantis, puts Ryan in danger.",
        "runtime":86,
        "air_date":"2014-07-09T12:00:00.000Z",
        "displayTitle":"Episode 2. Part Two"
      },
      {
        "episode_number":3,
        "title":"Part Three",
        "overview":"Len and Joycie break the abuse cycle that has Monee in its grip, while dealing with the consequences of a TV interview in which Len has said too much.  Dwayne shows he’s not so hopeless after all and Ryan realises the hard truth about his mate Greggo. Joycie’s honesty costs her her job caring for Aunt Dorothy and Len tries to make amends by organising a party with The Eastern playing.  Ginny does a vital deal with Monee and makes a bid for her own freedom, while Ryan’s isolation takes him to the brink.",
        "air_date":"2014-07-13T12:00:00.000Z",
        "runtime":87,
        "displayTitle":"Episode 3. Part Three"
      }
    ],
    "trailers":[
      {
        "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
        "type":"Full"
      }
    ],
    "bonuses":[

    ],
    "tagline":"Hope and Wire follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011.",
    "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
    "title":null,
    "tags": [
      "kiwi", "christchurch"
    ]
  },
  "published_date":"2014-10-31T11:00:00.000Z",
  "status_id":2,
  "created_at":"2014-11-13T01:36:31.218Z",
  "updated_at":"2015-04-23T01:21:47.544Z",
  "external_id":"ID1234",
  "external_id2":"ID5678",
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null
}

Response: TV Season Doesn’t Exist

HttpStatus: 422
{
  "error":"No tv season found for provided tv id and season number"
}
Summary: Create a new TV season
Authentication: X-Auth Admin
                      POST /services/meta/v2/tv/[show_id]/season/create
                    

Description

Use this API to create a new season for the specified TV show. This API is only accessible to users who have the admin role.

Request Parameters

Season, tv_info_id, status_id, and meta_data are compulsory. Any of the other TV Season Meta can be optionally supplied.

Response Parameters

Returns TV Season Meta.

Examples

Create a New Season for TV Show 9

curl -i 'https://store.shift72.com/services/meta/v2/tv/9/season/create' \
  -X POST \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "tv_season":{
      "tv_info_id":9,
      "season":4,
      "status_id":1,
      "meta_data":{
        "trailers":[
        ],
        "tagline":"The series comprises four two-hour murder mystery stories set in a seemingly quiet country town where the town\u2019s newest resident, Detective Inspector Mike Shepherd, finds that murder lurks in even the most homely location.",
        "bonuses":[
        ],
        "episodes":[
        ],
        "tags": [
          "nz"
        ]
      }
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":42,
  "tv_info_id":9,
  "season":4,
  "title":null,
  "imdb_id":null,
  "meta_data":{
    "trailers":[
    ],
    "tagline":"The series comprises four two-hour murder mystery stories set in a seemingly quiet country town where the town’s newest resident, Detective Inspector Mike Shepherd, finds that murder lurks in even the most homely location.",
    "bonuses":[
    ],
    "episodes":[
    ],
    "title":null
  },
  "published_date":null,
  "status_id":1,
  "created_at":"2015-05-29T02:06:31.099Z",
  "updated_at":"2015-05-29T02:06:31.099Z",
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null
}

Response: Missing Data

HttpStatus: 422
{
  "error":{
    "meta_data":[
      "can't be blank"
    ]
  }
}

Response: Unauthorized

HttpStatus: 401
Summary: Delete a TV Season and associated meta data
Authentication: None
                      DELETE /services/meta/v2/tv/[show_id]/season/[season_id]
                    

Description

Use this API to delete a TV season and its associated records. This will remove the TV season from any plans, from user libraries, from collections and from recommendations. This will also delete all of the TV season’s media content from our servers. This API is only accessible to users who have the admin role.

Examples

Delete TV Show 2, Season 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/2/season/1' \
  -X DELETE \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946'

Response: Success

HttpStatus: 204

Response: TV Season Doesn’t Exist

HttpStatus: 404
{  
  "error":"No tv show season found for provided id"
}

Response: Unauthorized

HttpStatus: 401
Summary: Request TV season and show meta data for multiple TV seasons
Authentication: None
                      GET /services/meta/v2/tv/season/show_multiple?items=[slug],[slug]
                    

Description

Use this API to get meta data for multiple TV seasons. This also includes the meta information for the TV show.

Response Parameters

Parameter Type Description
crew[name] string The name of the crew member.
crew[job] string The job the crew member performed.
cast[name] string The name of the cast member.
cast[job] string Deprecated. This is no longer used.
cast[character] string The character the cast member played.
episodes[episode_number] number The episode number of the TV season.
episodes[title] string The title of the episode.
episodes[overview] string The synopsis of the episode.
episodes[air_date] number The date the episode was first publicly aired.
episodes[runtime] number The runtime of the episode in minutes.
episodes[displayTitle] string A nicely formatted string of how the episode title should display.
episodes[tags] string List of tags specific to the episode
trailers[url] string A url link to the location of the trailer.
trailers[type] string Deprecated. This is no longer used.
tagline string A brief description about the season that is displayed in the carousel.
overview string The synopsis of the TV season.
title string Deprecated. The title of the season. This is not used.
tags string List of tags specific to the season
item string The slug of the TV show and season formatted in a usable format.
season_num number The season number of the TV show.
recommendations string Ordered array of slugs of recommended items.
image_urls[bg] string The URL of the background image.
image_urls[carousel] string The URL of the carousel image.
image_urls[classification] string The URL of the classification image.
image_urls[header] string The URL of the header image.
image_urls[landscape] string The URL of the landscape image.
image_urls[portrait] string The URL of the portrait image.
external_id string A text field that can be used to store an ID from an external system.
external_id2 string A text field that can be used to store an ID from an external system.

Show Info Response Parameters

Parameter Type Description
trailers[url] string A url link to the location of the trailer.
trailers[type] string Deprecated. This is no longer used.
overview string The synopsis of the TV show.
genres string A list of genres of the TV show.
certification string Deprecated. This is no longer used.
languages string A list of languages used throughout the TV show.
countries string A list of countries where the TV show was made.
tagline string A brief description about the show that is displayed in the carousel.
release_date string The date the TV show was publicly released.
subtitles string A list of subtitle languages if the TV show contains them.
studio[name] string The name of the studio or production company.
title string The title of the show.
tags string List of tags specific to the season

Examples

Request TV Season Meta for TV Show 1 Season 1 and TV Show 2 Season 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/season/show_multiple?items=/tv/1/season/1,/tv/2/season/1'

Response: Success

HttpStatus: 200
{
  "seasons":[
    {
      "crew":[
        {
          "name":"Mike Smith",
          "job":"Director"
        },
        {
          "name":"Joshua Frizzell",
          "job":"Director"
        },
        {
          "name":"Michael Hurst",
          "job":"Director"
        },
        {
          "name":"Timothy Balme",
          "job":"Writer"
        },
        {
          "name":"Philip Dalkin",
          "job":"Writer"
        },
        {
          "name":"James Griffin",
          "job":"Writer"
        },
        {
          "name":"Chris Bailey",
          "job":"Producer"
        },
        {
          "name":"John Barnett",
          "job":"Executive Producer"
        },
        {
          "name":"Kelly Martin",
          "job":"Executive Producer"
        }
      ],
      "cast":[

      ],
      "episodes":[
        {
          "number":"",
          "overview":"When two fishermen find the body of a local farmer in the river, Detective Inspector Mike Shepherd is sent to the small rural town of Brokenwood to investigate the death. Is this the suicide of a man guilty of his own wife's murder or is he the victim of foul play? As Mike uncovers a family's tragedies and secrets he also learns that Brokenwood is a place where shadows lurk just beneath the surface.",
          "still_path":"",
          "meta_data":{
            "air_date":"2014-09-08T12:00:00.000Z"
          },
          "title":"Blood and Water",
          "episode_number":1,
          "air_date":"2014-09-27T12:00:00.000Z",
          "runtime":90,
          "displayTitle":"Episode 1. Blood and Water",
          "tags": [
            "pilot", "fishermen"
          ]
        },
        {
          "episode_number":2,
          "title":"Sour Grapes",
          "overview":"The annual Brokenwood wine show is a major event and having bought a 10-acre block with maturing grapes, no one is looking forward to it more than Detective Mike Shepherd. But when a guest judge and wine critic is found dead inside a fermenting vat, the show takes second place to the murder investigation.",
          "air_date":"2014-10-04T11:00:00.000Z",
          "runtime":90,
          "displayTitle":"Episode 2. Sour Grapes"
        },
        {
          "episode_number":3,
          "title":"Playing the Lie",
          "overview":"A group of erstwhile members of the Brokenwood Golf Club, committee members no less, have gathered for their regular Wednesday morning round. They are playing their approaches to the first green when a zombie-like figure lurches from the early-morning gloom, coming towards them. It takes the golfers a moment or two (apparently) to realise this is actually Adele Stone, the Club owner - her face red and blistering; gasping desperately for breath. Then she falls from sight, into a greenside bunker. By the time the guys get to her, Ms Stone is very much dead. And so Mike and Kristin are called to investigate what appears to be homicide by poisoning.",
          "air_date":"2014-10-11T11:00:00.000Z",
          "runtime":90,
          "displayTitle":"Episode 3. Playing the Lie"
        },
        {
          "episode_number":4,
          "title":"Hunting the Stag",
          "overview":"Four close friends go hunting in the bush on a stag trip. But the groom-to-be never comes back - he was shot through the head. Initially this would seem to be just another tragic hunting accident amidst picturesque New Zealand bush. The only problem is none of the remaining three friends own up to pulling the trigger that fired the lethal bullet - yet all three had discharged their rifles - with no deer to prove it. The question is - who shot Jaden Reid? Was he mistaken for a real stag or was there something more sinister at play?",
          "air_date":"2014-10-18T11:00:00.000Z",
          "runtime":90,
          "displayTitle":"Episode 4. Hunting the Stag"
        }
      ],
      "trailers":[
        {
          "url":"https://indiereign07-a.akamaihd.net/df979af6-4b03-4eae-aae5-2577bad37550/example_film_480_2000_trailer_kb_trailer_HD.mp4",
          "type":""
        }
      ],
      "bonuses":[

      ],
      "tagline":"The wood is broken",
      "overview":"The wood is broken.",
      "title":"",
      "show_info":{
        "studio":[
          {
            "name":"South Pacific Pictures"
          }
        ],
        "trailers":[

        ],
        "overview":"The series comprises four two-hour murder mystery stories set in a seemingly quiet country town where the town’s newest resident, Detective Inspector Mike Shepherd, finds that murder lurks in even the most homely location.  \n  \nNeill Rea (_Scarfies, Legend of the Seeker, Go Girls_) stars in the lead role of DI Shepherd while Fern Sutherland (_The Almighty Johnsons_) plays Detective Constable Kristin Sims.  \n  \nEach telefeature in the series is a standalone story which sees the show’s two lead police officers trying to solve a murder case. Chris Bailey (_Nothing Trivial, Street Legal_) is Producer while Tim Balme (_Stolen, The Almighty Johnsons_) is the lead writer. James Griffin (_Outrageous Fortune, The Almighty Johnsons, Sione’s Wedding_) has also penned one script.  \n  \nSeries directors include Mike Smith (_Siege, Sunny Skies_), Michael Hurst (_Step Dave, Spartacus, The Almighty Johnsons_) and Josh Frizzell (_Go Girls, Nothing Trivial_).",
        "genres":[
          "Drama",
          "Mystery"
        ],
        "certification":"M",
        "title":"The Brokenwood Mysteries",
        "languages":[
          "English"
        ],
        "countries":[
          "New Zealand"
        ],
        "release_date":"2014-09-27T12:00:00.000Z",
        "tagline":"The series comprises four two-hour murder mystery stories set in a seemingly quiet country town where the town’s newest resident, Detective Inspector Mike Shepherd, finds that murder lurks in even the most homely location.",
        "available_seasons":[
          "/tv/2/season/1"
        ],
        "tags": [
          "nz", "whodunnit", "rural"
        ]
      },
      "item":"/tv/2/season/1",
      "season_num":1,
      "recommendations":[

      ]
    },
    {
      "crew":[
        {
          "name":"Gaylene Preston",
          "job":"Director"
        },
        {
          "name":"Dave Armstrong",
          "job":"Writer"
        },
        {
          "name":"Gaylene Preston",
          "job":"Writer"
        }
      ],
      "cast":[
        {
          "name":"Bernard Hill",
          "job":"",
          "character":"Len Russell"
        },
        {
          "name":"Rachel House",
          "job":"",
          "character":"Joycie Waru"
        },
        {
          "name":"Jarod Rawiri",
          "job":"",
          "character":"Ryan"
        },
        {
          "name":"Miriama McDowell",
          "job":"",
          "character":"Donna"
        },
        {
          "name":"Stephen Lovatt",
          "job":"",
          "character":"Jonty Smith-Robinson"
        },
        {
          "name":"Luanne Gordon",
          "job":"",
          "character":"Ginny Smith-Robinson"
        },
        {
          "name":"Joel Tobeck",
          "job":"",
          "character":"Greggo"
        }
      ],
      "episodes":[
        {
          "episode_number":1,
          "title":"Part One",
          "overview":"When Len and Joycie are jolted off their couch and into their backyard by a massive earthquake, they find their young neighbours unexpectedly helpful. But unsavoury elements are on the prowl and continuing aftershocks are shredding everyone’s nerves to breaking point. Tuesday February 22, 2011 dawns peacefully enough but little does Ginny know that at 12.51pm a lethal earthquake will reveal fractures in her family that she cannot ignore. Joycie fears for Len in Lyttelton, but to Monee the earthquake means freedom.",
          "air_date":"2014-07-02T12:00:00.000Z",
          "runtime":87,
          "displayTitle":"Episode 1. Part One"
        },
        {
          "episode_number":2,
          "title":"Part Two",
          "overview":"In the post-earthquake ‘new normal’, Ryan is living in his ute outside his liquefied dream home.  Joycie shines as camp mother to inner-city waifs and strays, while Jonty becomes ever more desperate to get to his office through the closed red zone cordon. Quake runner Donna is frustrated when Ryan visits the family in Auckland and can’t get the shaky city out of his mind.  Ginny confronts Jonty over his guilty secrets.  Monee, on the run and squatting in the deserted suburb Atlantis, puts Ryan in danger.",
          "runtime":86,
          "air_date":"2014-07-09T12:00:00.000Z",
          "displayTitle":"Episode 2. Part Two"
        },
        {
          "episode_number":3,
          "title":"Part Three",
          "overview":"Len and Joycie break the abuse cycle that has Monee in its grip, while dealing with the consequences of a TV interview in which Len has said too much.  Dwayne shows he’s not so hopeless after all and Ryan realises the hard truth about his mate Greggo. Joycie’s honesty costs her her job caring for Aunt Dorothy and Len tries to make amends by organising a party with The Eastern playing.  Ginny does a vital deal with Monee and makes a bid for her own freedom, while Ryan’s isolation takes him to the brink.",
          "air_date":"2014-07-13T12:00:00.000Z",
          "runtime":87,
          "displayTitle":"Episode 3. Part Three"
        }
      ],
      "trailers":[
        {
          "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
          "type":"Full"
        }
      ],
      "bonuses":[

      ],
      "tagline":"Hope and Wire follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011.",
      "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
      "title":null,
      "external_id":"ID1234c.d",
      "external_id2":"ID5678e.f",
      "show_info":{
        "trailers":[
          {
            "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
            "type":""
          }
        ],
        "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
        "genres":[
          "Drama"
        ],
        "certification":"M",
        "languages":[
          "English"
        ],
        "countries":[
          "New Zealand"
        ],
        "tagline":"Hope and Wire is a gripping, emotional, character-based drama set in Christchurch after the devastating earthquakes of 2010-2011.",
        "release_date":"2014-07-02T12:00:00.000Z",
        "subtitles":[
          "Maori"
        ],
        "studio":[
          {
            "name":"Gaylene Preston Productions"
          }
        ],
        "title":"Hope and Wire",
        "available_seasons":[
          "/tv/1/season/1"
        ]
      },
      "item":"/tv/1/season/1",
      "season_num":1,
      "recommendations":[
        "/film/97",
        "/tv/3/season/1",
        "/tv/2/season/1",
        "/film/79",
        "/film/131",
        "/film/49"
      ]
    }
  ]
}
Summary: Update a TV season's meta data
Authentication: X-Auth Admin
                      PUT /services/meta/v2/tv/[show_id]/season/[season_id]/update
                    

Description

Use this API to replace the meta data for a specific TV season. This API is only accessible to users who have the admin role.

Request Parameters

The same as the TV Season Meta data.

Response Parameters

Returns TV Season Meta.

Examples

Update the Meta Data for TV Show 1, Season 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/1/season/1/update' \
  -X PUT \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "tv_season":{
      "meta_data":{
        "crew":[
          {
            "name":"Gaylene Preston",
            "job":"Director"
          },
          {
            "name":"Dave Armstrong",
            "job":"Writer"
          },
          {
            "name":"Gaylene Preston",
            "job":"Writer"
          }
        ],
        "cast":[
          {
            "name":"Bernard Hill",
            "job":"",
            "character":"Len Russell"
          },
          {
            "name":"Rachel House",
            "job":"",
            "character":"Joycie Waru"
          },
          {
            "name":"Jarod Rawiri",
            "job":"",
            "character":"Ryan"
          },
          {
            "name":"Miriama McDowell",
            "job":"",
            "character":"Donna"
          },
          {
            "name":"Stephen Lovatt",
            "job":"",
            "character":"Jonty Smith-Robinson"
          },
          {
            "name":"Luanne Gordon",
            "job":"",
            "character":"Ginny Smith-Robinson"
          },
          {
            "name":"Joel Tobeck",
            "job":"",
            "character":"Greggo"
          }
        ],
        "episodes":[
          {
            "episode_number":1,
            "title":"Part One",
            "overview":"When Len and Joycie are jolted off their couch and into their backyard by a massive earthquake, they find their young neighbours unexpectedly helpful. But unsavoury elements are on the prowl and continuing aftershocks are shredding everyone\u2019s nerves to breaking point. Tuesday February 22, 2011 dawns peacefully enough but little does Ginny know that at 12.51pm a lethal earthquake will reveal fractures in her family that she cannot ignore. Joycie fears for Len in Lyttelton, but to Monee the earthquake means freedom.",
            "air_date":"2014-07-02T12:00:00.000Z",
            "runtime":87,
            "displayTitle":"Episode 1. Part One"
          },
          {
            "episode_number":2,
            "title":"Part Two",
            "overview":"In the post-earthquake \u2018new normal\u2019, Ryan is living in his ute outside his liquefied dream home.  Joycie shines as camp mother to inner-city waifs and strays, while Jonty becomes ever more desperate to get to his office through the closed red zone cordon. Quake runner Donna is frustrated when Ryan visits the family in Auckland and can\u2019t get the shaky city out of his mind.  Ginny confronts Jonty over his guilty secrets.  Monee, on the run and squatting in the deserted suburb Atlantis, puts Ryan in danger.",
            "runtime":86,
            "air_date":"2014-07-09T12:00:00.000Z",
            "displayTitle":"Episode 2. Part Two"
          },
          {
            "episode_number":3,
            "title":"Part Three",
            "overview":"Len and Joycie break the abuse cycle that has Monee in its grip, while dealing with the consequences of a TV interview in which Len has said too much.  Dwayne shows he\u2019s not so hopeless after all and Ryan realises the hard truth about his mate Greggo. Joycie\u2019s honesty costs her her job caring for Aunt Dorothy and Len tries to make amends by organising a party with The Eastern playing.  Ginny does a vital deal with Monee and makes a bid for her own freedom, while Ryan\u2019s isolation takes him to the brink.",
            "air_date":"2014-07-13T12:00:00.000Z",
            "runtime":87,
            "displayTitle":"Episode 3. Part Three"
          }
        ],
        "trailers":[
          {
            "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
            "type":"Full"
          }
        ],
        "bonuses":[

        ],
        "tags": [ "Christchurch earthquake", " 2011 " ],
        "tagline":"Hope and Wire follows the aftermath of the Earthquakes that befell New Zealand\u2019s Christchurch between 2010 and 2011.",
        "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand\u2019s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds."
      },
      "id":3,
      "imdb_id":null,
      "published_date":"2014-10-31T11:00:00.000Z",
      "seo_description":null,
      "seo_keywords":null,
      "seo_title":null,
      "status_id":2,
      "season":1
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":3,
  "tv_info_id":1,
  "season":1,
  "title":null,
  "imdb_id":null,
  "meta_data":{
    "crew":[
      {
        "name":"Gaylene Preston",
        "job":"Director"
      },
      {
        "name":"Dave Armstrong",
        "job":"Writer"
      },
      {
        "name":"Gaylene Preston",
        "job":"Writer"
      }
    ],
    "cast":[
      {
        "name":"Bernard Hill",
        "job":"",
        "character":"Len Russell"
      },
      {
        "name":"Rachel House",
        "job":"",
        "character":"Joycie Waru"
      },
      {
        "name":"Jarod Rawiri",
        "job":"",
        "character":"Ryan"
      },
      {
        "name":"Miriama McDowell",
        "job":"",
        "character":"Donna"
      },
      {
        "name":"Stephen Lovatt",
        "job":"",
        "character":"Jonty Smith-Robinson"
      },
      {
        "name":"Luanne Gordon",
        "job":"",
        "character":"Ginny Smith-Robinson"
      },
      {
        "name":"Joel Tobeck",
        "job":"",
        "character":"Greggo"
      }
    ],
    "episodes":[
      {
        "episode_number":1,
        "title":"Part One",
        "overview":"When Len and Joycie are jolted off their couch and into their backyard by a massive earthquake, they find their young neighbours unexpectedly helpful. But unsavoury elements are on the prowl and continuing aftershocks are shredding everyone’s nerves to breaking point. Tuesday February 22, 2011 dawns peacefully enough but little does Ginny know that at 12.51pm a lethal earthquake will reveal fractures in her family that she cannot ignore. Joycie fears for Len in Lyttelton, but to Monee the earthquake means freedom.",
        "air_date":"2014-07-02T12:00:00.000Z",
        "runtime":87,
        "displayTitle":"Episode 1. Part One"
      },
      {
        "episode_number":2,
        "title":"Part Two",
        "overview":"In the post-earthquake ‘new normal’, Ryan is living in his ute outside his liquefied dream home.  Joycie shines as camp mother to inner-city waifs and strays, while Jonty becomes ever more desperate to get to his office through the closed red zone cordon. Quake runner Donna is frustrated when Ryan visits the family in Auckland and can’t get the shaky city out of his mind.  Ginny confronts Jonty over his guilty secrets.  Monee, on the run and squatting in the deserted suburb Atlantis, puts Ryan in danger.",
        "runtime":86,
        "air_date":"2014-07-09T12:00:00.000Z",
        "displayTitle":"Episode 2. Part Two"
      },
      {
        "episode_number":3,
        "title":"Part Three",
        "overview":"Len and Joycie break the abuse cycle that has Monee in its grip, while dealing with the consequences of a TV interview in which Len has said too much.  Dwayne shows he’s not so hopeless after all and Ryan realises the hard truth about his mate Greggo. Joycie’s honesty costs her her job caring for Aunt Dorothy and Len tries to make amends by organising a party with The Eastern playing.  Ginny does a vital deal with Monee and makes a bid for her own freedom, while Ryan’s isolation takes him to the brink.",
        "air_date":"2014-07-13T12:00:00.000Z",
        "runtime":87,
        "displayTitle":"Episode 3. Part Three"
      }
    ],
    "trailers":[
      {
        "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
        "type":"Full"
      }
    ],
    "bonuses":[

    ],
    "tagline":"Hope and Wire follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011.",
    "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
    "title":null,
    "tags": [ "2011", "christchurch earthquake" ]
  },
  "published_date":"2014-10-31T11:00:00.000Z",
  "status_id":2,
  "created_at":"2014-11-13T01:36:31.218Z",
  "updated_at":"2015-05-28T22:17:26.077Z",
  "seo_title":null,
  "seo_keywords":null,
  "seo_description":null
}

Response: Missing Data

HttpStatus: 422
{
  "error":{
    "meta_data":[
      "can't be blank"
    ]
  }
}

Response: Season Doesn’t Exist

HttpStatus: 422
{
  "error":"No tv show season found for provided id"
}

Response: Unauthorized

HttpStatus: 401
Summary: Request TV show meta data
Authentication: None
                      GET /services/meta/v2/tv/[show_id]/show
                    

Description

Use this API to get meta data for a specific TV show. This API does not provide any information about the TV show’s seasons.

Response Parameters

Parameter Type Description
id number The unique ID of the TV show.
title string The title of the show.
imdb_id string Deprecated. This is no longer used.
status_id number Deprecated. TV shows don’t use publish status, only seasons have a publish status.
published_date string Deprecated. Refer to the TV season for publish status.
trailers[url] string A url link to the location of the trailer.
trailers[type] string Deprecated. This is no longer used.
overview string The synopsis of the TV show.
genres string A list of genres of the TV show.
certification string Deprecated. This is no longer used.
languages string A list of languages used throughout the TV show.
countries string A list of countries where the TV show was made.
tagline string A brief description about the show that is displayed in the carousel.
release_date string The date the TV show was publicly released.
subtitles string Deprecated Refer to individual episodes for subtitle information.
studio[name] string The name of the studio or production company.
portrait_image string The URL of the portrait image.
landscape_image string The URL of the landscape image.
seo_image string The URL of the SEO image.
tags string Alphabetically-ordered list of unique, lower-case tags

Examples

Request TV Show Meta for TV Show 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/1/show'

Response: Success

HttpStatus: 200
{
  "id":1,
  "title":"Hope and Wire",
  "imdb_id":"",
  "status_id":2,
  "published_date":"2014-06-03T12:00:00.000Z",
  "meta_data":{
    "trailers":[
      {
        "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
        "type":""
      }
    ],
    "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
    "genres":[
      "Drama"
    ],
    "certification":"M",
    "languages":[
      "English"
    ],
    "countries":[
      "New Zealand"
    ],
    "tagline":"Hope and Wire is a gripping, emotional, character-based drama set in Christchurch after the devastating earthquakes of 2010-2011.",
    "release_date":"2014-07-02T12:00:00.000Z",
    "subtitles": "Maori",
    "studio":[
      {
        "name":"Gaylene Preston Productions"
      }
    ],
    "title":"Hope and Wire",
    "tags": [
      "2011", "christchurch earthquake"
    ]
  }
}

Response: TV Show Doesn’t Exist

HttpStatus: 404
{
  "error":"No tv show info found for provided id"
}
Summary: Create a new TV show
Authentication: X-Auth Admin
                      POST /services/meta/v2/tv/create
                    

Description

Use this API to create a new TV show. This API is only accessible to users who have the admin role.

Request Parameters

Title, status_id, and meta_data are compulsory. Any of the other TV Show Meta can be optionally supplied.

Response Parameters

Returns TV Show Meta.

Examples

Create a New TV Show

curl -i 'https://store.shift72.com/services/meta/v2/tv/create' \
  -X POST \
  -H 'x-auth-token: 0ea355273d73e28ac171a4b26b5bb946' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{
    "tv_info":{
      "title":"New TV Show",
      "status_id":1,
      "meta_data":{
        "trailers":[
        ],
        "studio":[
        ],
        "genres":[
        ],
        "tags":[
          "ONE", "two", "three"
        ]
      }
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":31,
  "client_id":2,
  "studio_id":null,
  "title":"New TV Show",
  "seasons":null,
  "created_at":"2015-05-28T20:30:55.016Z",
  "updated_at":"2015-05-28T20:30:55.016Z",
  "imdb_id":null,
  "meta_data":{
    "trailers":[
    ],
    "studio":[
    ],
    "genres":[
    ],
    "tags":[
      "one", "three", "two"
    ],
    "title":"New TV Show"
  },
  "status_id":1,
  "published_date":null
}

Response: Missing Data

HttpStatus: 422
{
  "error":{
    "meta_data":[
      "can't be blank"
    ]
  }
}

Response: Unauthorized

HttpStatus: 401
Summary: Request meta for all seasons of a TV show
Authentication: None
                      GET /services/meta/v2/tv/[show_id]/seasons
                    

Description

Use this API to get meta data for all seasons of a specific TV Show.

Response Parameters

Returns an array of TV Season Meta

Examples

Request Meta Data for All TV Seasons for TV Show 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/1/seasons'

Response: Success

HttpStatus: 200
[
  {
    "id":3,
    "tv_info_id":1,
    "season":1,
    "title":null,
    "imdb_id":null,
    "meta_data":{
      "crew":[
        {
          "name":"Gaylene Preston",
          "job":"Director"
        },
        {
          "name":"Dave Armstrong",
          "job":"Writer"
        },
        {
          "name":"Gaylene Preston",
          "job":"Writer"
        }
      ],
      "cast":[
        {
          "name":"Bernard Hill",
          "job":"",
          "character":"Len Russell"
        },
        {
          "name":"Rachel House",
          "job":"",
          "character":"Joycie Waru"
        },
        {
          "name":"Jarod Rawiri",
          "job":"",
          "character":"Ryan"
        },
        {
          "name":"Miriama McDowell",
          "job":"",
          "character":"Donna"
        },
        {
          "name":"Stephen Lovatt",
          "job":"",
          "character":"Jonty Smith-Robinson"
        },
        {
          "name":"Luanne Gordon",
          "job":"",
          "character":"Ginny Smith-Robinson"
        },
        {
          "name":"Joel Tobeck",
          "job":"",
          "character":"Greggo"
        }
      ],
      "episodes":[
        {
          "episode_number":1,
          "title":"Part One",
          "overview":"When Len and Joycie are jolted off their couch and into their backyard by a massive earthquake, they find their young neighbours unexpectedly helpful. But unsavoury elements are on the prowl and continuing aftershocks are shredding everyone’s nerves to breaking point. Tuesday February 22, 2011 dawns peacefully enough but little does Ginny know that at 12.51pm a lethal earthquake will reveal fractures in her family that she cannot ignore. Joycie fears for Len in Lyttelton, but to Monee the earthquake means freedom.",
          "air_date":"2014-07-02T12:00:00.000Z",
          "runtime":87,
          "displayTitle":"Episode 1. Part One"
        },
        {
          "episode_number":2,
          "title":"Part Two",
          "overview":"In the post-earthquake ‘new normal’, Ryan is living in his ute outside his liquefied dream home.  Joycie shines as camp mother to inner-city waifs and strays, while Jonty becomes ever more desperate to get to his office through the closed red zone cordon. Quake runner Donna is frustrated when Ryan visits the family in Auckland and can’t get the shaky city out of his mind.  Ginny confronts Jonty over his guilty secrets.  Monee, on the run and squatting in the deserted suburb Atlantis, puts Ryan in danger.",
          "runtime":86,
          "air_date":"2014-07-09T12:00:00.000Z",
          "displayTitle":"Episode 2. Part Two"
        },
        {
          "episode_number":3,
          "title":"Part Three",
          "overview":"Len and Joycie break the abuse cycle that has Monee in its grip, while dealing with the consequences of a TV interview in which Len has said too much.  Dwayne shows he’s not so hopeless after all and Ryan realises the hard truth about his mate Greggo. Joycie’s honesty costs her her job caring for Aunt Dorothy and Len tries to make amends by organising a party with The Eastern playing.  Ginny does a vital deal with Monee and makes a bid for her own freedom, while Ryan’s isolation takes him to the brink.",
          "air_date":"2014-07-13T12:00:00.000Z",
          "runtime":87,
          "displayTitle":"Episode 3. Part Three"
        }
      ],
      "trailers":[
        {
          "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
          "type":"Full"
        }
      ],
      "bonuses":[

      ],
      "tags": [
        "2011", "christchurch earthquake"
      ],
      "tagline":"Hope and Wire follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011.",
      "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
      "title":null
    },
    "published_date":"2014-10-31T11:00:00.000Z",
    "status_id":2,
    "created_at":"2014-11-13T01:36:31.218Z",
    "updated_at":"2015-04-23T01:21:47.544Z",
    "seo_title":null,
    "seo_keywords":null,
    "seo_description":null
  }
]

Response: TV Show Doesn’t Exist

HttpStatus: 422
{
  "error":"No tv show info found for provided id"
}
Summary: Update a TV show's meta data
Authentication: X-Auth Admin
                      PUT /services/meta/v2/tv/[show_id]/update
                    

Description

Use this API to replace the meta data for a specific TV show. This API is only accessible to users who have the admin role.

Request Parameters

The same as the TV Show Meta data.

Response Parameters

Returns TV Show Meta.

Examples

Update the Meta Data for TV Show 1

curl -i 'https://store.shift72.com/services/meta/v2/tv/1/update' \
  -X PUT \
  -H 'x-auth-token: 1a1f4363bac4df5ba34758945fae8d0d' \
  -H 'content-type: application/json;charset=UTF-8' \
  --data-binary '{ "tv_info":{
    "meta_data":{
      "trailers":[
        {
          "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
          "type":""
        }
      ],
      "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand\u2019s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
      "genres":[
        "Drama"
      ],
      "certification":"M",
      "languages":[
        "English"
      ],
      "countries":[
        "New Zealand"
      ],
      "tagline":"Hope and Wire is a gripping, emotional, character-based drama set in Christchurch after the devastating earthquakes of 2010-2011.",
      "release_date":"2014-07-02T12:00:00.000Z",
      "subtitles":"",
      "studio":[
        {
          "name":"Gaylene Preston Productions"
        }
      ],
      "tags": [
        "Christchurch earthquake", "2011"
      ]
    },
    "id":1,
    "imdb_id":"",
    "published_date":"2014-06-03T12:00:00.000Z",
    "status_id":2,
    "title":"Hope and Wire"
    }
  }'

Response: Success

HttpStatus: 200
{
  "id":1,
  "title":"Hope and Wire",
  "imdb_id":"",
  "status_id":2,
  "published_date":"2014-06-03T12:00:00.000Z",
  "meta_data":{
    "trailers":[
      {
        "url":"https://d2lf58gg5i6o7t.cloudfront.net/7c03f8e5-c130-4110-bffd-5c9b4a864715/hope_and_wire_-_episode_one_480_2000_trailer_kb_trailer_HD.mp4",
        "type":""
      }
    ],
    "overview":"Inspired by true events, first-hand accounts and employing actual newsreel footage, _Hope and Wire_ follows the aftermath of the Earthquakes that befell New Zealand’s Christchurch between 2010 and 2011, telling a universal story of family, hope and triumph against the odds.",
    "genres":[
      "Drama"
    ],
    "certification":"M",
    "languages":[
      "English"
    ],
    "countries":[
      "New Zealand"
    ],
    "tagline":"Hope and Wire is a gripping, emotional, character-based drama set in Christchurch after the devastating earthquakes of 2010-2011.",
    "release_date":"2014-07-02T12:00:00.000Z",
    "subtitles":"",
    "studio":[
      {
        "name":"Gaylene Preston Productions"
      }
    ],
    "title":"Hope and Wire",
    "tags":[
      "2011", "christchurch earthquake"
    ]
  },
  "updated_at":"2015-05-28T22:09:42.384Z"
}

Response: Missing Data

HttpStatus: 422
{
  "error":{
    "meta_data":[
      "can't be blank"
    ]
  }
}

Response: TV Show Doesn’t Exist

HttpStatus: 422
{
  "error":"No tv show info found for provided id"
}

Response: Unauthorized

HttpStatus: 401
Summary: Request configuration settings, pages and feature toggles
Authentication: None
                  GET /services/meta/v2/bios
                

Description

Use this API to get the configuration settings, pages and feature toggles for the Meta service from one API call.

Response Parameters

Returns Configuration, Navigation, Pages, and Feature Toggles.

Examples

BIOS Request

curl -i 'https://store.shift72.com/services/meta/v2/bios'
Summary: Request meta feature toggle settings
Authentication: None
                  GET /services/meta/feature_toggles
                

Description

Use this API to get the feature toggle settings for the Meta service. The feature toggles are used to control if clients have access to features that are in beta. The feature toggles are not listed here as they are usually short lived and are only required for controlling access to features that are in beta testing.

Examples

Meta Feature Toggles Request

curl -i 'https://store.shift72.com/services/meta/feature_toggles'

Response: Success

HttpStatus: 200
{  
  "films_have_classification_images":true,
  "show_film_find_meta":false
}
Summary: Upload an image
Authentication: X-Auth Admin
                  POST /services/meta/v2/image/upload/[slug]
                

Description

Use this API to upload an image. The image can be in JPEG, PNG or GIF format (not animated GIF). This API is only accessible to users who have the admin role.

Request Parameters

Parameter Type Description
width number The width of the image to be resized to.
height number The height of the image to be resized to.
slug string The unique ID of the item formatted in a usable format.
skip_resize bool Set to true if the image is not to be resized.

Response Parameters

Parameter Type Description
path string The full url path to the image.
relative_path string The relative path to the image.

Examples

Upload Portrait Image for Film 92

curl -i 'https://store.shift72.com/services/meta/v2/image/upload/film/92' \
  -H 'X-AUTH-TOKEN: 1a1f4363bac4df5ba34758945fae8d0d' \
  -F file=@/Users/simon/Desktop/Portrait.jpg -F image="{\"width\":\"282\",\"height\":\"422\"}" \
  -H 'Accept: application/json, text/plain, */*'

Response: Success

HttpStatus: 200
{  
   "path":"https://dyyg3gctauh2l.cloudfront.net/staging/posters-and-backdrops/282x422/film/396/9d211289ce95568e96eea84285b995f2.jpg",
   "relative_path":"/posters-and-backdrops/282x422/film/396/9d211289ce95568e96eea84285b995f2.jpg"
}

Response: Unauthorized

HttpStatus: 401
Summary: Request an array of slugs for published films and TV seasons that aren't in a collection
Authentication: X-Auth Admin
                  GET /services/meta/v1/orphans
                

Description

Use this API to get an array of slugs for published films and TV seasons that aren’t in a collection. This API is only accessible to users who have the admin role.

Examples

Request for Orphans

curl -i 'https://store.shift72.com/services/meta/v1/orphans'

Response: Success

HttpStatus: 200
[
  "/film/1",
  "/tv/1/season/1"
]

Response: Unauthorized

HttpStatus: 401
Summary: Search for films and TV seasons
Authentication: None
                  GET /services/meta/v1/search/?page=[pg]&per_page=[num]&query=[search_string]
                

Description

Use this API to search for films and TV seasons that are available on the site. A search can be by plain text or search by matching genre. Only film and TV seasons that are published will be returned.

Query String Request Parameters

Parameter Description
page The search page number.
per_page The number of items to return per page. All results are returned if this is not passed.
query The string to search on.
genre The genre to search on.

Pagination Header Response Parameters

Pagination information is returned via the header Pagination

Parameter Type Description
page_size number The number of items per page.
first_page number The number of the first page.
next_page number The number of the next page.
prev_page number The number of the previous page.
last_page number The number of the last page.
total_count number The total number of items found in the search.
pages_count number The total number of pages.

Response Parameters

An array of item slugs is returned.

Examples

Search for King

curl -i 'https://store.shift72.com/services/meta/v1/search/?page=1&query=king'

Search for Genre of Comedy

curl -i 'https://store.shift72.com/services/meta/v1/search/?page=1&genre=comedy'

Response: Success

HttpStatus: 200
[  
  "/film/81",
  "/film/73",
  "/film/72"
]