Shutterstock

Stock photos, videos, and music API

api.shutterstock.com ↗
Version
1.1.32
OpenAPI
3.0.0
Endpoints
118
Schemas
169
86
Quality
Updated
3 days ago
Media media photos stock
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.shutterstock.com
https://api-sandbox.shutterstock.com

Endpoints

Clear filters

Audio 5 endpoints

POST /v2/audio/collections

This endpoint creates one or more collections (soundboxes). To add tracks, use POST /v2/audio/collections/{id}/items.

operationId: Audio_createCollections

Request Body

required

Collection metadata

application/json
schema CollectionCreateRequest
Property Type Required
name string required

Responses

201

Successfully created audio collection

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/audio/collections
POST /v2/audio/collections/{id}

This endpoint sets a new name for a collection.

operationId: Audio_setCollectionName

Parameters

Name In Required Type Description
id path required string

Collection ID

Request Body

required

Collection changes

application/json
schema CollectionUpdateRequest
Property Type Required
name string required

Responses

204

Successfully updated collection

400

Bad Request

401

Unauthorized

403

Forbidden

404

Collection not found

POST /v2/audio/collections/{id}
POST /v2/audio/collections/{id}/items

This endpoint adds one or more tracks to a collection by track IDs.

operationId: Audio_addTracksToCollection

Parameters

Name In Required Type Description
id path required string

Collection ID

Request Body

required

List of items to add to collection

application/json
schema CollectionItemRequest
Property Type Required
items array required
id string required
added_time string optional
media_type string optional

Responses

204

Successfully added collection items

400

Bad Request

401

Unauthorized

403

Forbidden

404

Collection not found

POST /v2/audio/collections/{id}/items
POST /v2/audio/licenses

This endpoint gets licenses for one or more tracks. The download links in the response are valid for 8 hours.

operationId: Audio_licenseTracks

Parameters

Name In Required Type Description
license query optional string

License type

search_id query optional string

The ID of the search that led to licensing this track

Request Body

required

Tracks to license

application/json
schema LicenseAudioRequest
Property Type Required
audio array required
license string optional
audio_id string required
search_id string optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/audio/licenses
POST /v2/audio/licenses/{id}/downloads

This endpoint redownloads tracks that you have already received a license for. The download links in the response are valid for 8 hours.

operationId: Audio_redownloadTracks

Parameters

Name In Required Type Description
id path required string

License ID

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/audio/licenses/{id}/downloads

Catalog 2 endpoints

POST /v2/catalog/collections

This endpoint creates a catalog collection and optionally adds assets. To add assets to the collection later, use PATCH /v2/catalog/collections/{collection_id}/items.

operationId: Catalog_createCollection

Request Body

required

Create a catalog collection and, optionally, add items.

application/json
schema CreateCatalogCollection
Property Type Required
name string required
items array optional
asset object required
id string optional
type string required
visibility string optional

Responses

201

OK

POST /v2/catalog/collections
POST /v2/catalog/collections/{collection_id}/items

This endpoint adds assets to a catalog collection. It also automatically adds the assets to the user’s account’s catalog.

operationId: Catalog_addToCollectionItems

Parameters

Name In Required Type Description
collection_id path required string

The ID of the collection to add assets to

Request Body

required

Collection item attributes to add to collection

application/json
schema CreateCatalogCollectionItems
Property Type Required
items array required
asset object required
id string optional
type string required

Responses

200

OK

POST /v2/catalog/collections/{collection_id}/items

Computervision 1 endpoints

POST /v2/cv/images

This endpoint uploads an image for reverse image or video search. Images must be in JPEG or PNG format. To get the search results, pass the upload ID that this endpoint returns to the GET /v2/cv/similar/images or GET /v2/cv/similar/videos endpoints. Contact us for access to this endpoint.

operationId: Computervision_uploadImage

Request Body

required

A Base 64 encoded jpeg or png; images can be no larger than 10mb and can be no larger than 10,000 pixels in width or height

application/json
schema ImageCreateRequest
Property Type Required
base64_image string required

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

413

Payload Too Large

415

Unsupported Media Type

POST /v2/cv/images

Custommusic 1 endpoints

POST /v2/ai/audio/renders

This endpoint creates rendered audio from timeline data. It returns a render ID that you can use to download the finished audio when it is ready. The render ID is valid for up to 48 hours.

operationId: Custommusic_createRenderedAudio

Request Body

required

Parameters for the audio, including the timeline and information about the output file

application/json
schema CreateAudioRendersRequest
Property Type Required
audio_renders array required
preset string required
filename string required
timeline object required
spans array optional
id number optional
time integer required
tempo integer optional
regions array optional
span_type string required
tempo_changes array optional
instrument_groups array optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/ai/audio/renders

Editorialimages 1 endpoints

POST /v2/editorial/images/licenses

This endpoint gets licenses for one or more editorial images. You must specify the country and one or more editorial images to license. The download links in the response are valid for 8 hours.

operationId: Editorialimages_licenseContent

Request Body

required

License editorial content

application/json
schema LicenseEditorialContentRequest
Property Type Required
country object required
editorial array required
size string optional
license string required
metadata object optional
editorial_id string required

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

406

Not Acceptable

POST /v2/editorial/images/licenses

Editorialvideo 1 endpoints

POST /v2/editorial/videos/licenses

This endpoint gets licenses for one or more editorial videos. You must specify the country and one or more editorial videos to license. The download links in the response are valid for 8 hours.

operationId: Editorialvideo_licenseVideos

Request Body

required

License editorial video content

application/json
schema LicenseEditorialVideoContentRequest
Property Type Required
country object required
editorial array required
size string optional
license string required
metadata object optional
editorial_id string required

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/editorial/videos/licenses

Images 7 endpoints

POST /v2/images/collections

This endpoint creates one or more image collections (lightboxes). To add images to the collections, use POST /v2/images/collections/{id}/items.

operationId: Images_createCollection

Request Body

required

The names of the new collections

application/json
schema CollectionCreateRequest
Property Type Required
name string required

Responses

201

Successfully created image collection

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/images/collections
POST /v2/images/collections/{id}

This endpoint sets a new name for an image collection.

operationId: Images_renameCollection

Parameters

Name In Required Type Description
id path required string

Collection ID

Request Body

required

The new name for the collection

application/json
schema CollectionUpdateRequest
Property Type Required
name string required

Responses

204

Successfully updated collection

400

Bad Request

401

Unauthorized

403

Forbidden

404

Collection not found

POST /v2/images/collections/{id}
POST /v2/images/collections/{id}/items

This endpoint adds one or more images to a collection by image IDs.

operationId: Images_addToCollectionItems

Parameters

Name In Required Type Description
id path required string

Collection ID

Request Body

required

Array of image IDs to add to the collection

application/json
schema CollectionItemRequest
Property Type Required
items array required
id string required
added_time string optional
media_type string optional

Responses

204

Successfully added collection items

400

Bad Request

401

Unauthorized

403

Forbidden

404

Collection not found

POST /v2/images/collections/{id}/items
POST /v2/images/licenses

This endpoint gets licenses for one or more images. You must specify the image IDs in the body parameter and other details like the format, size, and subscription ID either in the query parameter or with each image ID in the body parameter. Values in the body parameter override values in the query parameters. The download links in the response are valid for 8 hours.

operationId: Images_licenseImagesForMultiple

Parameters

Name In Required Type Description
subscription_id query optional string

Subscription ID to use to license the image

format query optional string

(Deprecated) Image format

size query optional string

Image size

search_id query optional string

Search ID that was provided in the results of an image search

Request Body

required

List of images to request licenses for and information about each license transaction; these values override the defaults in the query parameters

application/json
schema LicenseImageRequest
Property Type Required
images array required

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/images/licenses
POST /v2/images/licenses/{id}/downloads

This endpoint redownloads images that you have already received a license for. The download links in the response are valid for 8 hours.

operationId: Images_redownloadLicense

Parameters

Name In Required Type Description
id path required string

License ID

Request Body

required

Information about the images to redownload

application/json
schema RedownloadImage
Property Type Required
size string optional
show_modal boolean optional
auth_cookie object optional
name string required
value string required
verification_code string optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/images/licenses/{id}/downloads
POST /v2/images/search/suggestions

This endpoint returns up to 10 important keywords from a block of plain text.

