NAV
shell

Introduction

Welcome to the VideoPlasty API! Our API provides programmatic access to VideoPlasty stock assets. You can integrate this API into your organization's applications and processes.

You can use our API to access Videoplasty API endpoints, which can get a list of products, details of product and allow you to purchase and download a product. You can retrieve assets such as Stock Animation or Stock GIFs.

We have language bindings in Shell. You can view code examples in the dark area to the right.

You can also load a collection of the endpoints into the REST API client Postman by importing from this JSON file: Download

Products

Get All Products

require 'kittn'

api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.get
import kittn

api = kittn.authorize('meowmeowmeow')
api.kittens.get()
curl --request GET \
  --url https://api.videoplasty.com/api/v2/api_system/products?token={your token}&per_page=5
OR
curl --request GET \
  --url https://api.videoplasty.com/api/v2/api_system/products \
    -d token={your token} \
    -d per_page=5
const kittn = require('kittn');

let api = kittn.authorize('meowmeowmeow');
let kittens = api.kittens.get();

The above command returns JSON structured like this:

{
    "data": [
        {
            "id": "17788",
            "type": "product",
            "attributes": {
                "id": 17788,
                "name": "Hand Holding Leaf",
                "slug": "hand-holding-leaf-17788",
                "product_type": "animation",
                "plp_preview_url": "https://cdn.videoplasty.com/previews/videoplasty-17788-hand-holding-leaf-stock-animation-plp.mp4",
                "category": "Stock Animation"
            },
            "relationships": {
                "images": {
                    "data": [
                        {
                            "id": "39441",
                            "type": "image"
                        }
                    ]
                }
            }
        },
        {
            "id": "4501",
            "type": "product",
            "attributes": {
                "id": 4501,
                "name": "White Casual Woman Waving",
                "slug": "white-casual-woman-waving-4501",
                "product_type": "animation",
                "plp_preview_url": "https://cdn.videoplasty.com/previews/videoplasty-4501-white-casual-woman-waving-stock-animation-plp.mp4",
                "category": "Stock Animation"
            },
            "relationships": {
                "images": {
                    "data": [
                        {
                            "id": "11044",
                            "type": "image"
                        }
                    ]
                }
            }
        },
        {
            "id": "5811",
            "type": "product",
            "attributes": {
                "id": 5811,
                "name": "Asian Casual Man Sick with Covid",
                "slug": "asian-casual-man-sick-with-covid-5811",
                "product_type": "animation",
                "plp_preview_url": "https://cdn.videoplasty.com/previews/videoplasty-5811-asian-casual-man-sick-with-covid-stock-animation-plp.mp4",
                "category": "Stock Animation"
            },
            "relationships": {
                "images": {
                    "data": [
                        {
                            "id": "13869",
                            "type": "image"
                        }
                    ]
                }
            }
        },
        {
            "id": "6400",
            "type": "product",
            "attributes": {
                "id": 6400,
                "name": "COVID-19 Personal Protective Equipment Ok",
                "slug": "covid-19-personal-protective-equipment-ok-6400",
                "product_type": "animation",
                "plp_preview_url": "https://cdn.videoplasty.com/previews/videoplasty-6400-covid-19-personal-protective-equipment-ok-stock-animation-plp.mp4",
                "category": "Stock Animation"
            },
            "relationships": {
                "images": {
                    "data": [
                        {
                            "id": "16144",
                            "type": "image"
                        }
                    ]
                }
            }
        },
        {
            "id": "11166",
            "type": "product",
            "attributes": {
                "id": 11166,
                "name": "Christmas Tree Icon",
                "slug": "christmas-tree-icon-11166",
                "product_type": "animation",
                "plp_preview_url": "https://cdn.videoplasty.com/previews/videoplasty-11166-christmas-tree-icon-stock-animation-plp.mp4",
                "category": "Stock Animation"
            },
            "relationships": {
                "images": {
                    "data": [
                        {
                            "id": "22283",
                            "type": "image"
                        }
                    ]
                }
            }
        }
    ],
    "meta": {
        "count": 5,
        "total_count": 29,
        "total_pages": 6
    },
    "links": {
        "self": "https://api.videoplasty.com/api/v2/api_system/products?per_page=5&token=9aded1f74d5452c50669c705f0773e56684e3c2c2a61a34f151a4e733d8c7dac",
        "next": "https://api.videoplasty.com/api/v2/api_system/products?page=2&per_page=5&token=9aded1f74d5452c50669c705f0773e56684e3c2c2a61a34f151a4e733d8c7dac",
        "prev": "https://api.videoplasty.com/api/v2/api_system/products?page=1&per_page=5&token=9aded1f74d5452c50669c705f0773e56684e3c2c2a61a34f151a4e733d8c7dac",
        "last": "https://api.videoplasty.com/api/v2/api_system/products?page=6&per_page=5&token=9aded1f74d5452c50669c705f0773e56684e3c2c2a61a34f151a4e733d8c7dac",
        "first": "https://api.videoplasty.com/api/v2/api_system/products?page=1&per_page=5&token=9aded1f74d5452c50669c705f0773e56684e3c2c2a61a34f151a4e733d8c7dac"
    },
    "filters": {
        "number-of-people": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "1",
                    "doc_count": 25
                }
            ],
            "name": "Number of People",
            "type": "integer"
        },
        "duration": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "10",
                    "doc_count": 29
                }
            ],
            "name": "Duration",
            "type": "duration"
        },
        "transparent-background": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "yes",
                    "doc_count": 27
                },
                {
                    "key": "no",
                    "doc_count": 2
                }
            ],
            "name": "Transparent Background",
            "type": "boolean"
        },
        "gender": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "male",
                    "doc_count": 13
                },
                {
                    "key": "female",
                    "doc_count": 12
                }
            ],
            "name": "Gender",
            "type": "multi-option"
        },
        "looping": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "yes",
                    "doc_count": 27
                },
                {
                    "key": "no",
                    "doc_count": 2
                }
            ],
            "name": "Looping",
            "type": "boolean"
        },
        "format": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "mov",
                    "doc_count": 29
                }
            ],
            "name": "Format",
            "type": "multi-option"
        },
        "resolution-category": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "1080",
                    "doc_count": 28
                },
                {
                    "key": "4k",
                    "doc_count": 1
                }
            ],
            "name": "Resolution Category",
            "type": "option"
        },
        "encoding": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "apple-prores-4444",
                    "doc_count": 29
                }
            ],
            "name": "Encoding",
            "type": "multi-option"
        },
        "category": {
            "doc_count": 29,
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "stock-animation",
                    "doc_count": 29
                }
            ],
            "name": "category",
            "type": "multi-option"
        }
    },
    "suggestions": [],
    "price": {
        "min_price": "0.0",
        "max_price": 600
    }
}

