Shutterstock · Capability
Shutterstock API Reference — videos
Shutterstock API Reference — videos. 18 operations. Lead operation: List videos. Self-contained Naftiko capability covering one Shutterstock business surface.
What You Can Do
GET
Getvideolist
— List videos
/v1/v2/videos
GET
Getvideocategories
— List video categories
/v1/v2/videos/categories
POST
Createclipbox
— Create video collections
/v1/v2/videos/collections
GET
Getclipboxlist
— List video collections
/v1/v2/videos/collections
GET
Getclipbox
— Get the details of video collections
/v1/v2/videos/collections/{id}
POST
Renameclipbox
— Rename video collections
/v1/v2/videos/collections/{id}
DELETE
Deleteclipbox
— Delete video collections
/v1/v2/videos/collections/{id}
POST
Addclipboxitems
— Add videos to collections
/v1/v2/videos/collections/{id}/items
GET
Getclipboxitems
— Get the contents of video collections
/v1/v2/videos/collections/{id}/items
DELETE
Deleteclipboxitems
— Remove videos from collections
/v1/v2/videos/collections/{id}/items
POST
Licensevideos
— License videos
/v1/v2/videos/licenses
GET
Getvideolicenselist
— List video licenses
/v1/v2/videos/licenses
POST
Downloadvideos
— Download videos
/v1/v2/videos/licenses/{id}/downloads
GET
Searchvideos
— Search for videos
/v1/v2/videos/search
GET
Getvideosuggestions
— Get suggestions for a search term
/v1/v2/videos/search/suggestions
GET
Getupdatedvideos
— List updated videos
/v1/v2/videos/updated
GET
Getvideo
— Get details about videos
/v1/v2/videos/{id}
GET
Getsimilarvideos
— List similar videos
/v1/v2/videos/{id}/similar
MCP Tools
list-videos
List videos
read-only
idempotent
list-video-categories
List video categories
read-only
idempotent
create-video-collections
Create video collections
list-video-collections
List video collections
read-only
idempotent
get-details-video-collections
Get the details of video collections
read-only
idempotent
rename-video-collections
Rename video collections
delete-video-collections
Delete video collections
idempotent
add-videos-collections
Add videos to collections
get-contents-video-collections
Get the contents of video collections
read-only
idempotent
remove-videos-collections
Remove videos from collections
idempotent
license-videos
License videos
list-video-licenses
List video licenses
read-only
idempotent
download-videos
Download videos
search-videos
Search for videos
read-only
idempotent
get-suggestions-search-term
Get suggestions for a search term
read-only
idempotent
list-updated-videos
List updated videos
read-only
idempotent
get-details-about-videos
Get details about videos
read-only
idempotent
list-similar-videos
List similar videos
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Shutterstock API Reference — videos
description: 'Shutterstock API Reference — videos. 18 operations. Lead operation: List videos. Self-contained Naftiko capability
covering one Shutterstock business surface.'
tags:
- Shutterstock
- videos
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SHUTTERSTOCK_API_KEY: SHUTTERSTOCK_API_KEY
capability:
consumes:
- type: http
namespace: shutterstock-videos
baseUri: https://api.shutterstock.com
description: Shutterstock API Reference — videos business capability. Self-contained, no shared references.
resources:
- name: v2-videos
path: /v2/videos
operations:
- name: getvideolist
method: GET
description: List videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: query
type: array
description: One or more video IDs
required: true
- name: view
in: query
type: string
description: Amount of detail to render in the response
- name: v2-videos-categories
path: /v2/videos/categories
operations:
- name: getvideocategories
method: GET
description: List video categories
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: language
in: query
type: string
description: Language for the keywords and categories in the response
- name: v2-videos-collections
path: /v2/videos/collections
operations:
- name: createclipbox
method: POST
description: Create video collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: getclipboxlist
method: GET
description: List video collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: page
in: query
type: integer
description: Page number
- name: per_page
in: query
type: integer
description: Number of results per page
- name: v2-videos-collections-id
path: /v2/videos/collections/{id}
operations:
- name: getclipbox
method: GET
description: Get the details of video collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the collection to return
required: true
- name: renameclipbox
method: POST
description: Rename video collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the collection to rename
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deleteclipbox
method: DELETE
description: Delete video collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the collection to delete
required: true
- name: v2-videos-collections-id-items
path: /v2/videos/collections/{id}/items
operations:
- name: addclipboxitems
method: POST
description: Add videos to collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the collection to which items should be added
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: getclipboxitems
method: GET
description: Get the contents of video collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the Collection whose items are to be returned
required: true
- name: page
in: query
type: integer
description: Page number
- name: per_page
in: query
type: integer
description: Number of results per page
- name: sort
in: query
type: string
description: Sort order
- name: deleteclipboxitems
method: DELETE
description: Remove videos from collections
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the Collection from which items will be deleted
required: true
- name: item_id
in: query
type: array
description: One or more video IDs to remove from the collection
- name: v2-videos-licenses
path: /v2/videos/licenses
operations:
- name: licensevideos
method: POST
description: License videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: subscription_id
in: query
type: string
description: The subscription ID to use for licensing
- name: size
in: query
type: string
description: The size of the video to license
- name: search_id
in: query
type: string
description: The Search ID that led to this licensing event
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: getvideolicenselist
method: GET
description: List video licenses
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: video_id
in: query
type: string
description: Show licenses for the specified video ID
- name: license
in: query
type: string
description: Show videos that are available with the specified license, such as `standard` or `enhanced`; prepending
a `-` sign excludes results from that license
- name: page
in: query
type: integer
description: Page number
- name: per_page
in: query
type: integer
description: Number of results per page
- name: sort
in: query
type: string
description: Sort by oldest or newest videos first
- name: username
in: query
type: string
description: Filter licenses by username of licensee
- name: start_date
in: query
type: string
description: Show licenses created on or after the specified date
- name: end_date
in: query
type: string
description: Show licenses created before the specified date
- name: v2-videos-licenses-id-downloads
path: /v2/videos/licenses/{id}/downloads
operations:
- name: downloadvideos
method: POST
description: Download videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The license ID of the item to (re)download
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-videos-search
path: /v2/videos/search
operations:
- name: searchvideos
method: GET
description: Search for videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: added_date
in: query
type: string
description: Show videos added on the specified date
- name: added_date_start
in: query
type: string
description: Show videos added on or after the specified date
- name: added_date_end
in: query
type: string
description: Show videos added before the specified date
- name: aspect_ratio
in: query
type: string
description: Show videos with the specified aspect ratio
- name: category
in: query
type: string
description: Show videos with the specified Shutterstock-defined category; specify a category name or ID
- name: contributor
in: query
type: array
description: Show videos with the specified artist names or IDs
- name: contributor_country
in: query
type: array
description: Show videos from contributors in one or more specified countries
- name: duration
in: query
type: integer
description: (Deprecated; use duration_from and duration_to instead) Show videos with the specified duration in
seconds
- name: duration_from
in: query
type: integer
description: Show videos with the specified duration or longer in seconds
- name: duration_to
in: query
type: integer
description: Show videos with the specified duration or shorter in seconds
- name: fps
in: query
type: number
description: (Deprecated; use fps_from and fps_to instead) Show videos with the specified frames per second
- name: fps_from
in: query
type: number
description: Show videos with the specified frames per second or more
- name: fps_to
in: query
type: number
description: Show videos with the specified frames per second or fewer
- name: keyword_safe_search
in: query
type: boolean
description: Hide results with potentially unsafe keywords
- name: language
in: query
type: string
description: Set query and result language (uses Accept-Language header if not set)
- name: license
in: query
type: array
description: Show only videos with the specified license or licenses
- name: model
in: query
type: array
description: Show videos with each of the specified models
- name: page
in: query
type: integer
description: Page number
- name: per_page
in: query
type: integer
description: Number of results per page
- name: people_age
in: query
type: string
description: Show videos that feature people of the specified age range
- name: people_ethnicity
in: query
type: array
description: Show videos with people of the specified ethnicities
- name: people_gender
in: query
type: string
description: Show videos with people with the specified gender
- name: people_number
in: query
type: integer
description: Show videos with the specified number of people
- name: people_model_released
in: query
type: boolean
description: Show only videos of people with a signed model release
- name: query
in: query
type: string
description: One or more search terms separated by spaces; you can use NOT to filter out videos that match a term
- name: resolution
in: query
type: string
description: Show videos with the specified resolution
- name: safe
in: query
type: boolean
description: Enable or disable safe search
- name: sort
in: query
type: string
description: Sort by one of these categories
- name: view
in: query
type: string
description: Amount of detail to render in the response
- name: v2-videos-search-suggestions
path: /v2/videos/search/suggestions
operations:
- name: getvideosuggestions
method: GET
description: Get suggestions for a search term
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: query
in: query
type: string
description: Search term for which you want keyword suggestions
required: true
- name: limit
in: query
type: integer
description: Limit the number of the suggestions
- name: v2-videos-updated
path: /v2/videos/updated
operations:
- name: getupdatedvideos
method: GET
description: List updated videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: start_date
in: query
type: string
description: Show videos updated on or after the specified date
- name: end_date
in: query
type: string
description: Show videos updated before the specified date
- name: interval
in: query
type: string
description: Show videos updated in the specified time period, where the time period is an interval (like SQL INTERVAL)
such as 1 DAY, 6 HOUR, or 30 MINUTE; the default is 1
- name: page
in: query
type: integer
description: Page number
- name: per_page
in: query
type: integer
description: Number of results per page
- name: sort
in: query
type: string
description: Sort by oldest or newest videos first
- name: v2-videos-id
path: /v2/videos/{id}
operations:
- name: getvideo
method: GET
description: Get details about videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Video ID
required: true
- name: language
in: query
type: string
description: Language for the keywords and categories in the response
- name: view
in: query
type: string
description: Amount of detail to render in the response
- name: v2-videos-id-similar
path: /v2/videos/{id}/similar
operations:
- name: getsimilarvideos
method: GET
description: List similar videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of a video for which similar videos should be returned
required: true
- name: language
in: query
type: string
description: Language for the keywords and categories in the response
- name: page
in: query
type: integer
description: Page number
- name: per_page
in: query
type: integer
description: Number of results per page
- name: view
in: query
type: string
description: Amount of detail to render in the response
authentication:
type: bearer
token: '{{env.SHUTTERSTOCK_API_KEY}}'
exposes:
- type: rest
namespace: shutterstock-videos-rest
port: 8080
description: REST adapter for Shutterstock API Reference — videos. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/v2/videos
name: v2-videos
description: REST surface for v2-videos.
operations:
- method: GET
name: getvideolist
description: List videos
call: shutterstock-videos.getvideolist
with:
id: rest.id
view: rest.view
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/categories
name: v2-videos-categories
description: REST surface for v2-videos-categories.
operations:
- method: GET
name: getvideocategories
description: List video categories
call: shutterstock-videos.getvideocategories
with:
language: rest.language
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/collections
name: v2-videos-collections
description: REST surface for v2-videos-collections.
operations:
- method: POST
name: createclipbox
description: Create video collections
call: shutterstock-videos.createclipbox
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: getclipboxlist
description: List video collections
call: shutterstock-videos.getclipboxlist
with:
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/collections/{id}
name: v2-videos-collections-id
description: REST surface for v2-videos-collections-id.
operations:
- method: GET
name: getclipbox
description: Get the details of video collections
call: shutterstock-videos.getclipbox
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- method: POST
name: renameclipbox
description: Rename video collections
call: shutterstock-videos.renameclipbox
with:
id: rest.id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteclipbox
description: Delete video collections
call: shutterstock-videos.deleteclipbox
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/collections/{id}/items
name: v2-videos-collections-id-items
description: REST surface for v2-videos-collections-id-items.
operations:
- method: POST
name: addclipboxitems
description: Add videos to collections
call: shutterstock-videos.addclipboxitems
with:
id: rest.id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: getclipboxitems
description: Get the contents of video collections
call: shutterstock-videos.getclipboxitems
with:
id: rest.id
page: rest.page
per_page: rest.per_page
sort: rest.sort
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteclipboxitems
description: Remove videos from collections
call: shutterstock-videos.deleteclipboxitems
with:
id: rest.id
item_id: rest.item_id
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/licenses
name: v2-videos-licenses
description: REST surface for v2-videos-licenses.
operations:
- method: POST
name: licensevideos
description: License videos
call: shutterstock-videos.licensevideos
with:
subscription_id: rest.subscription_id
size: rest.size
search_id: rest.search_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: getvideolicenselist
description: List video licenses
call: shutterstock-videos.getvideolicenselist
with:
video_id: rest.video_id
license: rest.license
page: rest.page
per_page: rest.per_page
sort: rest.sort
username: rest.username
start_date: rest.start_date
end_date: rest.end_date
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/licenses/{id}/downloads
name: v2-videos-licenses-id-downloads
description: REST surface for v2-videos-licenses-id-downloads.
operations:
- method: POST
name: downloadvideos
description: Download videos
call: shutterstock-videos.downloadvideos
with:
id: rest.id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/search
name: v2-videos-search
description: REST surface for v2-videos-search.
operations:
- method: GET
name: searchvideos
description: Search for videos
call: shutterstock-videos.searchvideos
with:
added_date: rest.added_date
added_date_start: rest.added_date_start
added_date_end: rest.added_date_end
aspect_ratio: rest.aspect_ratio
category: rest.category
contributor: rest.contributor
contributor_country: rest.contributor_country
duration: rest.duration
duration_from: rest.duration_from
duration_to: rest.duration_to
fps: rest.fps
fps_from: rest.fps_from
fps_to: rest.fps_to
keyword_safe_search: rest.keyword_safe_search
language: rest.language
license: rest.license
model: rest.model
page: rest.page
per_page: rest.per_page
people_age: rest.people_age
people_ethnicity: rest.people_ethnicity
people_gender: rest.people_gender
people_number: rest.people_number
people_model_released: rest.people_model_released
query: rest.query
resolution: rest.resolution
safe: rest.safe
sort: rest.sort
view: rest.view
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/search/suggestions
name: v2-videos-search-suggestions
description: REST surface for v2-videos-search-suggestions.
operations:
- method: GET
name: getvideosuggestions
description: Get suggestions for a search term
call: shutterstock-videos.getvideosuggestions
with:
query: rest.query
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/updated
name: v2-videos-updated
description: REST surface for v2-videos-updated.
operations:
- method: GET
name: getupdatedvideos
description: List updated videos
call: shutterstock-videos.getupdatedvideos
with:
start_date: rest.start_date
end_date: rest.end_date
interval: rest.interval
page: rest.page
per_page: rest.per_page
sort: rest.sort
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/{id}
name: v2-videos-id
description: REST surface for v2-videos-id.
operations:
- method: GET
name: getvideo
description: Get details about videos
call: shutterstock-videos.getvideo
with:
id: rest.id
language: rest.language
view: rest.view
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/videos/{id}/similar
name: v2-videos-id-similar
description: REST surface for v2-videos-id-similar.
operations:
- method: GET
name: getsimilarvideos
description: List similar videos
call: shutterstock-videos.getsimilarvideos
with:
id: rest.id
language: rest.language
page: rest.page
per_page: rest.per_page
view: rest.view
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: shutterstock-videos-mcp
port: 9090
transport: http
description: MCP adapter for Shutterstock API Reference — videos. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: list-videos
description: List videos
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getvideolist
with:
id: tools.id
view: tools.view
outputParameters:
- type: object
mapping: $.
- name: list-video-categories
description: List video categories
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getvideocategories
with:
language: tools.language
outputParameters:
- type: object
mapping: $.
- name: create-video-collections
description: Create video collections
hints:
readOnly: false
destructive: false
idempotent: false
call: shutterstock-videos.createclipbox
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-video-collections
description: List video collections
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getclipboxlist
with:
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.
- name: get-details-video-collections
description: Get the details of video collections
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getclipbox
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: rename-video-collections
description: Rename video collections
hints:
readOnly: false
destructive: false
idempotent: false
call: shutterstock-videos.renameclipbox
with:
id: tools.id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-video-collections
description: Delete video collections
hints:
readOnly: false
destructive: true
idempotent: true
call: shutterstock-videos.deleteclipbox
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: add-videos-collections
description: Add videos to collections
hints:
readOnly: false
destructive: false
idempotent: false
call: shutterstock-videos.addclipboxitems
with:
id: tools.id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-contents-video-collections
description: Get the contents of video collections
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getclipboxitems
with:
id: tools.id
page: tools.page
per_page: tools.per_page
sort: tools.sort
outputParameters:
- type: object
mapping: $.
- name: remove-videos-collections
description: Remove videos from collections
hints:
readOnly: false
destructive: true
idempotent: true
call: shutterstock-videos.deleteclipboxitems
with:
id: tools.id
item_id: tools.item_id
outputParameters:
- type: object
mapping: $.
- name: license-videos
description: License videos
hints:
readOnly: false
destructive: false
idempotent: false
call: shutterstock-videos.licensevideos
with:
subscription_id: tools.subscription_id
size: tools.size
search_id: tools.search_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-video-licenses
description: List video licenses
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getvideolicenselist
with:
video_id: tools.video_id
license: tools.license
page: tools.page
per_page: tools.per_page
sort: tools.sort
username: tools.username
start_date: tools.start_date
end_date: tools.end_date
outputParameters:
- type: object
mapping: $.
- name: download-videos
description: Download videos
hints:
readOnly: false
destructive: false
idempotent: false
call: shutterstock-videos.downloadvideos
with:
id: tools.id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: search-videos
description: Search for videos
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.searchvideos
with:
added_date: tools.added_date
added_date_start: tools.added_date_start
added_date_end: tools.added_date_end
aspect_ratio: tools.aspect_ratio
category: tools.category
contributor: tools.contributor
contributor_country: tools.contributor_country
duration: tools.duration
duration_from: tools.duration_from
duration_to: tools.duration_to
fps: tools.fps
fps_from: tools.fps_from
fps_to: tools.fps_to
keyword_safe_search: tools.keyword_safe_search
language: tools.language
license: tools.license
model: tools.model
page: tools.page
per_page: tools.per_page
people_age: tools.people_age
people_ethnicity: tools.people_ethnicity
people_gender: tools.people_gender
people_number: tools.people_number
people_model_released: tools.people_model_released
query: tools.query
resolution: tools.resolution
safe: tools.safe
sort: tools.sort
view: tools.view
outputParameters:
- type: object
mapping: $.
- name: get-suggestions-search-term
description: Get suggestions for a search term
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getvideosuggestions
with:
query: tools.query
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: list-updated-videos
description: List updated videos
hints:
readOnly: true
destructive: false
idempotent: true
call: shutterstock-videos.getupdatedvideos
with:
start_date: tools.start_date
end_date: tools.end_date
interval: tools.interval
page: tools.page
per_page: tools.per_page
sort: tools.sort
outputPar
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shutterstock/refs/heads/main/capabilities/shutterstock-videos.yaml