operationId: Images_extractKeywordsFromText

Request Body

required

Plain text to extract keywords from

application/json
schema SearchEntitiesRequest
Property Type Required
text string required

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/images/search/suggestions
POST /v2/bulk_search/images

This endpoint runs up to 5 image searches in a single request and returns up to 20 results per search. You can provide global search parameters in the query parameters and override them for each search in the body parameter. The query and body parameters are the same as in the GET /v2/images/search endpoint.

operationId: Images_runMultipleSearches

Parameters

Name In Required Type Description
added_date query optional string

Show images added on the specified date

added_date_start query optional string

Show images added on or after the specified date

aspect_ratio_min query optional number

Show images with the specified aspect ratio or higher, using a positive decimal of the width divided by the height, such as 1.7778 for a 16:9 image

aspect_ratio_max query optional number

Show images with the specified aspect ratio or lower, using a positive decimal of the width divided by the height, such as 1.7778 for a 16:9 image

aspect_ratio query optional number

Show images with the specified aspect ratio, using a positive decimal of the width divided by the height, such as 1.7778 for a 16:9 image

added_date_end query optional string

Show images added before the specified date

category query optional string

Show images with the specified Shutterstock-defined category; specify a category name or ID

color query optional string

Specify either a hexadecimal color in the format ‘4F21EA’ or ‘grayscale’; the API returns images that use similar colors

contributor query optional array

Show images with the specified contributor names or IDs, allows multiple

contributor_country query optional

Show images from contributors in one or more specified countries, or start with NOT to exclude a country from the search

fields query optional string

Fields to display in the response; see the documentation for the fields parameter in the overview section

height query optional integer

(Deprecated; use height_from and height_to instead) Show images with the specified height

height_from query optional integer

Show images with the specified height or larger, in pixels

height_to query optional integer

Show images with the specified height or smaller, in pixels

image_type query optional array

Show images of the specified type

keyword_safe_search query optional boolean

Hide results with potentially unsafe keywords

language query optional

Set query and result language (uses Accept-Language header if not set)

license query optional array

Show only images with the specified license

model query optional array

Show image results with the specified model IDs

orientation query optional string

Show image results with horizontal or vertical orientation

page query optional integer

Page number

per_page query optional integer

Number of results per page

people_model_released query optional boolean

Show images of people with a signed model release

people_age query optional string

Show images that feature people of the specified age category

people_ethnicity query optional array

Show images with people of the specified ethnicities, or start with NOT to show images without those ethnicities

people_gender query optional string

Show images with people of the specified gender

people_number query optional integer

Show images with the specified number of people

region query optional

Raise or lower search result rankings based on the result’s relevance to a specified region; you can provide a country code or an IP address from which the API infers a country

safe query optional boolean

Enable or disable safe search

sort query optional string

Sort by

spellcheck_query query optional boolean

Spellcheck the search query and return results on suggested spellings

view query optional string

Amount of detail to render in the response

width query optional integer

(Deprecated; use width_from and width_to instead) Show images with the specified width

width_from query optional integer

Show images with the specified width or larger, in pixels

width_to query optional integer

Show images with the specified width or smaller, in pixels

Request Body

required

List of queries to request results for and filters to apply per query; these values override the defaults in the query parameters

application/json
schema BulkImageSearchRequest
array of object
Property Type Required
page integer optional
safe boolean optional
sort string optional
view string optional
color string optional
model array optional
query string optional
width integer optional
fields string optional
height integer optional
region object optional
license array optional
category string optional
language string optional
per_page integer optional
width_to integer optional
authentic boolean optional
height_to integer optional
added_date string optional
image_type array optional
…17 more object optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/bulk_search/images

Oauth 1 endpoints

POST /v2/oauth/access_token

This endpoint returns an access token for the specified user and with the specified scopes. The token does not expire until the user changes their password. The body parameters must be encoded as form data.

operationId: Oauth_getUserAccessToken

Request Body

application/json
schema OauthGetUserAccessTokenRequest
Property Type Required
code string optional
realm string optional
expires boolean optional
client_id string required
grant_type string required
client_secret string optional
refresh_token string optional
application/x-www-form-urlencoded
schema OauthGetUserAccessTokenRequest1
Property Type Required
code string optional
realm string optional
expires string optional
client_id string required
grant_type string required
client_secret string optional
refresh_token string optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/oauth/access_token

Soundeffects 2 endpoints

POST /v2/sfx/licenses

This endpoint licenses sounds effect assets.

operationId: Soundeffects_licenseAssets

Request Body

required
application/json
schema LicenseSFXRequest
Property Type Required
sound_effects array required
format string optional
sfx_id string required
search_id string optional
audio_layout string optional
subscription_id string required

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/sfx/licenses
POST /v2/sfx/licenses/{id}/downloads

This endpoint redownloads sound effects that you have already received a license for. The download links in the response are valid for 8 hours.

operationId: Soundeffects_redownloadLicenses

Parameters

Name In Required Type Description
id path required string

License ID

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/sfx/licenses/{id}/downloads

Videos 5 endpoints

POST /v2/videos/collections

This endpoint creates one or more collections (clipboxes). To add videos to collections, use POST /v2/videos/collections/{id}/items.

operationId: Videos_createVideoCollections

Request Body

required

Collection metadata

application/json
schema CollectionCreateRequest
Property Type Required
name string required

Responses

201

Successfully created video collection

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/videos/collections
POST /v2/videos/collections/{id}

This endpoint sets a new name for a collection.

operationId: Videos_setNewName

Parameters

Name In Required Type Description
id path required string

The ID of the collection to rename

Request Body

required

The new name for the collection

application/json
schema CollectionUpdateRequest
Property Type Required
name string required

Responses

204

Successfully updated collection

400

Bad Request

401

Unauthorized

403

Forbidden

404

Collection not found

POST /v2/videos/collections/{id}
POST /v2/videos/collections/{id}/items

This endpoint adds one or more videos to a collection by video IDs.

operationId: Videos_addToCollectionItems

Parameters

Name In Required Type Description
id path required string

The ID of the collection to which items should be added

Request Body

required

Array of video IDs to add to the collection

application/json
schema CollectionItemRequest
Property Type Required
items array required
id string required
added_time string optional
media_type string optional

Responses

204

Successfully added collection items

400

Bad Request

401

Unauthorized

403

Forbidden

404

Collection not found

POST /v2/videos/collections/{id}/items
POST /v2/videos/licenses

This endpoint gets licenses for one or more videos. You must specify the video IDs in the body parameter and the size and subscription ID either in the query parameter or with each video ID in the body parameter. Values in the body parameter override values in the query parameters. The download links in the response are valid for 8 hours.

operationId: Videos_licenseVideos

Parameters

Name In Required Type Description
subscription_id query optional string

The subscription ID to use for licensing

size query optional string

The size of the video to license

search_id query optional string

The Search ID that led to this licensing event

Request Body

required

List of videos to request licenses for and information about each license transaction; these values override the defaults in the query parameters

application/json
schema LicenseVideoRequest
Property Type Required
videos array required
size string optional
price number optional
metadata object optional
video_id string required
search_id string optional
show_modal boolean optional
auth_cookie object optional
name string required
value string required
subscription_id string optional
editorial_acknowledgement boolean optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/videos/licenses
POST /v2/videos/licenses/{id}/downloads

This endpoint redownloads videos that you have already received a license for.

operationId: Videos_redownloadDownloads

Parameters

Name In Required Type Description
id path required string

The license ID of the item to (re)download. The download links in the response are valid for 8 hours.

Request Body

required

Information about the videos to redownload

application/json
schema RedownloadVideo
Property Type Required
size string optional
show_modal boolean optional
auth_cookie object optional
name string required
value string required
verification_code string optional

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

POST /v2/videos/licenses/{id}/downloads

Schemas