Returns a list of products from the marketplace.

HTTP Request

GET https://api.videoplasty.com/api/v2/api_system/products

Query Parameters

Parameter Type Description
token string (required) Use token provided to you

filter[name]

string Find Products with matching name

filter[ids]

string Specify one or more comma separated values of ids of products
Example: 17788,4501

filter[category]

string Specify one or more comma separated values for categories
i.e. stock-animation, stock-gifs
note: if you get empty data for particular category then make sure you have permission to access products of that category/taxon.

filter[properties][looping]

boolean Values : yes or no

filter[properties][transparent-background]

boolean Values : yes or no

filter[properties][duration]

string Specify range for duration of asset. note: values are in seconds
Value : min,max   Example: 11,14

filter[properties][number-of-people]

string Specify one or more comma separated values
Example: 3,4 retrives products containing number-of-people 3 or 4

filter[properties][gender]

string Specify one or more comma separated values
Possible values: male, female

filter[properties][resolution-category]

string Specify one or more comma separated values

filter[properties][format]

string Specify one or more comma separated values

filter[properties][encoding]

string Specify one or more comma separated values
include string Specify what related resources (relationships) you would like to receive in the response body
i.e. images
include_extra_fields string Specify extra fields you would like to receive in the response body
i.e. duration, resolution_category, tags
page integer Number of requested page when paginating collection
Examples: 1
per_page integer Number of requested records per page when paginating collection
25
sort string Use "-" to sort in descending order
Sort products based on:
  • price (ascending)
    -price (descending)
  • created_at (ascending)
    -created_at (descending)
  • best-selling
similar_of string Get list of products similar to specific product by specifying product id
Example: similar_of=19038
locale string Specify locale to get response in specific language. Default language is English.
Available languages are de, fr, es, pt, ja
Example: locale=es
Note: only name and tags of products will be translated to specified language and in case if translation is unavailable it will be returned in english language.

Get a Specific Product

require 'kittn'

api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.get(2)
import kittn

api = kittn.authorize('meowmeowmeow')
api.kittens.get(2)
curl --request GET \
  --url https://api.videoplasty.com/api/v2/api_system/products/{product_id}?token={your token}
OR
curl --request GET \
  --url https://api.videoplasty.com/api/v2/api_system/products/{product_id} \
    -d token={your token}
const kittn = require('kittn');

let api = kittn.authorize('meowmeowmeow');
let max = api.kittens.get(2);

The above command returns JSON structured like this:

