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
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
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
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
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"
]
}
]
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
[]
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
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
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
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
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
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."
}
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
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
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
Featured Index Request
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"
]
}
]
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
Featured Collection Items for Collection 20
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."
}
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
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
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"
}
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
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
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
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
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
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."
}
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
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
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
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
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
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
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"
}
]
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"
}
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
[]
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"
]
}
]
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
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
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
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
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
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
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
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
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
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
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
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
}
]
}
]
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
[]
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"
}
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
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
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"
]
}
]
}
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
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"
}
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
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"
}
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
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'
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
}
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
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
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"
]