object AccessTokenDetails
{
  "type": "object",
  "example": {
    "realm": "customer",
    "scopes": [
      "collections.edit",
      "collections.view",
      "licenses.create",
      "licenses.view",
      "purchases.view",
      "user.view"
    ],
    "user_id": "123456789",
    "username": "jdoe",
    "client_id": "c456b-26230-fa8ed-d19ab-05ce2-bf0aa",
    "expires_in": 3600,
    "customer_id": "123456789"
  },
  "properties": {
    "realm": {
      "enum": [
        "customer",
        "contributor"
      ],
      "type": "string",
      "description": "Type of access token"
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Scopes that this access token provides when used as authentication"
    },
    "user_id": {
      "type": "string",
      "description": "User ID that is associated with the user"
    },
    "username": {
      "type": "string",
      "description": "User name that is associated with the user"
    },
    "client_id": {
      "type": "string",
      "description": "Client ID that is associated with the user"
    },
    "expires_in": {
      "type": "integer",
      "description": "Number of seconds until the access token expires; no expiration if this value is null"
    },
    "customer_id": {
      "type": "string",
      "description": "Customer ID that is associated with the user"
    },
    "contributor_id": {
      "type": "string",
      "description": "Contributor ID that is associated with the user"
    },
    "organization_id": {
      "type": "string",
      "description": "Organization ID that is associated with the user"
    }
  },
  "description": "Access token details that are currently associated with this user"
}
object Album
{
  "type": "object",
  "example": {
    "id": "1234567",
    "title": "Happy Music"
  },
  "required": [
    "id",
    "title"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The album ID"
    },
    "title": {
      "type": "string",
      "description": "The album title"
    }
  },
  "description": "Album metadata"
}
object Allotment
{
  "type": "object",
  "example": {
    "end_time": "2020-05-29T17:10:22.000Z",
    "start_time": "2020-05-29T17:10:22.000Z",
    "downloads_left": 5,
    "downloads_limit": 10
  },
  "properties": {
    "end_time": {
      "type": "string",
      "format": "date-time",
      "description": "Date the subscription ends"
    },
    "start_time": {
      "type": "string",
      "format": "date-time",
      "description": "Date the subscription started"
    },
    "downloads_left": {
      "type": "integer",
      "description": "Number of credits remaining in the subscription"
    },
    "downloads_limit": {
      "type": "integer",
      "description": "Total number of credits available to this subscription"
    }
  },
  "description": "An allotment of credits as part of a subscription"
}
object Artist
{
  "type": "object",
  "example": {
    "name": "The Happy Tunes Band"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The artist's name"
    }
  },
  "description": "Metadata about the artist that created the media"
}
object Audio
{
  "type": "object",
  "example": {
    "id": "442583X",
    "bpm": 110,
    "url": "",
    "isrc": "",
    "moods": [
      "Bright",
      "Confident",
      "Fun",
      "Happy",
      "Inspiring",
      "Optimistic",
      "Playful",
      "Sophisticated",
      "Stylish",
      "Uplifting"
    ],
    "title": "Another Tomorrow",
    "assets": {
      "waveform": {
        "url": "https://ak.picdn.net/shutterstock/audio/442583/waveform/waveform.png",
        "file_size": 18778
      },
      "clean_audio": {
        "file_size": 35188408
      },
      "preview_mp3": {
        "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3",
        "file_size": 4400203
      },
      "preview_ogg": {
        "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.ogg",
        "file_size": 4453197
      }
    },
    "genres": [
      "Dance/Electronic",
      "Electro Pop",
      "Pop/Rock"
    ],
    "lyrics": "",
    "artists": [
      {
        "name": "Klimenko Music"
      }
    ],
    "duration": 183,
    "is_adult": false,
    "keywords": [
      "celebratory",
      "chic",
      "euphoric",
      "good times",
      "hip",
      "optimistic",
      "party",
      "soaring",
      "upbeat"
    ],
    "language": "en",
    "releases": [],
    "added_date": "2016-08-16T00:00:00.000Z",
    "media_type": "audio",
    "contributor": {
      "id": "2847971"
    },
    "description": "Pulsing and feel-good, featuring soaring synthesizer, groovy synth bass drums and synth drums that create a euphoric, upbeat mood.",
    "instruments": [
      "Piano",
      "Synth bass",
      "Synth drums",
      "Synthesizer"
    ],
    "updated_time": "2016-08-18T21:59:33.000Z",
    "published_time": "2016-08-16T18:30:03.000Z",
    "is_instrumental": true,
    "similar_artists": [],
    "recording_version": "",
    "vocal_description": ""
  },
  "required": [
    "id",
    "media_type",
    "contributor"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Shutterstock ID of this track"
    },
    "bpm": {
      "type": "integer",
      "description": "BPM (beats per minute) of this track"
    },
    "url": {
      "type": "string",
      "description": ""
    },
    "isrc": {
      "type": "string",
      "description": ""
    },
    "album": {
      "$ref": "#/components/schemas/Album"
    },
    "moods": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Mood of this track"
      },
      "description": "List of all moods of this track"
    },
    "title": {
      "type": "string",
      "description": "Title of this track"
    },
    "assets": {
      "$ref": "#/components/schemas/AudioAssets"
    },
    "genres": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Genre that is associated with this track"
      },
      "description": "List of all genres for this track"
    },
    "lyrics": {
      "type": "string",
      "description": "Lyrics of this track"
    },
    "artists": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Artist"
      },
      "description": "List of artists"
    },
    "duration": {
      "type": "number",
      "description": "Duration of this track in seconds"
    },
    "is_adult": {
      "type": "boolean",
      "description": "Whether or not this track contains adult content"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Keyword for this track"
      },
      "description": "List of all keywords for this track"
    },
    "language": {
      "type": "string",
      "description": "Language of this track's lyrics"
    },
    "releases": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Release of this track"
      },
      "description": "List of all releases of this track"
    },
    "added_date": {
      "type": "string",
      "format": "date",
      "description": "Date this track was added to the Shutterstock library"
    },
    "media_type": {
      "type": "string",
      "description": "Media type of this track; should always be \"audio\""
    },
    "contributor": {
      "$ref": "#/components/schemas/Contributor"
    },
    "description": {
      "type": "string",
      "description": "Description of this track"
    },
    "instruments": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Instrument that appears in this track"
      },
      "description": "List of all instruments that appear in this track"
    },
    "deleted_time": {
      "type": "string",
      "format": "date-time"
    },
    "updated_time": {
      "type": "string",
      "format": "date-time",
      "description": "Time this track was last updated"
    },
    "affiliate_url": {
      "type": "string",
      "description": "Affiliate referral link; appears only for registered affiliate partners"
    },
    "model_releases": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ModelRelease"
      },
      "description": "List of all model releases for this track"
    },
    "published_time": {
      "type": "string",
      "format": "date-time",
      "description": "Time this track was published"
    },
    "submitted_time": {
      "type": "string",
      "format": "date-time",
      "description": "Time this track was submitted"
    },
    "is_instrumental": {
      "type": "boolean",
      "description": "Whether or not this track is purely instrumental (lacking lyrics)"
    },
    "similar_artists": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Artist"
      },
      "description": "List of all similar artists of this track"
    },
    "recording_version": {
      "type": "string",
      "description": "Recording version of this track"
    },
    "vocal_description": {
      "type": "string",
      "description": "Vocal description of this track"
    }
  },
  "description": "Audio metadata"
}
object AudioAssetDetails
{
  "type": "object",
  "example": {
    "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3",
    "file_size": 4453197
  },
  "properties": {
    "url": {
      "type": "string",
      "description": "URL the track is available at"
    },
    "file_size": {
      "type": "integer",
      "description": "File size of the track"
    }
  },
  "description": "Information about a file that is part of an audio asset"
}
object AudioAssets
{
  "type": "object",
  "example": {
    "waveform": {
      "url": "https://ak.picdn.net/shutterstock/audio/442583/waveform/waveform.png",
      "file_size": 18778
    },
    "clean_audio": {
      "file_size": 35188408
    },
    "preview_mp3": {
      "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3",
      "file_size": 4400203
    },
    "preview_ogg": {
      "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.ogg",
      "file_size": 4453197
    }
  },
  "properties": {
    "waveform": {
      "$ref": "#/components/schemas/AudioAssetDetails"
    },
    "album_art": {
      "$ref": "#/components/schemas/AudioAssetDetails"
    },
    "clean_audio": {
      "$ref": "#/components/schemas/AudioAssetDetails"
    },
    "preview_mp3": {
      "$ref": "#/components/schemas/AudioAssetDetails"
    },
    "preview_ogg": {
      "$ref": "#/components/schemas/AudioAssetDetails"
    },
    "original_audio": {
      "$ref": "#/components/schemas/AudioAssetDetails"
    },
    "shorts_loops_stems": {
      "$ref": "#/components/schemas/ShortsLoopsStems"
    }
  },
  "description": "Files that are available as part of an audio asset"
}
object AudioDataList
{
  "example": {
    "data": [
      {
        "id": "434750",
        "bpm": 100,
        "isrc": "",
        "moods": [
          "Bright",
          "Confident",
          "Fun",
          "Happy",
          "Inspiring",
          "Optimistic",
          "Playful",
          "Sophisticated",
          "Stylish",
          "Uplifting"
        ],
        "title": "Fresh Love",
        "assets": {
          "waveform": {
            "url": "https://ak.picdn.net/shutterstock/audio/434750/waveform/waveform.png",
            "file_size": 19822
          },
          "clean_audio": {
            "file_size": 30760372
          },
          "preview_mp3": {
            "url": "https://ak.picdn.net/shutterstock/audio/434750/preview/preview.mp3",
            "file_size": 3846606
          },
          "preview_ogg": {
            "url": "https://ak.picdn.net/shutterstock/audio/434750/preview/preview.ogg",
            "file_size": 4402608
          }
        },
        "genres": [
          "Dance/Electronic",
          "Electro Pop",
          "Pop/Rock"
        ],
        "lyrics": "",
        "artists": [
          {
            "name": "Fin Productions"
          }
        ],
        "duration": 160,
        "is_adult": false,
        "keywords": [
          "breezy",
          "celebration",
          "festive",
          "good times",
          "hopeful",
          "optimistic",
          "party",
          "positive",
          "reflective"
        ],
        "language": "en",
        "releases": [],
        "added_date": "2016-04-12T00:00:00.000Z",
        "media_type": "audio",
        "contributor": {
          "id": "2847971X"
        },
        "description": "Pulsing and feel-good, featuring slick electric guitar, synthesizer, bass, electronic drum pads and drums that create a positive, celebratory mood.",
        "instruments": [
          "Bass",
          "Drums",
          "Electric guitar",
          "Pads",
          "Percussion",
          "Synthesizer"
        ],
        "updated_time": "2016-08-18T22:03:11.000Z",
        "published_time": "2016-04-12T21:45:29.000Z",
        "is_instrumental": true,
        "similar_artists": [],
        "recording_version": "",
        "vocal_description": ""
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Audio"
      },
      "description": "Tracks"
    },
    "page": {
      "type": "integer",
      "description": "Current page that is returned"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      },
      "description": "Error list; appears only if there was an error"
    },
    "message": {
      "type": "string",
      "description": "Server-generated message, if any"
    },
    "per_page": {
      "type": "integer",
      "description": "Number of results per page"
    },
    "total_count": {
      "type": "integer",
      "description": "Total count of all results across all pages"
    }
  },
  "description": "List of tracks"
}
object AudioRenderResult
{
  "type": "object",
  "example": {
    "id": "2yZp13IhLqnjfh2KquDTOHUHzTiP",
    "files": [],
    "preset": "MASTER_MP3",
    "status": "WAITING_COMPOSE",
    "timeline": {},
    "created_date": "2021-07-13T20:19:30.000Z",
    "updated_date": "2021-07-13T20:19:30.000Z",
    "progress_percent": 0
  },
  "required": [
    "id",
    "timeline",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The alphanumeric ID of the simple render"
    },
    "files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRendersFilesList"
      },
      "description": "The files associated with the render"
    },
    "preset": {
      "enum": [
        "MASTER_MP3",
        "MASTER_WAV",
        "STEMS_WAV"
      ],
      "type": "string",
      "description": "The file format preset"
    },
    "status": {
      "enum": [
        "WAITING_COMPOSE",
        "RUNNING_COMPOSE",
        "WAITING_RENDER",
        "RUNNING_RENDER",
        "CREATED",
        "FAILED_CREATE"
      ],
      "type": "string",
      "description": "A coarse progress indicator"
    },
    "timeline": {
      "$ref": "#/components/schemas/AudioRenderTimeline"
    },
    "created_date": {
      "type": "string",
      "format": "date-time",
      "description": "The time the render was submitted to the API"
    },
    "updated_date": {
      "type": "string",
      "format": "date-time",
      "description": "The time that the audio output was uploaded"
    },
    "progress_percent": {
      "type": "integer",
      "description": "The current progress of the render as a percentage"
    }
  },
  "description": "The output of an audio render in WAV or MP3 format"
}
object AudioRenderTimeline
{
  "type": "object",
  "example": {
    "spans": [
      {
        "id": 123456,
        "time": 5,
        "tempo": 12345,
        "regions": [
          {
            "id": 123456,
            "key": {
              "tonic_note": "c",
              "tonic_quality": "major",
              "tonic_accidental": "double flat"
            },
            "beat": 12,
            "region": "music",
            "end_type": {
              "beat": 12,
              "type": "ringout",
              "event": "ending"
            },
            "descriptor": "The descriptor ID needed to compose the music"
          }
        ],
        "span_type": "metered",
        "tempo_changes": [
          {
            "time": 5,
            "tempo": 12345
          }
        ],
        "instrument_groups": [
          {
            "statuses": [
              {
                "beat": 12,
                "status": "active"
              }
            ],
            "instrument_group": "The instrument ID"
          }
        ]
      }
    ]
  },
  "properties": {
    "spans": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRenderTimelineSpan"
      },
      "description": "A span object that represents the beginning of a period of absolute time"
    }
  },
  "description": "A timeline object that represents either a request for music to be created or an entire music composition"
}
object AudioRenderTimelineSpan
{
  "type": "object",
  "example": {
    "id": 111,
    "time": 0,
    "tempo": 76,
    "regions": [
      {
        "id": 222,
        "key": {
          "tonic_note": "c",
          "tonic_quality": "major"
        },
        "beat": 12,
        "region": "music",
        "end_type": {
          "beat": 24,
          "type": "ringout",
          "event": "ending"
        },
        "descriptor": "cinematic_minimal_tense"
      }
    ],
    "span_type": "metered"
  },
  "required": [
    "span_type",
    "time"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "An identifier which must be unique within the parent span"
    },
    "time": {
      "type": "integer",
      "description": "The absolute time, in seconds, at which the span starts"
    },
    "tempo": {
      "type": "integer",
      "description": "The tempo, in beats per minute, at the start of the span; if not provided, the API selects a random tempo"
    },
    "regions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRenderTimelineSpanRegion"
      },
      "description": "An array of region objects within the span"
    },
    "span_type": {
      "enum": [
        "metered",
        "unmetered"
      ],
      "type": "string",
      "description": "Type of span; metered spans represent a pariod of time with music, and unmetered spans denote the end of the prior metered span"
    },
    "tempo_changes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRenderTimelineSpanTempoChanges"
      },
      "description": "Two or more inflection points in a tempo curve; the API creates a smoothly changing tempo by using a linear interpolation of the time between each tempo change"
    },
    "instrument_groups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRenderTimelineSpanInstrumentGroup"
      },
      "description": "An array of instrument_group objects that are used in this span"
    }
  },
  "description": "The beginning of a non-overlapping period of absolute time"
}
object AudioRenderTimelineSpanInstrumentGroup
{
  "type": "object",
  "example": {
    "statuses": [
      {
        "beat": 12,
        "status": "active"
      }
    ],
    "instrument_group": "bright_roomy_kit"
  },
  "required": [
    "instrument_group"
  ],
  "properties": {
    "statuses": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRenderTimelineSpanInstrumentGroupStatus"
      },
      "description": "An array of status objects"
    },
    "instrument_group": {
      "type": "string",
      "description": "The instrument ID"
    }
  },
  "description": "An instrument and the status objects that specify when that instrument plays"
}
object AudioRenderTimelineSpanInstrumentGroupStatus
{
  "type": "object",
  "example": {
    "beat": 12,
    "status": "active"
  },
  "required": [
    "beat",
    "status"
  ],
  "properties": {
    "beat": {
      "type": "number",
      "description": "The beat, relative to the span, at which the status begins"
    },
    "status": {
      "enum": [
        "active",
        "inactive"
      ],
      "type": "string",
      "description": "Whether the instrument is playing or not"
    }
  },
  "description": "The status of an instrument at a specific beat"
}
object AudioRenderTimelineSpanRegion
{
  "type": "object",
  "example": {
    "id": 222,
    "key": {
      "tonic_note": "c",
      "tonic_quality": "major"
    },
    "beat": 12,
    "region": "music",
    "end_type": {
      "beat": 24,
      "type": "ringout",
      "event": "ending"
    },
    "descriptor": "cinematic_minimal_tense"
  },
  "required": [
    "id",
    "region",
    "descriptor",
    "beat"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "An identifier which must be unique within the parent span"
    },
    "key": {
      "type": "object",
      "properties": {
        "tonic_note": {
          "enum": [
            "c",
            "d",
            "e",
            "f",
            "g",
            "a",
            "b"
          ],
          "type": "string",
          "description": "A text representation of the musical note; if this field is specified, the tonic_accidental field should also be specified"
        },
        "tonic_quality": {
          "enum": [
            "major",
            "natural_minor",
            "harmonic_minor",
            "melodic_minor",
            "ionian",
            "dorian",
            "phrygian",
            "lydian",
            "mixolydian",
            "aeolian",
            "locrian"
          ],
          "type": "string",
          "example": "major",
          "description": "The scale quality; if this field is not specified, the API selects the quality automatically"
        },
        "tonic_accidental": {
          "enum": [
            "double flat",
            "flat",
            "natural",
            "sharp",
            "double sharp"
          ],
          "type": "string",
          "description": "A text representation of the accidental; if this field is specified, the tonic_note field should also be specified"
        }
      },
      "description": "The key signature active at the beginning of the region"
    },
    "beat": {
      "type": "integer",
      "description": "The beat, relative to the span, at which the region object's music begins"
    },
    "region": {
      "enum": [
        "music",
        "silence"
      ],
      "type": "string",
      "description": "The type of region"
    },
    "end_type": {
      "type": "object",
      "required": [
        "beat",
        "event",
        "type"
      ],
      "properties": {
        "beat": {
          "type": "number",
          "description": "The beat, relative to the start of the active region, at which the end_type begins; in other words, the ending starts on this beat of the region"
        },
        "type": {
          "enum": [
            "ringout",
            "cut"
          ],
          "type": "string",
          "description": "The specific action to perform; if the event type is \"ending\" then this must be \"ringout\" and if event type is \"transition\" this must be \"cut\""
        },
        "event": {
          "enum": [
            "ending",
            "transition"
          ],
          "type": "string",
          "description": "The type of event"
        }
      },
      "description": "A high-level description of how a region ends"
    },
    "descriptor": {
      "type": "string",
      "description": "The descriptor ID needed to compose the music"
    }
  },
  "description": "A period of music or silence, measured in beats"
}
object AudioRenderTimelineSpanTempoChanges
{
  "type": "object",
  "example": {
    "time": 5,
    "tempo": 86
  },
  "required": [
    "time",
    "tempo"
  ],
  "properties": {
    "time": {
      "type": "number",
      "description": "The time, in seconds, at which the tempo exists"
    },
    "tempo": {
      "type": "number",
      "description": "The tempo, in beats per minute, active at this time"
    }
  },
  "description": "An inflection point in a tempo curve; the API creates the overall tempo by using a linear interpolation of the time between each tempo change"
}
object AudioRendersFilesList
{
  "type": "object",
  "example": {
    "tracks": [
      "master"
    ],
    "filename": "My_audio_ai.mp3",
    "size_bytes": 481556,
    "bits_sample": 16,
    "content_type": "audio/mp3",
    "download_url": "https://s3.amazonaws.com/prod-amper-inferno-ephemeral/renders/2021/07/13/amper-api-QwAgKqXQAzr622KuXYZ25C9WRH3a/0.mp3",
    "frequency_hz": 44100,
    "kbits_second": 192
  },
  "required": [
    "filename",
    "bits_sample",
    "content_type",
    "download_url",
    "frequency_hz",
    "kbits_second",
    "size_bytes",
    "tracks"
  ],
  "properties": {
    "tracks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of track names included in the file"
    },
    "filename": {
      "type": "string",
      "description": "The user-specified file name suggestion from the render request; this file name becomes the filename property of the Content-Disposition header when the user downloads the rendered audio file"
    },
    "size_bytes": {
      "type": "number",
      "description": "Size of the file in bytes"
    },
    "bits_sample": {
      "type": "number",
      "description": "The bit depth of the audio files in bits/sample"
    },
    "content_type": {
      "type": "string",
      "description": "The content-type of the file"
    },
    "download_url": {
      "type": "string",
      "description": "The internet-accessible URL from which the file can be downloaded. Any redirects encountered when using this URL must be followed"
    },
    "frequency_hz": {
      "type": "number",
      "description": "The Sample rate of the audio files in Hertz (Hz)"
    },
    "kbits_second": {
      "type": "number",
      "description": "The data rate of the audio files in kilobits/second"
    }
  },
  "description": "Files associated with the render"
}
object AudioRendersListResults
{
  "example": {
    "audio_renders": [
      {
        "id": "2yZp13IhLqnjfh2KquDTOHUHzTiPX",
        "files": [],
        "preset": "MASTER_MP3",
        "status": "WAITING_COMPOSE",
        "timeline": {},
        "created_date": "2021-07-13T20:19:30.000Z",
        "updated_date": "2021-07-13T20:19:30.000Z",
        "progress_percent": 20
      },
      {
        "id": "QwAgKqXQAzr622KuXYZ25C9WRH3a",
        "files": [
          {
            "tracks": [
              "master"
            ],
            "filename": "My_audio_ai.mp3",
            "size_bytes": 481556,
            "bits_sample": 16,
            "content_type": "audio/mp3",
            "download_url": "https://s3.amazonaws.com/prod-amper-inferno-ephemeral/renders/2021/07/13/amper-api-QwAgKqXQAzr622KuXYZ25C9WRH3a/0.mp3",
            "frequency_hz": 44100,
            "kbits_second": 192
          },
          {
            "tracks": [
              "master"
            ],
            "filename": "render.json",
            "size_bytes": 4420,
            "bits_sample": 0,
            "content_type": "application/vnd.amper.waveform+json",
            "download_url": "https://s3.amazonaws.com/prod-amper-inferno-ephemeral/renders/2021/07/13/amper-api-QwAgKqXQAzr622KuXYZ25C9WRH3a/1.json",
            "frequency_hz": 42,
            "kbits_second": 0
          }
        ],
        "preset": "MASTER_MP3",
        "status": "CREATED",
        "timeline": {},
        "created_date": "2021-07-12T20:39:59.000Z",
        "updated_date": "2021-07-12T20:46:26.000Z",
        "progress_percent": 100
      }
    ]
  },
  "required": [
    "audio_renders"
  ],
  "properties": {
    "audio_renders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioRenderResult"
      },
      "description": "Audio render results"
    }
  },
  "description": "Audio render data"
}
object AudioSearchResults
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": "442583X",
        "bpm": 110,
        "url": "",
        "isrc": "",
        "moods": [
          "Bright",
          "Confident",
          "Fun",
          "Happy",
          "Inspiring",
          "Optimistic",
          "Playful",
          "Sophisticated",
          "Stylish",
          "Uplifting"
        ],
        "title": "Another Tomorrow",
        "assets": {
          "waveform": {
            "url": "https://ak.picdn.net/shutterstock/audio/442583/waveform/waveform.png",
            "file_size": 18778
          },
          "clean_audio": {
            "file_size": 35188408
          },
          "preview_mp3": {
            "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3",
            "file_size": 4400203
          },
          "preview_ogg": {
            "url": "https://ak.picdn.net/shutterstock/audio/442583/preview/preview.ogg",
            "file_size": 4453197
          }
        },
        "genres": [
          "Dance/Electronic",
          "Electro Pop",
          "Pop/Rock"
        ],
        "lyrics": "",
        "artists": [
          {
            "name": "Klimenko Music"
          }
        ],
        "duration": 183,
        "is_adult": false,
        "keywords": [
          "celebratory",
          "chic",
          "euphoric",
          "good times",
          "hip",
          "optimistic",
          "party",
          "soaring",
          "upbeat"
        ],
        "language": "en",
        "releases": [],
        "added_date": "2016-08-16T00:00:00.000Z",
        "media_type": "audio",
        "contributor": {
          "id": "2847971X"
        },
        "description": "Pulsing and feel-good, featuring soaring synthesizer, groovy synth bass drums and synth drums that create a euphoric, upbeat mood.",
        "instruments": [
          "Piano",
          "Synth bass",
          "Synth drums",
          "Synthesizer"
        ],
        "updated_time": "2016-08-18T21:59:33.000Z",
        "published_time": "2016-08-16T18:30:03.000Z",
        "is_instrumental": true,
        "similar_artists": [],
        "recording_version": "",
        "vocal_description": ""
      }
    ],
    "page": 1,
    "per_page": 5,
    "search_id": "749090bb-2967-4a20-b22e-c800dc845e10",
    "total_count": 123455
  },
  "required": [
    "data",
    "total_count",
    "search_id"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Audio"
      },
      "description": "List of tracks"
    },
    "page": {
      "type": "integer",
      "description": "Current page that is returned"
    },
    "message": {
      "type": "string",
      "description": "Server-generated message, if any"
    },
    "per_page": {
      "type": "integer",
      "description": "Number of results per page"
    },
    "search_id": {
      "type": "string",
      "description": "ID of the search"
    },
    "total_count": {
      "type": "integer",
      "description": "Total count of all results across all pages"
    }
  },
  "description": "Audio search results"
}
object AudioUrl
{
  "type": "object",
  "example": {
    "$ref": "#/components/schemas/Url/example"
  },
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "URL that can be used to download the unwatermarked, licensed asset"
    },
    "shorts_loops_stems": {
      "type": "string",
      "description": "URL that can be used to download the .zip file containing shorts, loops, and stems"
    }
  },
  "description": "Audio License URL object"
}
string AuthorizeResponse
{
  "type": "string",
  "example": "Moved temporarily. Redirecting to https://accounts.shutterstock.com/login?next=%2Foauth%2Fauthorize%3Fresponse_type%3Dcode%26state%3D1539619928633%26scope%3Dlicenses.create%20licenses.view%20purchases.view%26client_id%3D6d097450b209c6dcd859%26redirect_uri%3Dhttp%3A%2F%2Flocalhost%3A3000%2Fmyapp%2Fauth%2Fcallback%26realm%3Dcustomer",
  "description": "HTML redirect URL that contains the application authorization 'code'"
}
object Bands
{
  "type": "object",
  "example": {
    "id": "1234567X",
    "name": "The Happy Tunes Band"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "The ID of the band"
    },
    "name": {
      "type": "string",
      "description": "The name of the band"
    }
  },
  "description": "A band that can be used to generate music"
}
array BulkImageSearchRequest
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SearchImage"
  },
  "example": [
    {
      "sort": "popular",
      "query": "cat",
      "license": [
        "editorial"
      ]
    },
    {
      "query": "dog",
      "orientation": "horizontal"
    }
  ],
  "maxItems": 5,
  "description": "List of searches"
}
object BulkImageSearchResults
{
  "type": "object",
  "example": {
    "results": [
      {
        "data": [
          {
            "id": "1572478477",
            "aspect": 1.5,
            "assets": {
              "preview": {
                "url": "https://image.shutterstock.com/display_pic_with_logo/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg",
                "width": 450,
                "height": 300
              },
              "huge_thumb": {
                "url": "https://image.shutterstock.com/image-photo/cropped-image-woman-gardening-260nw-1572478477.jpg",
                "width": 390,
                "height": 260
              },
              "large_thumb": {
                "url": "https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg",
                "width": 150,
                "height": 100
              },
              "small_thumb": {
                "url": "https://thumb7.shutterstock.com/thumb_small/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg",
                "width": 100,
                "height": 67
              },
              "preview_1000": {
                "url": "https://ak.picdn.net/shutterstock/photos/1572478477/watermark_1000/1706028c641ea2f443057287c67d9b91/preview_1000-1572478477.jpg",
                "width": 1000,
                "height": 667
              },
              "preview_1500": {
                "url": "https://image.shutterstock.com/z/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg",
                "width": 1500,
                "height": 1000
              }
            },
            "image_type": "photo",
            "media_type": "image",
            "contributor": {
              "id": "250738318"
            },
            "description": "cropped image of woman gardening",
            "has_model_release": true
          }
        ],
        "page": 1,
        "per_page": 5,
        "search_id": "749090bb-2967-4a20-b22e-c800dc845e10",
        "total_count": 45,
        "spellcheck_info": {}
      },
      {
        "data": [],
        "page": 1,
        "per_page": 5,
        "search_id": "749090bb-2967-4a20-b22e-c800dc845e11",
        "total_count": 0,
        "spellcheck_info": {}
      }
    ]
  },
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ImageSearchResults"
      },
      "description": "List of image search results"
    },
    "bulk_search_id": {
      "type": "string",
      "description": "Unique identifier for the search request"
    }
  },
  "description": "List of search results for each given query"
}
object CatalogCollection
{
  "type": "object",
  "example": {
    "id": "126351028",
    "name": "My collection",
    "visibility": "public",
    "cover_asset": {
      "id": "123",
      "asset": {
        "id": "1690105108",
        "name": "Young couple playing tennis at the court",
        "type": "image"
      },
      "created_time": "2021-06-10T17:26:09.000Z"
    },
    "created_time": "2021-05-20T20:15:22.000Z",
    "updated_time": "2021-06-10T17:26:09.000Z",
    "role_assignments": {
      "roles": {
        "owners": [
          {
            "id": "321",
            "type": "USER",
            "email": "userOne@org.com"
          }
        ],
        "editors": [
          {
            "id": "987",
            "type": "USER",
            "email": "userTwo@org.com"
          }
        ],
        "viewers": []
      },
      "collection_id": "126351028"
    },
    "total_item_count": 2
  },
  "required": [
    "id",
    "name",
    "total_item_count",
    "created_time",
    "updated_time",
    "visibility",
    "role_assignments"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "visibility": {
      "enum": [
        "private",
        "public"
      ],
      "type": "string"
    },
    "cover_asset": {
      "$ref": "#/components/schemas/CatalogCollectionItem"
    },
    "created_time": {
      "type": "string",
      "format": "date-time"
    },
    "updated_time": {
      "type": "string",
      "format": "date-time"
    },
    "role_assignments": {
      "$ref": "#/components/schemas/CatalogCollectionRoleAssignments"
    },
    "total_item_count": {
      "type": "number"
    }
  },
  "description": "Catalog collection"
}
object CatalogCollectionDataList
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": "126351028X",
        "name": "My collection",
        "visibility": "public",
        "cover_asset": {
          "id": "123X",
          "asset": {
            "id": "1690105108X",
            "name": "Young couple playing tennis at the court",
            "type": "image"
          },
          "created_time": "2021-06-10T17:26:09.000Z"
        },
        "created_time": "2021-05-20T20:15:22.000Z",
        "updated_time": "2021-06-10T17:26:09.000Z",
        "role_assignments": {
          "roles": {
            "owners": [
              {
                "id": "321X",
                "type": "USER",
                "email": "userOne@org.com"
              }
            ],
            "editors": [
              {
                "id": "987X",
                "type": "USER",
                "email": "userTwo@org.com"
              }
            ],
            "viewers": []
          },
          "collection_id": "126351028"
        },
        "total_item_count": 2
      }
    ],
    "page": 1,
    "per_page": 20,
    "total_count": 1
  },
  "required": [
    "page",
    "per_page",
    "total_count",
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CatalogCollection"
      },
      "description": "List of catalog collections"
    },
    "page": {
      "type": "number"
    },
    "per_page": {
      "type": "number"
    },
    "total_count": {
      "type": "number"
    }
  },
  "description": "List of catalog collections"
}
object CatalogCollectionItem
{
  "type": "object",
  "example": {
    "id": "123X",
    "asset": {
      "id": "1690105108X",
      "name": "Young couple playing tennis at the court",
      "type": "image"
    },
    "created_time": "2021-06-10T17:26:09.000Z",
    "collection_ids": [
      "126351028"
    ]
  },
  "required": [
    "id",
    "asset",
    "created_time"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "asset": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "enum": [
            "image",
            "video",
            "audio",
            "editorial-image",
            "editorial-video"
          ],
          "type": "string"
        }
      }
    },
    "created_time": {
      "type": "string",
      "format": "date-time"
    },
    "collection_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The collection IDs that this asset belongs to"
    }
  },
  "description": "Metadata about an item that is part of a collection"
}
object CatalogCollectionItemDataList
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": "123X",
        "asset": {
          "id": "1690105108X",
          "name": "Young couple playing tennis at the court",
          "type": "image"
        },
        "created_time": "2021-06-10T17:26:09.000Z",
        "collection_ids": [
          "126351028"
        ]
      }
    ],
    "page": 1,
    "per_page": 1,
    "total_count": 82
  },
  "required": [
    "page",
    "per_page",
    "total_count",
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CatalogCollectionItem"
      },
      "description": "List of catalog collection items"
    },
    "page": {
      "type": "number"
    },
    "per_page": {
      "type": "number"
    },
    "total_count": {
      "type": "number"
    }
  },
  "description": "List of catalog collection items"
}
object CatalogCollectionRole
{
  "type": "object",
  "example": {
    "id": "123X",
    "type": "USER",
    "email": "user123@org.com"
  },
  "required": [
    "id",
    "type",
    "email"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "enum": [
        "USER"
      ],
      "type": "string"
    },
    "email": {
      "type": "string"
    }
  },
  "description": "A user that has access to a catalog collection"
}
object CatalogCollectionRoleAssignments
{
  "type": "object",
  "example": {
    "roles": {
      "owners": [
        {
          "id": "321X",
          "type": "USER",
          "email": "userOne@org.com"
        }
      ],
      "editors": [
        {
          "id": "987X",
          "type": "USER",
          "email": "userTwo@org.com"
        }
      ],
      "viewers": []
    },
    "collection_id": "126351028"
  },
  "required": [
    "collection_id",
    "roles"
  ],
  "properties": {
    "roles": {
      "type": "object",
      "properties": {
        "owners": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CatalogCollectionRole"
          }
        },
        "editors": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CatalogCollectionRole"
          }
        },
        "viewers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CatalogCollectionRole"
          }
        }
      }
    },
    "collection_id": {
      "type": "string"
    }
  },
  "description": "List of role assignments for a catalog collection"
}
object Category
{
  "type": "object",
  "example": {
    "id": "1",
    "name": "Animals/Wildlife"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "Category ID"
    },
    "name": {
      "type": "string",
      "description": "Category name"
    }
  },
  "description": "Category information"
}
object CategoryDataList
{
  "example": {
    "data": [
      {
        "id": "1X",
        "name": "Animals/Wildlife"
      },
      {
        "id": "11",
        "name": "The Arts"
      }
    ],
    "page": 1,
    "per_page": 2,
    "total_count": 13
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Category"
      },
      "description": "Categories"
    },
    "page": {
      "type": "integer",
      "description": "The current page of results"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      },
      "description": "Error list; appears only if there was an error"
    },
    "message": {
      "type": "string",
      "description": "Server-generated message, if any"
    },
    "per_page": {
      "type": "integer",
      "description": "The number of results per page"
    },
    "total_count": {
      "type": "integer",
      "description": "The total number of results across all pages"
    }
  },
  "description": "List of categories that images can belong to"
}
object Collection
{
  "type": "object",
  "example": {
    "id": "293542904",
    "name": "My collection",
    "cover_item": {
      "id": "297886754"
    },
    "total_item_count": 85,
    "items_updated_time": "2021-05-20T20:15:22.000Z"
  },
  "required": [
    "id",
    "name",
    "total_item_count"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The collection ID"
    },
    "name": {
      "type": "string",
      "description": "The name of the collection"
    },
    "share_url": {
      "type": "string",
      "description": "The browser URL that can be used to share the collection (optional)"
    },
    "cover_item": {
      "$ref": "#/components/schemas/CollectionItem"
    },
    "share_code": {
      "type": "string",
      "description": "A code that can be used to share the collection (optional)"
    },
    "created_time": {
      "type": "string",
      "format": "date-time",
      "description": "When the collection was created"
    },
    "updated_time": {
      "type": "string",
      "format": "date-time",
      "description": "The last time the collection was update (other than changes to the items in it)"
    },
    "total_item_count": {
      "type": "integer",
      "description": "The number of items in the collection"
    },
    "items_updated_time": {
      "type": "string",
      "format": "date-time",
      "description": "The last time this collection's items were updated"
    }
  },
  "description": "Metadata about a collection of assets"
}
object CollectionCreateRequest
{
  "type": "object",
  "example": {
    "name": "Test Collection 19cf"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the collection"
    }
  },
  "description": "Collection creation request"
}
object CollectionCreateResponse
{
  "type": "object",
  "example": {
    "id": "48433105"
  },
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the new collection"
    }
  },
  "description": "Collection creation response"
}
object CollectionDataList
{
  "example": {
    "data": [
      {
        "id": "293542904X",
        "name": "My collection",
        "cover_item": {
          "id": "297886754X"
        },
        "total_item_count": 85,
        "items_updated_time": "2021-05-20T20:15:22.000Z"
      }
    ],
    "page": 1,
    "per_page": 100,
    "total_count": 1
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Collection"
      },
      "description": "Collections"
    },
    "page": {
      "type": "integer",
      "description": "The current page of results"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      },
      "description": "Error list; appears only if there was an error"
    },
    "message": {
      "type": "string",
      "description": "Server-generated message, if any"
    },
    "per_page": {
      "type": "integer",
      "description": "The number of results per page"
    },
    "total_count": {
      "type": "integer",
      "description": "The total number of results across all pages"
    }
  },
  "description": "List of collections"
}
object CollectionItem
{
  "type": "object",
  "example": {
    "id": "1690105108X",
    "added_time": "2020-05-29T17:10:22.000Z",
    "media_type": "image"
  },
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the item"
    },
    "added_time": {
      "type": "string",
      "format": "date-time",
      "description": "The date the item was added to the collection"
    },
    "media_type": {
      "type": "string",
      "description": "The media type of the item, such as image, video, or audio"
    }
  },
  "description": "Metadata about an item that is part of a collection"
}
object CollectionItemDataList
{
  "example": {
    "data": [
      {
        "id": "1690105108X",
        "added_time": "2021-07-08T12:33:37.000Z",
        "media_type": "image"
      },
      {
        "id": "1468703072",
        "added_time": "2021-07-08T12:31:43.000Z",
        "media_type": "image"
      }
    ],
    "page": 1,
    "per_page": 2,
    "total_count": 82
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CollectionItem"
      },
      "description": "Assets in the collection"
    },
    "page": {
      "type": "integer",
      "description": "The current page of results"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      },
      "description": "Error list; appears only if there was an error"
    },
    "message": {
      "type": "string",
      "description": "Server-generated message, if any"
    },
    "per_page": {
      "type": "integer",
      "description": "The number of results per page"
    },
    "total_count": {
      "type": "integer",
      "description": "The total number of results across all pages"
    }
  },
  "description": "List of items in a collection"
}
object CollectionItemRequest
{
  "type": "object",
  "example": {
    "items": [
      {
        "id": "1690105108X",
        "added_time": "2020-05-29T17:10:22.000Z",
        "media_type": "image"
      }
    ]
  },
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CollectionItem"
      },
      "description": "List of items"
    }
  },
  "description": "Request to get a list of items in a collection"
}
object CollectionUpdateRequest
{
  "type": "object",
  "example": {
    "name": "My collection with a new name"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The new name of the collection"
    }
  },
  "description": "Collection update request"
}
object ComputerVisionImageCreateResponse
{
  "type": "object",
  "example": {
    "upload_id": "Udb14e1c3540bdbf82b4b3fe12d3a44f2"
  },
  "required": [
    "upload_id"
  ],
  "properties": {
    "upload_id": {
      "type": "string"
    }
  },
  "description": "Asset upload information"
}
object Contributor
{
  "type": "object",
  "example": {
    "id": "12345678"
  },
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the contributor"
    }
  },
  "description": "Information about a contributor"
}
object ContributorProfile
{
  "type": "object",
  "example": {
    "id": "12345678X",
    "about": "John Doe's photographs",
    "styles": [
      "landscape",
      "nature",
      "footage_travel"
    ],
    "website": "http://example.com/profiles/jdoe",
    "location": "US",
    "subjects": [
      "animals",
      "landmarks",
      "nature",
      "objects",
      "recreation"
    ],
    "equipment": [
      "Nikon",
      "Fuji"
    ],
    "display_name": "John Doe",
    "social_media": {
      "tumblr": "http://example.com/jdoe",
      "twitter": "http://example.com/jdoe",
      "facebook": "http://example.com/jdoe",
      "linkedin": "http://example.com/jdoe",
      "pinterest": "http://example.com/jdoe",
      "google_plus": "http://example.com/jdoe"
    },
    "portfolio_url": "https://www.shutterstock.com/g/jdoe",
    "contributor_type": [
      "photographer"
    ]
  },
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Contributor ID"
    },
    "about": {
      "type": "string",
      "description": "Short description of the contributors' library"
    },
    "styles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of styles that the contributor specializes in (lifestyle, mixed media, etc)"
    },
    "website": {
      "type": "string",
      "description": "Personal website for the contributor"
    },
    "location": {
      "type": "string",
      "description": "Country code representing the contributor's locale"
    },
    "subjects": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Generic list of subjects for contributors' work (food_and_drink, holiday, people, etc)"
    },
    "equipment": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of equipment used by the contributor (Canon EOS 5D Mark II, etc)"
    },
    "display_name": {
      "type": "string",
      "description": "Preferred name to be displayed for the contributor"
    },
    "social_media": {
      "$ref": "#/components/schemas/ContributorProfileSocialMedia"
    },
    "portfolio_url": {
      "type": "string",
      "description": "Web URL for the contributors' profile"
    },
    "contributor_type": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Type of content that the contributor specializes in (photographer, illustrator, etc)"
    }
  },
  "description": "Contributor profile data"
}
object ContributorProfileDataList
{
  "example": {
    "data": [
      {
        "id": "12345678X",
        "about": "John Doe's photographs",
        "styles": [
          "landscape",
          "nature",
          "footage_travel"
        ],
        "website": "http://example.com/profiles/jdoe",
        "location": "US",
        "subjects": [
          "animals",
          "landmarks",
          "nature",
          "objects",
          "recreation"
        ],
        "equipment": [
          "Nikon",
          "Fuji"
        ],
        "display_name": "John Doe",
        "social_media": {
          "tumblr": "http://example.com/jdoe",
          "twitter": "http://example.com/jdoe",
          "facebook": "http://example.com/jdoe",
          "linkedin": "http://example.com/jdoe",
          "pinterest": "http://example.com/jdoe",
          "google_plus": "http://example.com/jdoe"
        },
        "portfolio_url": "https://www.shutterstock.com/g/jdoe",
        "contributor_type": [
          "photographer"
        ]
      }
    ],
    "page": 1,
    "per_page": 5,
    "total_count": 15
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ContributorProfile"
      },
      "description": "Conributor profiles"
    },
    "page": {
      "type": "integer",
      "description": "Page of response"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      },
      "description": "Error list; appears only if there was an error"
    },
    "message": {
      "type": "string",
      "description": "Error message"
    },
    "per_page": {
      "type": "integer",
      "description": "Number of contributors per page"
    },
    "total_count": {
      "type": "integer",
      "description": "Total count of contributors for this request"
    }
  },
  "description": "List of contributor profiles"
}
object ContributorProfileSocialMedia
{
  "type": "object",
  "example": {
    "tumblr": "http://example.com/jdoe",
    "twitter": "http://example.com/jdoe",
    "facebook": "http://example.com/jdoe",
    "linkedin": "http://example.com/jdoe",
    "pinterest": "http://example.com/jdoe",
    "google_plus": "http://example.com/jdoe"
  },
  "properties": {
    "tumblr": {
      "type": "string",
      "description": "Tumblr link for contributor"
    },
    "twitter": {
      "type": "string",
      "description": "Twitter link for contributor"
    },
    "facebook": {
      "type": "string",
      "description": "Facebook link for contributor"
    },
    "linkedin": {
      "type": "string",
      "description": "LinkedIn link for contributor"
    },
    "pinterest": {
      "type": "string",
      "description": "Pinterest page for contributor"
    },
    "google_plus": {
      "type": "string",
      "description": "Google+ link for contributor"
    }
  },
  "description": "Contributor profile social media links"
}
object Cookie
{
  "type": "object",
  "example": {
    "name": "The name of the cookie",
    "value": "The value of the cookie"
  },
  "required": [
    "name",
    "value"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the cookie"
    },
    "value": {
      "type": "string",
      "description": "The value of the cookie"
    }
  },
  "description": "Cookie object"
}
object CreateAudioRender
{
  "type": "object",
  "example": {
    "preset": "MASTER_MP3",
    "filename": "My Project.mp3",
    "timeline": {
      "spans": [
        {
          "id": 111,
          "time": 5,
          "tempo": 76,
          "regions": [
            {
              "id": 222,
              "key": {
                "tonic_note": "c",
                "tonic_quality": "major"
              },
              "beat": 12,
              "region": "music",
              "end_type": {
                "beat": 24,
                "type": "ringout",
                "event": "ending"
              },
              "descriptor": "cinematic_minimal_tense"
            }
          ],
          "span_type": "metered",
          "tempo_changes": [
            {
              "time": 5,
              "tempo": 86
            }
          ],
          "instrument_groups": [
            {
              "statuses": [
                {
                  "beat": 12,
                  "status": "active"
                }
              ],
              "instrument_group": "roomy_kit"
            }
          ]
        },
        {
          "time": 20,
          "span_type": "unmetered"
        }
      ]
    }
  },
  "required": [
    "preset",
    "timeline",
    "filename"
  ],
  "properties": {
    "preset": {
      "enum": [
        "MASTER_MP3",
        "MASTER_WAV",
        "STEMS_WAV"
      ],
      "type": "string",
      "example": "MASTER_MP3",
      "description": "File format, such as MP3 file, combined WAV file, or individual track WAV files"
    },
    "filename": {
      "type": "string",
      "example": "My Project.mp3",
      "description": "A user-specified file name suggestion; this file name becomes the filename property of the Content-Disposition header when the user downloads the rendered audio file"
    },
    "timeline": {
      "$ref": "#/components/schemas/AudioRenderTimeline",
      "description": "The timeline data with which to generate the render"
    }
  },
  "description": "Data required to create an audio render"
}
object CreateAudioRendersRequest
{
  "type": "object",
  "example": {
    "audio_renders": [
      {
        "preset": "MASTER_MP3",
        "filename": "My Project.mp3",
        "timeline": {
          "spans": [
            {
              "id": 111,
              "time": 5,
              "tempo": 76,
              "regions": [
                {
                  "id": 222,
                  "key": {
                    "tonic_note": "c",
                    "tonic_quality": "major"
                  },
                  "beat": 12,
                  "region": "music",
                  "end_type": {
                    "beat": 24,
                    "type": "ringout",
                    "event": "ending"
                  },
                  "descriptor": "cinematic_minimal_tense"
                }
              ],
              "span_type": "metered",
              "tempo_changes": [
                {
                  "time": 5,
                  "tempo": 86
                }
              ],
              "instrument_groups": [
                {
                  "statuses": [
                    {
                      "beat": 12,
                      "status": "active"
                    }
                  ],
                  "instrument_group": "roomy_kit"
                }
              ]
            },
            {
              "time": 20,
              "span_type": "unmetered"
            }
          ]
        }
      }
    ]
  },
  "required": [
    "audio_renders"
  ],
  "properties": {
    "audio_renders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateAudioRender"
      },
      "description": "Parameters to create computer audio renders"
    }
  },
  "description": "Render request data"
}
object CreateCatalogCollection
{
  "type": "object",
  "example": {
    "name": "New Collection",
    "items": [
      {
        "asset": {
          "id": "1690105108X",
          "type": "image"
        }
      }
    ],
    "visibility": "public"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100000,
      "minLength": 1
    },
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateCatalogCollectionItem"
      },
      "maxItems": 50
    },
    "visibility": {
      "enum": [
        "private",
        "public"
      ],
      "type": "string",
      "default": "private"
    }
  }
}
object CreateCatalogCollectionItem
{
  "type": "object",
  "example": {
    "asset": {
      "id": "1690105108X",
      "type": "image"
    }
  },
  "required": [
    "asset"
  ],
  "properties": {
    "asset": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    }
  }
}
object CreateCatalogCollectionItems
{
  "type": "object",
  "example": {
    "items": [
      {
        "asset": {
          "id": "1690105108X",
          "type": "image"
        }
      }
    ]
  },
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateCatalogCollectionItem"
      },
      "maxItems": 50,
      "minItems": 1
    }
  }
}