{
    "data": {
        "id": "17788",
        "type": "product",
        "attributes": {
            "id": 17788,
            "name": "Hand Holding Leaf",
            "slug": "hand-holding-leaf-17788",
            "product_type": "animation",
            "pdp_preview_url": "https://videoplasty-storage-production.s3.amazonaws.com/previews/videoplasty-17788-hand-holding-leaf-stock-animation-pdp.mp4",
            "category": "Stock Animation",
            "tags": [
                "green",
                "hope",
                "optimism",
                "future",
                "environment",
                "recycle",
                "recycling",
                "recycled",
                "plant",
                "leaf",
                "leaves",
                "soil",
                "organic",
                "hand",
                "hands",
                "new",
                "reuse",
                "reusable",
                "waste",
                "eco",
                "ecological",
                "environmentally friendly",
                "climate change",
                "global warming",
                "sustainability",
                "sustaintable",
                "plastic",
                "free"
            ]
        },
        "relationships": {
            "product_properties": {
                "data": [
                    {
                        "id": "200083",
                        "type": "product_property"
                    },
                    {
                        "id": "200084",
                        "type": "product_property"
                    },
                    {
                        "id": "200085",
                        "type": "product_property"
                    },
                    {
                        "id": "200086",
                        "type": "product_property"
                    },
                    {
                        "id": "200087",
                        "type": "product_property"
                    },
                    {
                        "id": "200088",
                        "type": "product_property"
                    },
                    {
                        "id": "200089",
                        "type": "product_property"
                    },
                    {
                        "id": "200090",
                        "type": "product_property"
                    },
                    {
                        "id": "411601",
                        "type": "product_property"
                    }
                ]
            },
            "images": {
                "data": [
                    {
                        "id": "39441",
                        "type": "image"
                    }
                ]
            },
            "similar_products": {}
        }
    }
}

Returns product details based on its unique product ID.

HTTP Request

GET https://api.videoplasty.com/api/v2/api_system/products/{product_id}

URL Parameters

Parameter Type Description
product_id string Unique identifier for product
Example: 14

Query Parameters

Parameter Type Description
token string (required) Use token provided to you
include string Specify what related resources (relationships) you would like to receive in the response body.
i.e. images, product_properties, similar_products, similar_products.images
locale string Specify locale to get response in specific language. Default language is English.
Available languages are de, fr, es, pt, ja
Example: locale=es
Note: only name and tags of product will be translated to specified language and in case if translation is unavailable it will be returned in english language.

Product Purchase

require 'kittn'

api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.get
import kittn

api = kittn.authorize('meowmeowmeow')
api.kittens.get()
curl --request POST \
--url https://api.videoplasty.com/api/v2/api_system/products/{product_id}/purchase?token={your token}&customer_id={custome id}
OR
curl --request POST \
--url https://api.videoplasty.com/api/v2/api_system/products/{product_id}/purchase \
  -d token={your token} \
  -d customer_id={custome id}
const kittn = require('kittn');

let api = kittn.authorize('meowmeowmeow');
let kittens = api.kittens.get();

The above command returns JSON structured like this:

{
    "data": {
        "Download 1": "secret_key_1",
        "Download 2": "secret_key_2"
    }
}

Returns a secret key for the specific product. Use this secret key to get the download link for the stock asset.

HTTP Request

POST https://api.videoplasty.com/api/v2/api_system/products/{product_id}/purchase

URL Parameters

Parameter Type Description
product_id string Unique identifier for product
Example: 14

Query Parameters

Parameter Type Description
token string (required) Use token provided to you
customer_id string (required) A unique identifier for the end user initiating this request
Example: 123

Download a Product

require 'kittn'

api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.delete(2)
import kittn

api = kittn.authorize('meowmeowmeow')
api.kittens.delete(2)
curl --request POST \
--url https://api.videoplasty.com/api/v2/api_system/products/{product_id}/download?token={your token}&customer_id={custome id}&secret={use your secret key}
OR
curl --request POST \
  --url https://api.videoplasty.com/api/v2/api_system/products/{product_id}/download \
    -d token={your token} \
    -d customer_id={customer_id} \
    -d secret={use your secret key}
const kittn = require('kittn');

let api = kittn.authorize('meowmeowmeow');
let max = api.kittens.delete(2);

The above command returns JSON response containing download link for asset:

  {
    "data": {
        "link": "your download link"
    }
}

Get the download link for the delivery file(s) of a specific product

HTTP Request

POST https://api.videoplasty.com/api/v2/api_system/products/{product_id}/download

URL Parameters

Parameter Type Description
product_id string Unique identifier for product
Example: 14

Query Parameters

Parameter Type Description
token string (required) Use token provided to you
customer_id string (required) A unique identifier for the end user initiating this request
Example: 123
secret string (required) use secret key provided in response of Product Purchase

Rate Limit

By default, you can make up to 500 requests per minute. Requests are associated with the API key, and not with your IP address.

To keep the VideoPlasty API fast for everyone, requests must be cached for 24 hours. Also, the API is made for real human requests; do not send lots of automated queries. Systematic mass downloads are not allowed. If needed, we can increase this limit at any time - given that you've implemented the API properly.