{"openapi":"3.0.0","servers":[{"description":"Live server","url":"https://api.shutterstock.com"},{"description":"Sandbox server","url":"https://api-sandbox.shutterstock.com"}],"info":{"contact":{"x-twitter":"Shutterstock"},"description":"The Shutterstock API provides access to Shutterstock's library of media, as well as information about customers' accounts and the contributors that provide the media.","title":"Shutterstock API Explorer","version":"1.1.32","x-apisguru-categories":["media"],"x-logo":{"url":"https://twitter.com/Shutterstock/profile_image?size=original"},"x-origin":[{"format":"openapi","url":"https://api-explorer.shutterstock.com/openapi.json","version":"3.0"}],"x-providerName":"shutterstock.com"},"paths":{"/v2/ai/audio/descriptors":{"get":{"description":"This endpoint lists the descriptors that you can use in the audio regions in an audio render.","operationId":"listCustomDescriptors","parameters":[{"description":"Show descriptors with an average render speed that is greater than or equal to the specified value","example":5,"in":"query","name":"render_speed_over","schema":{"type":"number"}},{"description":"Show descriptors that contain the specified band (case-sentsitive)","example":"Corporate Folk Bonfire Band 1","in":"query","name":"band_id","schema":{"type":"string"}},{"description":"Show descriptors with the specified band name (case-sensitive)","example":"Documentary Underscore Heartfelt Band 1","in":"query","name":"band_name","schema":{"type":"string"}},{"description":"Page number","example":"1","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":"1","in":"query","name":"per_page","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Show descriptors with the specified IDs (case-sensitive)","example":"documentary_underscore_heartfelt","in":"query","name":"id","schema":{"items":{"type":"string"},"maxItems":20,"type":"array"}},{"description":"Show descriptors with the specified instrument name (case-sensitive)","example":"Precision Bass - Full","in":"query","name":"instrument_name","schema":{"type":"string"}},{"description":"Show descriptors with the specified instrument ID (case-sensitive)","example":"direct_fluorescent_synth_lead","in":"query","name":"instrument_id","schema":{"type":"string"}},{"description":"Show descriptors whose tempo range includes the specified tempo in beats per minute","example":90,"in":"query","name":"tempo","schema":{"type":"number"}},{"description":"Show descriptors with a tempo that is less than or equal to the specified number","example":120,"in":"query","name":"tempo_to","schema":{"type":"number"}},{"description":"Show descriptors that have a tempo range that includes the specified tempo in beats per minute","example":60,"in":"query","name":"tempo_from","schema":{"type":"number"}},{"description":"Show descriptors with the specified name (case-sensitive)","example":"Corporate Pop Inspirational High Energy","in":"query","name":"name","schema":{"type":"string"}},{"description":"Show descriptors with the specified tag, such as Cinematic or Roomy (case-sensitive)","example":"Cinematic","in":"query","name":"tag","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/DescriptorsListResult/example"}}},"schema":{"$ref":"#/components/schemas/DescriptorsListResult"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List computer audio descriptors","tags":["custom_music"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/ai/audio/descriptors\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst customMusicApi = new sstk.CustomMusicApi();\n\nconst queryParams = {\n  \"tag\": \"Cinematic\"\n};\n\ncustomMusicApi.listCustomDescriptors(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"tag\": \"Cinematic\",\n};\n\nsstk.customMusic.listCustomDescriptors(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { CustomMusicApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: CustomMusicApiMethodsParams[\"listCustomDescriptors\"] = {\n  \"tag\": \"Cinematic\",\n};\n\nsstk.customMusic.listCustomDescriptors(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/ai/audio/descriptors\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock ai-audio list-custom-descriptors \\\n  --tag Cinematic\n"}]}},"/v2/ai/audio/instruments":{"get":{"description":"This endpoint lists the instruments that you can include in computer audio. If you specify more than one search parameter, the API uses an AND condition.","operationId":"listCustomInstruments","parameters":[{"description":"Show instruments with the specified ID","example":"wood_blocks","in":"query","name":"id","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Number of results per page","example":1,"in":"query","name":"per_page","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Page number","example":"1","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Show instruments with the specified name (case-sensitive)","example":"Precision Bass - Full","in":"query","name":"name","schema":{"type":"string"}},{"description":"Show instruments with the specified tag, such as Percussion or Strings (case-sensitive)","example":"Percussion","in":"query","name":"tag","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/InstrumentsListResult/example"}}},"schema":{"$ref":"#/components/schemas/InstrumentsListResult"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List computer audio instruments","tags":["custom_music"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/ai/audio/instruments\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst customMusicApi = new sstk.CustomMusicApi();\n\nconst queryParams = {\n  \"tag\": \"Percussion\"\n};\n\ncustomMusicApi.listCustomInstruments(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"tag\": \"Percussion\",\n};\n\nsstk.customMusic.listCustomInstruments(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { CustomMusicApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: CustomMusicApiMethodsParams[\"listCustomInstruments\"] = {\n  \"tag\": \"Percussion\",\n};\n\nsstk.customMusic.listCustomInstruments(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/ai/audio/instruments\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock ai-audio list-custom-instruments \\\n  --tag Percussion\n"}]}},"/v2/ai/audio/renders":{"get":{"description":"This endpoint shows the status of one or more audio renders, including download links for completed audio.","operationId":"fetchRenders","parameters":[{"description":"One or more render IDs","example":["L2w7h9VNFlkzpllSUunSYayenKjN","BeHx3UNXzMBB4dGsC9aa6VxnpcWl"],"in":"query","name":"id","required":true,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/AudioRendersListResults/example"}}},"schema":{"$ref":"#/components/schemas/AudioRendersListResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get details about audio renders","tags":["custom_music"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/ai/audio/renders\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"id=L2w7h9VNFlkzpllSUunSYayenKjN\" \\\n  --data-urlencode \"id=BeHx3UNXzMBB4dGsC9aa6VxnpcWl\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst customMusicApi = new sstk.CustomMusicApi();\n\nconst renders = [\n  \"L2w7h9VNFlkzpllSUunSYayenKjN\",\n  \"BeHx3UNXzMBB4dGsC9aa6VxnpcWl\"\n];\n\ncustomMusicApi.fetchRenders(renders)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"id\": [\n    \"L2w7h9VNFlkzpllSUunSYayenKjN\",\n    \"BeHx3UNXzMBB4dGsC9aa6VxnpcWl\",\n  ],\n};\n\nsstk.customMusic.fetchRenders(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { CustomMusicApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: CustomMusicApiMethodsParams[\"fetchRenders\"] = {\n  \"id\": [\n    \"L2w7h9VNFlkzpllSUunSYayenKjN\",\n    \"BeHx3UNXzMBB4dGsC9aa6VxnpcWl\",\n  ],\n};\n\nsstk.customMusic.fetchRenders(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/ai/audio/renders?id=L2w7h9VNFlkzpllSUunSYayenKjN&id=BeHx3UNXzMBB4dGsC9aa6VxnpcWl\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock ai-audio fetch-renders \\\n  --id L2w7h9VNFlkzpllSUunSYayenKjN \\\n  --id BeHx3UNXzMBB4dGsC9aa6VxnpcWl\n"}]},"post":{"description":"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":"createAudioRenders","requestBody":{"content":{"application/json":{"example":{"$ref":"#/components/schemas/CreateAudioRendersRequest/example"},"schema":{"$ref":"#/components/schemas/CreateAudioRendersRequest"}}},"description":"Parameters for the audio, including the timeline and information about the output file","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"audio_renders":[{"created_date":"2025-04-15T13:52:09.803Z","files":[],"id":"njlpYoWWmb1AYs2nZyw7EcNWbAkZ","preset":"MASTER_MP3","progress_percent":0,"status":"WAITING_COMPOSE","timeline":{},"updated_date":"2025-04-15T13:52:09.803Z"}]}}},"schema":{"$ref":"#/components/schemas/AudioRendersListResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Create rendered audio","tags":["custom_music"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"audio_renders\": [\n    {\n      \"preset\": \"MASTER_MP3\",\n      \"filename\": \"My_audio_ai.mp3\",\n      \"timeline\": {\n        \"spans\": [\n          {\n            \"id\": 111,\n            \"span_type\": \"metered\",\n            \"time\": 0,\n            \"tempo\": 80,\n            \"regions\": [\n              {\n                \"id\": 222,\n                \"descriptor\": \"documentary_underscore_heartfelt\",\n                \"beat\": 0,\n                \"end_type\": {\n                  \"beat\": 17,\n                  \"event\": \"ending\",\n                  \"type\": \"ringout\"\n                },\n                \"region\": \"music\"\n              }\n            ],\n            \"instrument_groups\": [\n              {\n                \"instrument_group\": \"full_aw_nylon_acoustic_lead_guitar\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_viola_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"warm_devonshire_upright_acoustic_piano\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_first_violin_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_second_violin_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"warm_kawai_grand_acoustic_piano_dreamy\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"sweet_kawai_grand_acoustic_piano\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_cello_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"span_type\": \"unmetered\",\n            \"time\": 15\n          }\n        ]\n      }\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/ai/audio/renders\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst customMusicApi = new sstk.CustomMusicApi();\n\nconst body = {\n  \"audio_renders\": [\n    {\n      \"preset\": \"MASTER_MP3\",\n      \"filename\": \"My_audio_ai.mp3\",\n      \"timeline\": {\n        \"spans\": [\n          {\n            \"id\": 111,\n            \"span_type\": \"metered\",\n            \"time\": 0,\n            \"tempo\": 80,\n            \"regions\": [\n              {\n                \"id\": 222,\n                \"descriptor\": \"documentary_underscore_heartfelt\",\n                \"beat\": 0,\n                \"end_type\": {\n                  \"beat\": 17,\n                  \"event\": \"ending\",\n                  \"type\": \"ringout\"\n                },\n                \"region\": \"music\"\n              }\n            ],\n            \"instrument_groups\": [\n              {\n                \"instrument_group\": \"full_aw_nylon_acoustic_lead_guitar\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_viola_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"warm_devonshire_upright_acoustic_piano\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_first_violin_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_second_violin_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"warm_kawai_grand_acoustic_piano_dreamy\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"sweet_kawai_grand_acoustic_piano\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_cello_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"span_type\": \"unmetered\",\n            \"time\": 15\n          }\n        ]\n      }\n    }\n  ]\n};\n\ncustomMusicApi.createAudioRenders(body)\n  .then(async (data) => {\n    const { id } = data.audio_renders[0];\n    console.log(id);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst audioRendersBody = {\n  \"body\": {\n    \"audio_renders\": [\n      {\n        \"preset\": \"MASTER_MP3\",\n        \"filename\": \"My_audio_ai.mp3\",\n        \"timeline\": {\n          \"spans\": [\n            {\n              \"id\": 111,\n              \"span_type\": \"metered\",\n              \"time\": 0,\n              \"tempo\": 80,\n              \"regions\": [\n                {\n                  \"id\": 222,\n                  \"descriptor\": \"documentary_underscore_heartfelt\",\n                  \"beat\": 0,\n                  \"end_type\": {\n                    \"beat\": 17,\n                    \"event\": \"ending\",\n                    \"type\": \"ringout\",\n                  },\n                  \"region\": \"music\",\n                },\n              ],\n              \"instrument_groups\": [\n                {\n                  \"instrument_group\": \"full_aw_nylon_acoustic_lead_guitar\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_viola_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"warm_devonshire_upright_acoustic_piano\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_first_violin_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_second_violin_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"warm_kawai_grand_acoustic_piano_dreamy\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"sweet_kawai_grand_acoustic_piano\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_cello_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": \"active\",\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              \"span_type\": \"unmetered\",\n              \"time\": 15,\n            },\n          ],\n        },\n      },\n    ],\n  },\n};\n\nsstk.customMusic.createAudioRenders(audioRendersBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, {\n  AudioRenderTimelineSpanRegionEndTypeEventEnum,\n  AudioRenderTimelineSpanRegionEndTypeTypeEnum,\n  AudioRenderTimelineSpanRegionRegionEnum,\n  AudioRenderTimelineSpanSpanTypeEnum,\n  CreateAudioRenderPresetEnum,\n  AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum,\n} from \"shutterstock-api\";\nimport type { CustomMusicApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst audioRendersBody: CustomMusicApiMethodsParams[\"createAudioRenders\"] = {\n  \"body\": {\n    \"audio_renders\": [\n      {\n        \"preset\": CreateAudioRenderPresetEnum.MASTERMP3,\n        \"filename\": \"My_audio_ai.mp3\",\n        \"timeline\": {\n          \"spans\": [\n            {\n              \"id\": 111,\n              \"span_type\": AudioRenderTimelineSpanSpanTypeEnum.Metered,\n              \"time\": 0,\n              \"tempo\": 80,\n              \"regions\": [\n                {\n                  \"id\": 222,\n                  \"descriptor\": \"documentary_underscore_heartfelt\",\n                  \"beat\": 0,\n                  \"end_type\": {\n                    \"beat\": 17,\n                    \"event\": AudioRenderTimelineSpanRegionEndTypeEventEnum.Ending,\n                    \"type\": AudioRenderTimelineSpanRegionEndTypeTypeEnum.Ringout,\n                  },\n                  \"region\": AudioRenderTimelineSpanRegionRegionEnum.Music,\n                },\n              ],\n              \"instrument_groups\": [\n                {\n                  \"instrument_group\": \"full_aw_nylon_acoustic_lead_guitar\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_viola_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"warm_devonshire_upright_acoustic_piano\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_first_violin_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_second_violin_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"warm_kawai_grand_acoustic_piano_dreamy\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"sweet_kawai_grand_acoustic_piano\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n                {\n                  \"instrument_group\": \"nice_scoring_cello_ensemble\",\n                  \"statuses\": [\n                    {\n                      \"beat\": 0,\n                      \"status\": AudioRenderTimelineSpanInstrumentGroupStatusStatusEnum.Active,\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              \"span_type\": AudioRenderTimelineSpanSpanTypeEnum.Unmetered,\n              \"time\": 15,\n            },\n          ],\n        },\n      },\n    ],\n  },\n};\n\nsstk.customMusic.createAudioRenders(audioRendersBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"audio_renders\" => [\n    [\n      \"preset\" => \"MASTER_MP3\",\n      \"filename\" => \"My_audio_ai.mp3\",\n      \"timeline\" => [\n        \"spans\" => [\n          [\n            \"id\" => 111,\n            \"span_type\" => \"metered\",\n            \"time\" => 0,\n            \"tempo\" => 80,\n            \"regions\" => [\n              [\n                \"id\" => 222,\n                \"descriptor\" => \"documentary_underscore_heartfelt\",\n                \"beat\" => 0,\n                \"end_type\" => [\n                  \"beat\" => 17,\n                  \"event\" => \"ending\",\n                  \"type\" => \"ringout\"\n                ],\n                \"region\" => \"music\"\n              ]\n            ],\n            \"instrument_groups\" => [\n              [\n                \"instrument_group\" => \"full_aw_nylon_acoustic_lead_guitar\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"nice_scoring_viola_ensemble\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"warm_devonshire_upright_acoustic_piano\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"nice_scoring_first_violin_ensemble\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"nice_scoring_second_violin_ensemble\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"warm_kawai_grand_acoustic_piano_dreamy\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"sweet_kawai_grand_acoustic_piano\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ],\n              [\n                \"instrument_group\" => \"nice_scoring_cello_ensemble\",\n                \"statuses\" => [\n                  [\n                    \"beat\" => 0,\n                    \"status\" => \"active\"\n                  ]\n                ]\n              ]\n            ]\n          ],\n          [\n            \"span_type\" => \"unmetered\",\n            \"time\" => 15\n          ]\n        ]\n      ]\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/ai/audio/renders\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"audio_renders\": [\n    {\n      \"preset\": \"MASTER_MP3\",\n      \"filename\": \"My_audio_ai.mp3\",\n      \"timeline\": {\n        \"spans\": [\n          {\n            \"id\": 111,\n            \"span_type\": \"metered\",\n            \"time\": 0,\n            \"tempo\": 80,\n            \"regions\": [\n              {\n                \"id\": 222,\n                \"descriptor\": \"documentary_underscore_heartfelt\",\n                \"beat\": 0,\n                \"end_type\": {\n                  \"beat\": 17,\n                  \"event\": \"ending\",\n                  \"type\": \"ringout\"\n                },\n                \"region\": \"music\"\n              }\n            ],\n            \"instrument_groups\": [\n              {\n                \"instrument_group\": \"full_aw_nylon_acoustic_lead_guitar\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_viola_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"warm_devonshire_upright_acoustic_piano\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_first_violin_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_second_violin_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"warm_kawai_grand_acoustic_piano_dreamy\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"sweet_kawai_grand_acoustic_piano\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              },\n              {\n                \"instrument_group\": \"nice_scoring_cello_ensemble\",\n                \"statuses\": [\n                  {\n                    \"beat\": 0,\n                    \"status\": \"active\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"span_type\": \"unmetered\",\n            \"time\": 15\n          }\n        ]\n      }\n    }\n  ]\n}' > data.json\n\nshutterstock ai-audio create-audio-renders data.json\n"}]}},"/v2/audio":{"get":{"description":"This endpoint lists information about one or more audio tracks, including the description and publication date.","operationId":"getTrackList","parameters":[{"description":"One or more audio IDs","example":["442583","434750"],"in":"query","name":"id","required":true,"schema":{"items":{"pattern":"^[1-9]\\d*$","type":"string","x-pattern-description":"A number that does not start with 0"},"maxItems":500,"minItems":1,"type":"array"}},{"description":"Amount of detail to render in the response","example":"full","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/AudioDataList/example"}}},"schema":{"$ref":"#/components/schemas/AudioDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List audio tracks","tags":["audio"]}},"/v2/audio/collections":{"get":{"description":"This endpoint lists your collections of audio tracks and their basic attributes.","operationId":"getTrackCollectionList","parameters":[{"description":"Page number","example":"1","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":"100","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}},{"description":"Which sharing information to include in the response, such as a URL to the collection","example":"share_code","in":"query","name":"embed","schema":{"items":{"enum":["share_code","share_url"],"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"List audio collections","tags":["audio"]},"post":{"description":"This endpoint creates one or more collections (soundboxes). To add tracks, use `POST /v2/audio/collections/{id}/items`.","operationId":"createTrackCollection","requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Create a soundbox","value":{"name":"Best rock music"}}},"schema":{"$ref":"#/components/schemas/CollectionCreateRequest"}}},"description":"Collection metadata","required":true},"responses":{"201":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionCreateResponse/example"}}},"schema":{"$ref":"#/components/schemas/CollectionCreateResponse"}}},"description":"Successfully created audio collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Create audio collections","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"name\": \"Best rock music\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/audio/collections\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst body = {\n  \"name\": \"Best rock music\",\n};\n\naudioApi.createTrackCollection(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst newCollectionBody = {\n  \"body\": {\n    \"name\": \"Best rock music\",\n  },\n};\n\nsstk.audio.createTrackCollection(newCollectionBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst newCollectionBody: AudioApiMethodsParams[\"createTrackCollection\"] = {\n  \"body\": {\n    \"name\": \"Best rock music\",\n  },\n};\n\nsstk.audio.createTrackCollection(newCollectionBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"name\" => \"Best rock music\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/collections\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"name\": \"Best rock music\"\n}' > data.json\n\nshutterstock images create-image-collection data.json\n"}]}},"/v2/audio/collections/{id}":{"delete":{"description":"This endpoint deletes a collection.","operationId":"deleteTrackCollection","parameters":[{"description":"Collection ID","example":"48433111","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Delete audio collections","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"curl -X DELETE \"https://api.shutterstock.com/v2/audio/collections/48433111\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst collectionId = \"48433107\";\n\naudioApi.deleteTrackCollection(collectionId)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433107\";\n\nconst deleteCollectionParams = {\n  \"id\": collectionId,\n};\n\nsstk.audio.deleteTrackCollection(deleteCollectionParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433107\";\n\nconst deleteCollectionParams: AudioApiMethodsParams[\"deleteTrackCollection\"] = {\n  \"id\": collectionId,\n};\n\nsstk.audio.deleteTrackCollection(deleteCollectionParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/collections/48433111\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_CUSTOMREQUEST => \"DELETE\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock audio delete-track-collection 48433111\n"}]},"get":{"description":"This endpoint gets more detailed information about a collection, including the number of items in it and when it was last updated. To get the tracks in collections, use `GET /v2/audio/collections/{id}/items`.","operationId":"getTrackCollection","parameters":[{"description":"Collection ID","example":"48433107","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which sharing information to include in the response, such as a URL to the collection","in":"query","name":"embed","schema":{"items":{"enum":["share_code","share_url"],"type":"string"},"type":"array"}},{"description":"Code to retrieve a shared collection","in":"query","name":"share_code","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Collection/example"}}},"schema":{"$ref":"#/components/schemas/Collection"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Get the details of audio collections","tags":["audio"]},"post":{"description":"This endpoint sets a new name for a collection.","operationId":"renameTrackCollection","parameters":[{"description":"Collection ID","example":"48433107","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Renaming a soundbox","value":{"name":"Best rock music"}}},"schema":{"$ref":"#/components/schemas/CollectionUpdateRequest"}}},"description":"Collection changes","required":true},"responses":{"204":{"description":"Successfully updated collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Rename audio collections","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"name\": \"Best rock music\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/audio/collections/48433107\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst collectionId = \"48433107\";\n\nconst body = {\n  \"name\": \"Best rock music\"\n};\n\naudioApi.renameTrackCollection(collectionId, body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433107\";\n\nconst renameAudioBody = {\n  \"id\": collectionId,\n  \"body\": {\n    \"name\": \"Best rock music\",\n  },\n};\n\nsstk.audio.renameTrackCollection(renameAudioBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433107\";\n\nconst renameAudioBody: AudioApiMethodsParams[\"renameTrackCollection\"] = {\n  \"id\": collectionId,\n  \"body\": {\n    \"name\": \"Best rock music\",\n  },\n};\n\nsstk.audio.renameTrackCollection(renameAudioBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"name\" => \"Best rock music\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/collections/48433107\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"name\": \"Best rock music\"\n}' > data.json\n\nshutterstock audio rename-collection 48433107 data.json\n"}]}},"/v2/audio/collections/{id}/items":{"delete":{"description":"This endpoint removes one or more tracks from a collection.","operationId":"deleteTrackCollectionItems","parameters":[{"description":"Collection ID","example":"48433119","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"One or more item IDs to remove from the collection","example":["76688182","40005859"],"in":"query","name":"item_id","schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"204":{"description":"Successfully removed collection items"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Remove audio tracks from collections","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"curl -X DELETE \"https://api.shutterstock.com/v2/audio/collections/48433119/items?item_id=36345523\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst collectionId = \"48433119\";\n\n// Array of tracks to remove\nconst tracksToRemove = {\n  \"item_id\": [\n    \"76688182\",\n    \"40005859\"\n  ]\n};\n\naudioApi.deleteTrackCollectionItems(collectionId, tracksToRemove)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433107\";\n\nconst deleteTrackParams = {\n  \"id\": collectionId,\n  \"item_id\": [\n    \"76688182\",\n    \"40005859\",\n  ],\n};\n\nsstk.audio.deleteTrackCollectionItems(deleteTrackParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433107\";\n\nconst deleteTrackParams: AudioApiMethodsParams[\"deleteTrackCollectionItems\"] = {\n  \"id\": collectionId,\n  \"item_id\": [\n    \"76688182\",\n    \"40005859\",\n  ],\n};\n\nsstk.audio.deleteTrackCollectionItems(deleteTrackParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/collections/48433119/items?item_id=495863218\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_CUSTOMREQUEST => \"DELETE\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock audio delete-track-collection-items 48433119 \\\n  --item-id 36345523\n"}]},"get":{"description":"This endpoint lists the IDs of tracks in a collection and the date that each was added.","operationId":"getTrackCollectionItems","parameters":[{"description":"Collection ID","example":"126351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}},{"description":"Code to retrieve the contents of a shared collection","in":"query","name":"share_code","schema":{"type":"string"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"oldest","enum":["newest","oldest"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"added_time":"2025-04-15T13:52:09.803Z","id":"76688182","media_type":"audio"},{"added_time":"2025-04-15T13:52:09.803Z","id":"40005859","media_type":"audio"}],"page":1,"per_page":2}}},"schema":{"$ref":"#/components/schemas/CollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Get the contents of audio collections","tags":["audio"]},"post":{"description":"This endpoint adds one or more tracks to a collection by track IDs.","operationId":"addTrackCollectionItems","parameters":[{"description":"Collection ID","example":"48433115","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Adds tracks to a soundbox","value":{"items":[{"id":"442583"},{"id":"7491192"}]}}},"schema":{"$ref":"#/components/schemas/CollectionItemRequest"}}},"description":"List of items to add to collection","required":true},"responses":{"204":{"description":"Successfully added collection items"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Add audio tracks to collections","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"items\": [\n    {\n      \"id\": \"442583\"\n    },\n    {\n      \"id\": \"7491192\"\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/audio/collections/48433115/items\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst collectionId = \"48433115\";\n\nconst body = {\n  \"items\": [\n    {\n      \"id\": \"442583\"\n    },\n    {\n      \"id\": \"7491192\"\n    }\n  ]\n};\n\naudioApi.addTrackCollectionItems(collectionId, body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433115\";\n\nconst addTrackBody = {\n  \"id\": collectionId,\n  \"body\": {\n    \"items\": [\n      {\n        \"id\": \"442583\",\n      },\n      {\n        \"id\": \"7491192\",\n      },\n    ],\n  },\n};\n\nsstk.audio.addTrackCollectionItems(addTrackBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"48433115\";\n\nconst addTrackBody: AudioApiMethodsParams[\"addTrackCollectionItems\"] = {\n  \"id\": collectionId,\n  \"body\": {\n    \"items\": [\n      {\n        \"id\": \"442583\",\n      },\n      {\n        \"id\": \"7491192\",\n      },\n    ],\n  },\n};\n\nsstk.audio.addTrackCollectionItems(addTrackBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"items\" => [\n    [\n      \"id\" => \"442583\"\n    ],\n    [\n      \"id\" => \"7491192\"\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/collections/48433115/items\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"items\": [\n    {\n      \"id\": \"442583\"\n    },\n    {\n      \"id\": \"7491192\"\n    }\n  ]\n}' > data.json\n\nshutterstock audio add-collection-items 48433115 data.json\n"}]}},"/v2/audio/genres":{"get":{"description":"This endpoint returns a list of all audio genres.","operationId":"listGenres","parameters":[{"description":"Which language the genres will be returned","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/GenreList/example"}}},"schema":{"$ref":"#/components/schemas/GenreList"}}},"description":"OK"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List audio genres","tags":["audio"]}},"/v2/audio/instruments":{"get":{"description":"This endpoint returns a list of all audio instruments.","operationId":"listInstruments","parameters":[{"description":"Which language the instruments will be returned in","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/InstrumentList/example"}}},"schema":{"$ref":"#/components/schemas/InstrumentList"}}},"description":"OK"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List audio instruments","tags":["audio"]}},"/v2/audio/licenses":{"get":{"description":"This endpoint lists existing licenses. You can filter the results according to the track ID to see if you have an existing license for a specific track.","operationId":"getTrackLicenseList","parameters":[{"description":"Show licenses for the specified track ID","example":"1","in":"query","name":"audio_id","schema":{"type":"string"}},{"description":"Restrict results by license. Prepending a `-` sign will exclude results by license","example":"48433107","in":"query","name":"license","schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":200,"minimum":0,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Filter licenses by username of licensee","example":"aUniqueUsername","in":"query","name":"username","schema":{"type":"string"}},{"description":"Show licenses created on or after the specified date","example":"2025-04-15T13:52:09.804Z","in":"query","name":"start_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"end_date","relationship":"<="}]},{"description":"Show licenses created before the specified date","example":"2025-04-15T13:52:09.804Z","in":"query","name":"end_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"start_date","relationship":">"}]},{"description":"Filter licenses by download availability","in":"query","name":"download_availability","schema":{"default":"all","enum":["all","downloadable","non_downloadable"],"type":"string"}},{"description":"Set to true to see license history for all members of your team.","in":"query","name":"team_history","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"audio":{"format":{"size":"clean_audio"},"id":"420298"},"download_time":"2025-04-15T13:52:09.804Z","id":"a10b7a7a5a02113a928f13e5ba196151d6","is_downloadable":true,"license":"premier_music_extended","metadata":{"purchase_order":"123"},"user":{"username":"jsmith"}}],"page":1,"per_page":20,"total_count":1}}},"schema":{"$ref":"#/components/schemas/DownloadHistoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"List audio licenses","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/audio/licenses\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  -G \\\n  --data-urlencode \"start_date=2016-10-03T01:25:13.521Z\" \\\n  --data-urlencode \"end_date=2016-10-04T13:25:13.521Z\" \\\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst queryParams = {\n  \"start_date\": \"2016-10-03T01:25:13.521Z\",\n  \"end_date\": \"2016-10-04T13:25:13.521Z\"\n};\n\naudioApi.getTrackLicenseList(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams = {\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.audio.getTrackLicenseList(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: AudioApiMethodsParams[\"getTrackLicenseList\"] = {\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.audio.getTrackLicenseList(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"start_date\" => \"2016-10-03T01:25:13.521Z\",\n  \"end_date\" => \"2016-10-04T13:25:13.521Z\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/licenses\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock audio get-track-license-list \\\n  --start-date \"2016-10-03T01:25:13.521Z\" \\\n  --end-date \"2016-10-04T13:25:13.521Z\"\n"}]},"post":{"description":"This endpoint gets licenses for one or more tracks. The download links in the response are valid for 8 hours.","operationId":"licenseTrack","parameters":[{"description":"License type","example":"audio_platform","in":"query","name":"license","schema":{"enum":["audio_platform","premier_music_basic","premier_music_extended","premier_music_pro","premier_music_comp","asset_all_music"],"type":"string"}},{"description":"The ID of the search that led to licensing this track","example":"p5S6QwRikdFJTHXwsoiqTg","in":"query","name":"search_id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Overwrite content of soundbox with new items","value":{"$ref":"#/components/schemas/LicenseAudioRequest/example"}}},"schema":{"$ref":"#/components/schemas/LicenseAudioRequest"}}},"description":"Tracks to license","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/LicenseAudioResultDataList/example"}}},"schema":{"$ref":"#/components/schemas/LicenseAudioResultDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.create"]}],"summary":"License audio tracks","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"audio\": [\n    {\n      \"audio_id\": \"591623\",\n      \"license\": \"audio_platform\",\n      \"metadata\": {\n        \"customer_id\": \"12345\"\n      }\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/audio/licenses\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst body = {\n  \"audio\": [\n    {\n      \"audio_id\": \"446348\",\n      \"license\": \"audio_platform\",\n      \"metadata\": {\n        \"customer_id\": \"12345\"\n      }\n    }\n  ]\n};\n\naudioApi.licenseTrack(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams = {\n  \"body\": {\n    \"audio\": [\n      {\n        \"audio_id\": \"446348\",\n        \"license\": \"audio_platform\",\n      },\n    ],\n  },\n};\n\nsstk.audio.licenseTrack(licenseParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { LicenseAudioLicenseEnum } from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams: AudioApiMethodsParams[\"licenseTrack\"] = {\n  \"body\": {\n    \"audio\": [\n      {\n        \"audio_id\": \"446348\",\n        \"license\": LicenseAudioLicenseEnum.AudioPlatform,\n      },\n    ],\n  },\n};\n\nsstk.audio.licenseTrack(licenseParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"audio\" => [\n    [\n      \"audio_id\" => \"591623\",\n      \"license\" => \"audio_platform\",\n      \"metadata\" => [\n      \"customer_id\" => \"12345\"\n      ]\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/licenses\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"audio\": [\n    {\n      \"audio_id\": \"591623\",\n      \"license\": \"audio_platform\",\n      \"metadata\": {\n        \"customer_id\": \"12345\"\n      }\n    }\n  ]\n}' > data.json\n\nshutterstock audio license-track data.json\n"}]}},"/v2/audio/licenses/{id}/downloads":{"post":{"description":"This endpoint redownloads tracks that you have already received a license for. The download links in the response are valid for 8 hours.","operationId":"downloadTracks","parameters":[{"description":"License ID","example":"e123","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"shorts_loops_stems":"http://download2.dev.shutterstock.com/gatekeeper/abc/original.zip","url":"http://download2.dev.shutterstock.com/gatekeeper/abc/original.wav"}}},"schema":{"$ref":"#/components/schemas/AudioUrl"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"Download audio tracks","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"curl -X POST \"https://api.shutterstock.com/v2/audio/licenses/e123/downloads\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst licenseId = \"e123\"; // license ID, not track ID\n\naudioApi.downloadTracks(licenseId)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseId = \"e123\"; // license ID, not track ID\n\nconst queryParams = {\n  \"id\": licenseId,\n};\n\nsstk.audio.downloadTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseId = \"e123\"; // license ID, not track ID\n\nconst queryParams: AudioApiMethodsParams[\"downloadTracks\"] = {\n  \"id\": licenseId,\n};\n\nsstk.audio.downloadTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/licenses/e123/downloads\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock audio download-tracks e123\n"}]}},"/v2/audio/moods":{"get":{"description":"This endpoint returns a list of all audio moods.","operationId":"listMoods","parameters":[{"description":"Which language the moods will be returned in","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/MoodList/example"}}},"schema":{"$ref":"#/components/schemas/MoodList"}}},"description":"OK"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List audio moods","tags":["audio"]}},"/v2/audio/search":{"get":{"description":"This endpoint searches for tracks. If you specify more than one search parameter, the API uses an AND condition. Array parameters can be specified multiple times; in this case, the API uses an AND or an OR condition with those values, depending on the parameter.","operationId":"searchTracks","parameters":[{"description":"Show tracks with one of the specified artist names or IDs","in":"query","name":"artists","schema":{"items":{"type":"string"},"type":"array","uniqueItems":false}},{"deprecated":true,"description":"(Deprecated; use bpm_from and bpm_to instead) Show tracks with the specified beats per minute","in":"query","name":"bpm","schema":{"type":"integer","uniqueItems":true}},{"description":"Show tracks with the specified beats per minute or faster","example":80,"in":"query","name":"bpm_from","schema":{"type":"integer","uniqueItems":true}},{"description":"Show tracks with the specified beats per minute or slower","example":120,"in":"query","name":"bpm_to","schema":{"type":"integer","uniqueItems":true}},{"description":"Show tracks with the specified duration in seconds","example":180,"in":"query","name":"duration","schema":{"type":"integer","uniqueItems":true}},{"description":"Show tracks with the specified duration or longer in seconds","example":30,"in":"query","name":"duration_from","schema":{"type":"integer","uniqueItems":true}},{"description":"Show tracks with the specified duration or shorter in seconds","example":180,"in":"query","name":"duration_to","schema":{"type":"integer","uniqueItems":true}},{"description":"Show tracks with each of the specified genres; to get the list of genres, use `GET /v2/audio/genres`","example":["Classical","Holiday"],"explode":true,"in":"query","name":"genre","schema":{"items":{"type":"string"},"type":"array","uniqueItems":false}},{"description":"Show instrumental music only","example":true,"in":"query","name":"is_instrumental","schema":{"type":"boolean","uniqueItems":true}},{"description":"Show tracks with each of the specified instruments; to get the list of instruments, use `GET /v2/audio/instruments`","example":["Trumpet","Percussion"],"explode":true,"in":"query","name":"instruments","schema":{"items":{"type":"string"},"type":"array","uniqueItems":false}},{"description":"Show tracks with each of the specified moods; to get the list of moods, use `GET /v2/audio/moods`","example":["Confident","Playful"],"explode":true,"in":"query","name":"moods","schema":{"items":{"type":"string"},"type":"array","uniqueItems":false}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer","uniqueItems":true}},{"description":"Number of results per page","example":1,"in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":0,"type":"integer","uniqueItems":true}},{"description":"One or more search terms separated by spaces","example":"drum","in":"query","name":"query","schema":{"type":"string","uniqueItems":true}},{"description":"Sort by","example":"score","in":"query","name":"sort","schema":{"enum":["score","ranking_all","artist","title","bpm","freshness","duration"],"type":"string","uniqueItems":true}},{"description":"Sort order","in":"query","name":"sort_order","schema":{"default":"desc","enum":["asc","desc"],"type":"string","uniqueItems":true}},{"description":"Show tracks with the specified vocal description (male, female)","example":"female","in":"query","name":"vocal_description","schema":{"type":"string","uniqueItems":true}},{"description":"Amount of detail to render in the response","example":"full","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string","uniqueItems":true}},{"description":"Fields to display in the response; see the documentation for the fields parameter in the overview section","in":"query","name":"fields","schema":{"type":"string","uniqueItems":true}},{"description":"Which library to search","in":"query","name":"library","schema":{"default":"premier","enum":["shutterstock","premier"],"type":"string","uniqueItems":true}},{"description":"Which language to search in","in":"query","name":"language","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/AudioSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/AudioSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Search for tracks","tags":["audio"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/audio/search\" \\\n  --header \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"query=bluegrass\" \\\n  --data-urlencode \"duration_from=60\" \\\n  --data-urlencode \"moods=uplifting\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst audioApi = new sstk.AudioApi();\n\nconst queryParams = {\n  \"query\": \"bluegrass\",\n  \"duration_from\": 60,\n  \"moods\": [\"uplifting\"]\n};\n\naudioApi.searchTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"air\",\n  \"duration_from\": 60,\n};\n\nsstk.audio.searchTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { AudioApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: AudioApiMethodsParams[\"searchTracks\"] = {\n  \"query\": \"bluegrass\",\n  \"duration_from\": 60,\n  \"moods\": [\"uplifting\"],\n};\n\nsstk.audio.searchTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"bluegrass\",\n  \"duration_from\" => 60,\n  \"moods\" => \"uplifting\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/audio/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock audio search-tracks \\\n  --query bluegrass \\\n  --duration-from 60 \\\n  --moods uplifting\n"}]}},"/v2/audio/{id}":{"get":{"description":"This endpoint shows information about a track, including its genres, instruments, and other attributes.","operationId":"getTrack","parameters":[{"description":"Audio track ID","example":"442583","in":"path","name":"id","required":true,"schema":{"type":"integer"}},{"description":"Amount of detail to render in the response","example":"full","in":"query","name":"view","schema":{"default":"full","enum":["minimal","full"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Audio/example"}}},"schema":{"$ref":"#/components/schemas/Audio"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get details about audio tracks","tags":["audio"]}},"/v2/bulk_search/images":{"post":{"description":"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":"bulkSearchImages","parameters":[{"description":"Show images added on the specified date","example":"2025-04-15T13:52:09.808Z","in":"query","name":"added_date","schema":{"format":"date","type":"string"}},{"description":"Show images added on or after the specified date","example":"2025-04-15T13:52:09.808Z","in":"query","name":"added_date_start","schema":{"format":"date","type":"string"}},{"description":"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","example":1.7778,"in":"query","name":"aspect_ratio_min","schema":{"exclusiveMinimum":true,"minimum":0,"type":"number"}},{"description":"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","example":1.7778,"in":"query","name":"aspect_ratio_max","schema":{"exclusiveMinimum":true,"minimum":0,"type":"number"}},{"description":"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","example":1.7778,"in":"query","name":"aspect_ratio","schema":{"exclusiveMinimum":true,"minimum":0,"type":"number"}},{"description":"Show images added before the specified date","example":"2025-04-15T13:52:09.808Z","in":"query","name":"added_date_end","schema":{"format":"date","type":"string"}},{"description":"Show images with the specified Shutterstock-defined category; specify a category name or ID","in":"query","name":"category","schema":{"type":"string"}},{"description":"Specify either a hexadecimal color in the format '4F21EA' or 'grayscale'; the API returns images that use similar colors","example":"4F21EA","in":"query","name":"color","schema":{"type":"string"}},{"description":"Show images with the specified contributor names or IDs, allows multiple","example":["123456"],"in":"query","name":"contributor","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show images from contributors in one or more specified countries, or start with NOT to exclude a country from the search","example":"US","in":"query","name":"contributor_country","schema":{"oneOf":[{"items":{"format":"country-code-2","type":"string"},"type":"array"},{"items":{"format":"negated-country-code-2","type":"string"},"type":"array"}]}},{"description":"Fields to display in the response; see the documentation for the fields parameter in the overview section","in":"query","name":"fields","schema":{"type":"string","uniqueItems":true}},{"deprecated":true,"description":"(Deprecated; use height_from and height_to instead) Show images with the specified height","in":"query","name":"height","schema":{"type":"integer"}},{"description":"Show images with the specified height or larger, in pixels","example":1080,"in":"query","name":"height_from","schema":{"type":"integer"}},{"description":"Show images with the specified height or smaller, in pixels","example":1080,"in":"query","name":"height_to","schema":{"type":"integer"}},{"description":"Show images of the specified type","example":"photo","in":"query","name":"image_type","schema":{"items":{"enum":["photo","illustration","vector"],"type":"string"},"type":"array"}},{"description":"Hide results with potentially unsafe keywords","in":"query","name":"keyword_safe_search","schema":{"default":true,"type":"boolean"}},{"description":"Set query and result language (uses Accept-Language header if not set)","example":"fr","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Show only images with the specified license","in":"query","name":"license","schema":{"items":{"default":"commercial","enum":["commercial","editorial","enhanced"],"type":"string"},"type":"array"}},{"description":"Show image results with the specified model IDs","example":["12345","67890"],"in":"query","name":"model","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show image results with horizontal or vertical orientation","example":"vertical","in":"query","name":"orientation","schema":{"enum":["horizontal","vertical"],"type":"string"}},{"description":"Page number","example":1,"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":10,"in":"query","name":"per_page","schema":{"default":20,"maximum":20,"minimum":0,"type":"integer"}},{"description":"Show images of people with a signed model release","example":true,"in":"query","name":"people_model_released","schema":{"type":"boolean"}},{"description":"Show images that feature people of the specified age category","example":"20s","in":"query","name":"people_age","schema":{"enum":["infants","children","teenagers","20s","30s","40s","50s","60s","older"],"type":"string"}},{"description":"Show images with people of the specified ethnicities, or start with NOT to show images without those ethnicities","example":"hispanic","in":"query","name":"people_ethnicity","schema":{"items":{"enum":["african","african_american","black","brazilian","chinese","caucasian","east_asian","hispanic","japanese","middle_eastern","native_american","pacific_islander","south_asian","southeast_asian","other","NOT african","NOT african_american","NOT black","NOT brazilian","NOT chinese","NOT caucasian","NOT east_asian","NOT hispanic","NOT japanese","NOT middle_eastern","NOT native_american","NOT pacific_islander","NOT south_asian","NOT southeast_asian","NOT other"],"type":"string"},"type":"array"}},{"description":"Show images with people of the specified gender","example":"both","in":"query","name":"people_gender","schema":{"enum":["male","female","both"],"type":"string"}},{"description":"Show images with the specified number of people","example":2,"in":"query","name":"people_number","schema":{"maximum":4,"minimum":0,"type":"integer"}},{"description":"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","example":"US","in":"query","name":"region","schema":{"anyOf":[{"format":"country-code-2","type":"string"},{"format":"ipv4","type":"string"}]}},{"description":"Enable or disable safe search","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}},{"description":"Sort by","in":"query","name":"sort","schema":{"default":"popular","enum":["newest","popular","relevance","random"],"type":"string"}},{"description":"Spellcheck the search query and return results on suggested spellings","in":"query","name":"spellcheck_query","schema":{"default":true,"type":"boolean"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"deprecated":true,"description":"(Deprecated; use width_from and width_to instead) Show images with the specified width","in":"query","name":"width","schema":{"type":"integer"}},{"description":"Show images with the specified width or larger, in pixels","example":1920,"in":"query","name":"width_from","schema":{"type":"integer"}},{"description":"Show images with the specified width or smaller, in pixels","example":1920,"in":"query","name":"width_to","schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/BulkImageSearchRequest/example"}}},"schema":{"$ref":"#/components/schemas/BulkImageSearchRequest"}}},"description":"List of queries to request results for and filters to apply per query; these values override the defaults in the query parameters","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/BulkImageSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/BulkImageSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Run multiple image searches","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='[\n  {\n    \"query\": \"cat\",\n    \"license\": [\"editorial\"],\n    \"sort\": \"popular\"\n  },\n  {\n    \"query\": \"dog\",\n    \"orientation\": \"horizontal\"\n  }\n]'\n\ncurl -X POST \"https://api.shutterstock.com/v2/bulk_search/images\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H 'Content-Type: application/json' \\\n  -d \"$DATA\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst bulkSearchApi = new sstk.BulkSearchApi();\n\nconst body = [\n  {\n    \"query\": \"cat\",\n    \"license\": [\"editorial\"],\n    \"sort\": \"popular\"\n  },\n  {\n    \"query\": \"dog\",\n    \"orientation\": \"horizontal\"\n  }\n];\n\nbulkSearchApi.bulkSearchImages(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst searchBody = {\n  \"body\": [\n    {\n      \"query\": \"cat\",\n      \"license\": [\"editorial\"],\n      \"sort\": \"popular\"\n    },\n    {\n      \"query\": \"dog\",\n      \"orientation\": \"horizontal\"\n    }\n  ]\n};\n\nsstk.bulkSearch.bulkSearchImages(searchBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { BulkSearchApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst searchBody: BulkSearchApiMethodsParams[\"bulkSearchImages\"] = {\n  \"body\": [\n    {\n      \"query\": \"cat\",\n      \"license\": [\"editorial\"],\n      \"sort\": \"popular\"\n    },\n    {\n      \"query\": \"dog\",\n      \"orientation\": \"horizontal\"\n    }\n  ]\n};\n\nsstk.bulkSearch.bulkSearchImages(searchBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  [\n    \"query\" => \"cat\",\n    \"license\" => [\"editorial\"],\n    \"sort\" => \"popular\"\n  ],\n  [\n    \"query\" => \"dog\",\n    \"orientation\" => \"horizontal\"\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/bulk_search/images\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '[\n  {\n    \"query\": \"cat\",\n    \"license\": [\"editorial\"],\n    \"sort\": \"popular\"\n  },\n  {\n    \"query\": \"dog\",\n    \"orientation\": \"horizontal\"\n  }\n]' > data.json\n\nshutterstock bulk-search bulk-search-images data.json\n"}]}},"/v2/catalog/collections":{"get":{"description":"This endpoint returns a list of catalog collections.","operationId":"getCollections","parameters":[{"description":"Page number","example":1,"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":20,"in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":2,"type":"integer"}},{"description":"Sort by","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Set to true to omit collections that you own and return only collections  that are shared with you","in":"query","name":"shared","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CatalogCollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/CatalogCollectionDataList"}}},"description":"OK"},"400":{"description":"Invalid status value"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"List catalog collections","tags":["catalog"]},"post":{"description":"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":"createCollection","requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Create Collection Request","value":{"$ref":"#/components/schemas/CreateCatalogCollection/example"}}},"schema":{"$ref":"#/components/schemas/CreateCatalogCollection"}}},"description":"Create a catalog collection and, optionally, add items.","required":true},"responses":{"201":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CatalogCollection/example"}}},"schema":{"$ref":"#/components/schemas/CatalogCollection"}}},"description":"OK"}},"security":[{"customer_accessCode":["collections.view","collections.edit"]}],"summary":"Create catalog collections","tags":["catalog"]}},"/v2/catalog/collections/{collection_id}":{"delete":{"description":"This endpoint deletes a catalog collection. It does not remove the assets from the user's account's catalog.","operationId":"deleteCollection","parameters":[{"description":"The ID of the collection to delete","example":"126351028","in":"path","name":"collection_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"OK"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Delete catalog collections","tags":["catalog"]},"patch":{"description":"This endpoint updates the metadata of a catalog collection.","operationId":"updateCollection","parameters":[{"description":"ID of collection that needs to be modified","example":"126351028","in":"path","name":"collection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Collection Metadata","value":{"$ref":"#/components/schemas/UpdateCatalogCollection/example"}}},"schema":{"$ref":"#/components/schemas/UpdateCatalogCollection"}}},"description":"Collections Metadata to update","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CatalogCollection/example"}}},"schema":{"$ref":"#/components/schemas/CatalogCollection"}}},"description":"OK"}},"security":[{"customer_accessCode":["collections.view","collections.edit"]}],"summary":"Update collection metadata","tags":["catalog"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { UpdateCatalogCollectionVisibilityEnum } from \"shutterstock-api\";\nimport type { CatalogApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst body: CatalogApiMethodsParams[\"updateCollection\"] = {\n  \"collection_id\": \"126351028\",\n  \"body\": {\n    \"name\": \"My Collection\",\n    \"visibility\": UpdateCatalogCollectionVisibilityEnum.Private,\n    \"cover_asset\": {\n      \"id\": \"123\"\n    }\n  }\n};\n\nsstk.catalog.updateCollection(body)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}},"/v2/catalog/collections/{collection_id}/items":{"delete":{"description":"This endpoint removes assets from a catalog collection. It does not remove the assets from the user's account's catalog.","operationId":"deleteFromCollection","parameters":[{"description":"The ID of the collection to remove assets from","example":"126351028","in":"path","name":"collection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Remove collection items","value":{"$ref":"#/components/schemas/RemoveCatalogCollectionItems/example"}}},"schema":{"$ref":"#/components/schemas/RemoveCatalogCollectionItems"}}},"description":"Items to remove from the collection","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CatalogCollection/example"}}},"schema":{"$ref":"#/components/schemas/CatalogCollection"}}},"description":"OK"}},"security":[{"customer_accessCode":["collections.view","collections.edit"]}],"summary":"Remove items from catalog collection","tags":["catalog"]},"post":{"description":"This endpoint adds assets to a catalog collection. It also automatically adds the assets to the user's account's catalog.","operationId":"addToCollection","parameters":[{"description":"The ID of the collection to add assets to","example":"126351028","in":"path","name":"collection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"description":"Add collection items","value":{"$ref":"#/components/schemas/CreateCatalogCollectionItems/example"}}},"schema":{"$ref":"#/components/schemas/CreateCatalogCollectionItems"}}},"description":"Collection item attributes to add to collection","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CatalogCollection/example"}}},"schema":{"$ref":"#/components/schemas/CatalogCollection"}}},"description":"OK"}},"security":[{"customer_accessCode":["collections.view","collections.edit"]}],"summary":"Add items to catalog collections","tags":["catalog"]}},"/v2/catalog/search":{"get":{"description":"This endpoint searches for assets in the account's catalog. If you specify more than one search parameter, the API uses an AND condition. Array parameters can be specified multiple times; in this case, the API uses an AND or an OR condition with those values, depending on the parameter. You can also filter search terms out in the `query` parameter by prefixing the term with NOT.","operationId":"searchCatalog","parameters":[{"description":"Sort by","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Page number","example":1,"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":50,"in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":0,"type":"integer"}},{"description":"One or more search terms separated by spaces","example":"dogs on the beach","in":"query","name":"query","schema":{"type":"string"}},{"description":"Filter by collection id","in":"query","name":"collection_id","schema":{"example":["123456","456789","13579"],"items":{"type":"string"},"maxItems":50,"type":"array"}},{"description":"Filter by asset type","in":"query","name":"asset_type","schema":{"example":["image","editorial-image"],"items":{"enum":["image","video","audio","elements","editorial-image","editorial-video"],"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CatalogCollectionItemDataList/example"}}},"schema":{"$ref":"#/components/schemas/CatalogCollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Search catalogs for assets","tags":["catalog"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/catalog/search\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"page=1\" \\\n  --data-urlencode \"per_page=50\" \\\n  --data-urlencode \"collection_id=126351028\" \\\n  --data-urlencode \"collection_id=126371055\" \\\n  --data-urlencode \"query=dogs on the beach\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst catalogApi = new sstk.CatalogApi();\n\nconst queryParams = {\n  \"page\": 1,\n  \"per_page\": 50,\n  \"collection_id\": [\"126351028\", \"126371055\"],\n  \"query\": \"dogs on the beach\",\n};\n\ncatalogApi.searchCatalog(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"page\": 1,\n  \"per_page\": 50,\n  \"collection_id\": [\"126351028\", \"126371055\"],\n  \"query\": \"dogs on the beach\",\n};\n\nsstk.catalog.searchCatalog(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { CatalogApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: CatalogApiMethodsParams[\"searchCatalog\"] = {\n  \"page\": 1,\n  \"per_page\": 50,\n  \"collection_id\": [\"126351028\", \"126371055\"],\n  \"query\": \"dogs on the beach\",\n};\n\nsstk.catalog.searchCatalog(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"page\" => 1,\n  \"per_page\" => 50,\n  \"collection_id\" => [\"126351028\", \"126371055\"],\n  \"query\" => \"dogs on the beach\"\n];\n\n$encodedQueryFields = preg_replace(\n  \"/\\%5B\\d+\\%5D/\",\n  \"\",\n  http_build_query($queryFields),\n);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/catalog/search?$encodedQueryFields\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock catalog search-catalog \\\n  --page 1 \\\n  --per_page 50 \\\n  --collection_id 126351028 \\\n  --collection_id 126371055 \\\n  --query \"dogs on the beach\"\n"}]}},"/v2/contributors":{"get":{"description":"This endpoint lists information about one or more contributors, including contributor type, equipment they use and other attributes.","operationId":"getContributorList","parameters":[{"description":"One or more contributor IDs","example":[800506,1653538],"in":"query","name":"id","required":true,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ContributorProfileDataList/example"}}},"schema":{"$ref":"#/components/schemas/ContributorProfileDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":[]},{"basic":[]}],"summary":"Get details about multiple contributors","tags":["contributors"]}},"/v2/contributors/{contributor_id}":{"get":{"description":"This endpoint shows information about a single contributor, including contributor type, equipment they use, and other attributes.","operationId":"getContributor","parameters":[{"description":"Contributor ID","example":1653538,"in":"path","name":"contributor_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ContributorProfile/example"}}},"schema":{"$ref":"#/components/schemas/ContributorProfile"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":[]},{"basic":[]}],"summary":"Get details about a single contributor","tags":["contributors"]}},"/v2/contributors/{contributor_id}/collections":{"get":{"description":"This endpoint lists collections based on contributor ID.","operationId":"getContributorCollectionsList","parameters":[{"description":"Contributor ID","example":800506,"in":"path","name":"contributor_id","required":true,"schema":{"type":"string"}},{"description":"Sort order","in":"query","name":"sort","schema":{"enum":["newest","last_updated","item_count"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Contributor not found"}},"security":[{"customer_accessCode":[]},{"basic":[]}],"summary":"List contributors' collections","tags":["contributors"]}},"/v2/contributors/{contributor_id}/collections/{id}":{"get":{"description":"This endpoint gets more detailed information about a contributor's collection, including its cover image, timestamps for its creation, and most recent update. To get the items in collections, use GET /v2/contributors/{contributor_id}/collections/{id}/items.","operationId":"getContributorCollections","parameters":[{"description":"Contributor ID","example":800506,"in":"path","name":"contributor_id","required":true,"schema":{"type":"string"}},{"description":"Collection ID that belongs to the contributor","example":1991678,"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Collection/example"}}},"schema":{"$ref":"#/components/schemas/Collection"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Set not found"}},"security":[{"customer_accessCode":[]},{"basic":[]}],"summary":"Get details about contributors' collections","tags":["contributors"]}},"/v2/contributors/{contributor_id}/collections/{id}/items":{"get":{"description":"This endpoint lists the IDs of items in a contributor's collection and the date that each was added.","operationId":"getContributorCollectionItems","parameters":[{"description":"Contributor ID","example":800506,"in":"path","name":"contributor_id","required":true,"schema":{"type":"string"}},{"description":"Collection ID that belongs to the contributor","example":1991678,"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"enum":["newest","oldest"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"added_time":"2025-04-15T13:52:09.809Z","id":"168592952","media_type":"image"},{"added_time":"2025-04-15T13:52:09.809Z","id":"88269310","media_type":"image"},{"added_time":"2025-04-15T13:52:09.809Z","id":"94373977","media_type":"image"}]}}},"schema":{"$ref":"#/components/schemas/CollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Set not found"}},"security":[{"customer_accessCode":[]},{"basic":[]}],"summary":"Get the items in contributors' collections","tags":["contributors"]}},"/v2/cv/images":{"post":{"description":"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":"uploadImage","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/ImageCreateRequest/example"}}},"schema":{"$ref":"#/components/schemas/ImageCreateRequest"}}},"description":"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","required":true},"responses":{"201":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ComputerVisionImageCreateResponse/example"}}},"schema":{"$ref":"#/components/schemas/ComputerVisionImageCreateResponse"}}},"description":"Created"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"413":{"description":"Payload Too Large"},"415":{"description":"Unsupported Media Type"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Upload images","tags":["computer_vision"],"x-code-samples":[{"lang":"shell","source":"curl -X POST \"https://api.shutterstock.com/v2/cv/images\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg | tr -d '\\n'`\\\"}\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst computerVisionApi = new sstk.ComputerVisionApi();\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst body = new sstk.ImageCreateRequest(base64File);\n\ncomputerVisionApi.uploadImage(body)\n  .then((data) => {\n    console.log(data.upload_id);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ComputerVisionApiMethodsParams } from \"shutterstock-api\";\n\nimport * as fs from \"fs\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody: ComputerVisionApiMethodsParams[\"uploadImage\"] = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$imageData = file_get_contents(\"myImage.jpg\");\n$encodedImageData = base64_encode($imageData);\n\n$uploadBody = [\n  \"base64_image\" => $encodedImageData\n];\n$uploadEncodedBody = json_encode($uploadBody);\n\n$uploadOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/images\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $uploadEncodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $uploadOptions);\n$uploadResponse = curl_exec($handle);\ncurl_close($handle);\n\n$uploadDecodedResponse = json_decode($uploadResponse);\nprint_r($uploadDecodedResponse->upload_id);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg  | tr -d '\\n'`\\\"}\" > data.json\n\nshutterstock cv upload-image data.json\n"}]}},"/v2/cv/keywords":{"get":{"description":"This endpoint returns a list of suggested keywords for a media item that you specify or upload.","operationId":"getKeywords","parameters":[{"description":"The asset ID or upload ID to suggest keywords for","example":"U6ba16262e3bc2db470b8e3cfa8aaab25","in":"query","name":"asset_id","required":true,"schema":{"oneOf":[{"format":"asset-upload-id","type":"string"},{"format":"asset-id","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/KeywordDataList/example"}}},"schema":{"$ref":"#/components/schemas/KeywordDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"415":{"description":"Unsupported Media Type"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List suggested keywords","tags":["computer_vision"],"x-code-samples":[{"lang":"shell","source":"RESPONSE=$(curl -X POST \"https://api.shutterstock.com/v2/cv/images\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg | tr -d '\\n'`\\\"}\")\n\necho \"The next step requires the jq program.\"\n\nUPLOAD_ID=$(jq -r .upload_id <<< $RESPONSE)\n\ncurl -X GET \"https://api.shutterstock.com/v2/cv/keywords\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"asset_id=$UPLOAD_ID\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst computerVisionApi = new sstk.ComputerVisionApi();\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst body = new sstk.ImageCreateRequest(base64File);\n\ncomputerVisionApi.uploadImage(body)\n  .then((data) => {\n    console.log(data.upload_id);\n    return computerVisionApi.getKeywords(data.upload_id);\n  })\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n    const queryParams = {\n      \"asset_id\": data.upload_id,\n    };\n    return sstk.computerVision.getKeywords(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ComputerVisionApiMethodsParams } from \"shutterstock-api\";\n\nimport * as fs from \"fs\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody: ComputerVisionApiMethodsParams[\"uploadImage\"] = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n    const queryParams: ComputerVisionApiMethodsParams[\"getKeywords\"] = {\n      \"asset_id\": data.upload_id,\n    };\n    return sstk.computerVision.getKeywords(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$imageData = file_get_contents(\"myImage.jpg\");\n$encodedImageData = base64_encode($imageData);\n\n$uploadBody = [\n  \"base64_image\" => $encodedImageData\n];\n$uploadEncodedBody = json_encode($uploadBody);\n\n$uploadOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/images\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $uploadEncodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $uploadOptions);\n$uploadResponse = curl_exec($handle);\ncurl_close($handle);\n\n$uploadDecodedResponse = json_decode($uploadResponse);\nprint_r($uploadDecodedResponse->upload_id);\n\n$keywordsQuery = [\n  \"asset_id\" => $uploadDecodedResponse->upload_id,\n];\n\n$keywordsOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/keywords?\" . http_build_query($keywordsQuery),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $keywordsOptions);\n$keywordsResponse = curl_exec($handle);\ncurl_close($handle);\n\nprint_r($keywordsResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg  | tr -d '\\n'`\\\"}\" > data.json\n\nshutterstock cv upload-image data.json > response.json\n\necho \"The next step requires the jq program.\"\n\nUPLOAD_ID=$(jq -r .upload_id response.json)\n\nshutterstock cv get-keywords \\\n  --asset-id $UPLOAD_ID\n"}]}},"/v2/cv/similar/images":{"get":{"description":"This endpoint returns images that are visually similar to an image that you specify or upload.","operationId":"getSimilarImages","parameters":[{"description":"The asset ID or upload ID to find similar images for","example":"U6ba16262e3bc2db470b8e3cfa8aaab25","in":"query","name":"asset_id","required":true,"schema":{"type":"string"}},{"description":"Show only images with the specified license","in":"query","name":"license","schema":{"default":["commercial"],"items":{"enum":["commercial","editorial"],"type":"string"},"type":"array"}},{"description":"Enable or disable safe search","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}},{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":1,"type":"integer"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ImageSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/ImageSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List similar images","tags":["computer_vision"],"x-code-samples":[{"lang":"shell","source":"RESPONSE=$(curl -X POST \"https://api.shutterstock.com/v2/cv/images\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg | tr -d '\\n'`\\\"}\")\n\necho \"The next step requires the jq program.\"\n\nUPLOAD_ID=$(jq -r .upload_id <<< $RESPONSE)\n\ncurl -X GET \"https://api.shutterstock.com/v2/cv/similar/images\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"asset_id=$UPLOAD_ID\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst computerVisionApi = new sstk.ComputerVisionApi();\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst body = new sstk.ImageCreateRequest(base64File);\n\ncomputerVisionApi.uploadImage(body)\n  .then((data) => {\n    console.log(data.upload_id);\n    return computerVisionApi.getSimilarImages(data.upload_id);\n  })\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n\n    const queryParams = {\n      \"asset_id\": data.upload_id,\n      \"page\": 1,\n      \"per_page\": 20,\n      \"view\": \"minimal\",\n    };\n\n    return sstk.computerVision.getSimilarImages(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ComputerVisionApiMethodsParams } from \"shutterstock-api\";\n\nimport * as fs from \"fs\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody: ComputerVisionApiMethodsParams[\"uploadImage\"] = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n\n    const queryParams: ComputerVisionApiMethodsParams[\"getSimilarImages\"] = {\n      \"asset_id\": data.upload_id,\n      \"page\": 1,\n      \"per_page\": 20,\n      \"view\": \"minimal\",\n    };\n\n    return sstk.computerVision.getSimilarImages(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$imageData = file_get_contents(\"myImage.jpg\");\n$encodedImageData = base64_encode($imageData);\n\n$uploadBody = [\n  \"base64_image\" => $encodedImageData\n];\n$uploadEncodedBody = json_encode($uploadBody);\n\n$uploadOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/images\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $uploadEncodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $uploadOptions);\n$uploadResponse = curl_exec($handle);\ncurl_close($handle);\n\n$uploadDecodedResponse = json_decode($uploadResponse);\nprint_r($uploadDecodedResponse->upload_id);\n\n$similarQuery = [\n  \"asset_type\" => \"images\",\n  \"asset_id\" => $uploadDecodedResponse->upload_id,\n];\n\n$similarOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/similar/images?\" . http_build_query($similarQuery),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $similarOptions);\n$similarResponse = curl_exec($handle);\ncurl_close($handle);\n\nprint_r($similarResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg  | tr -d '\\n'`\\\"}\" > data.json\n\nshutterstock cv upload-image data.json > response.json\n\necho \"The next step requires the jq program.\"\n\nUPLOAD_ID=$(jq -r .upload_id response.json)\n\nshutterstock cv get-similar-images \\\n  --asset-id $UPLOAD_ID\n"}]}},"/v2/cv/similar/videos":{"get":{"description":"This endpoint returns videos that are visually similar to an image that you specify or upload.","operationId":"getSimilarVideos","parameters":[{"description":"The asset ID or upload ID to find similar videos for","example":"U6ba16262e3bc2db470b8e3cfa8aaab25","in":"query","name":"asset_id","required":true,"schema":{"type":"string"}},{"description":"Show only videos with the specified license","in":"query","name":"license","schema":{"default":["commercial"],"items":{"enum":["commercial","editorial"],"type":"string"},"type":"array"}},{"description":"Enable or disable safe search","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}},{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":1,"type":"integer"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/VideoSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/VideoSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List similar videos","tags":["computer_vision"],"x-code-samples":[{"lang":"shell","source":"RESPONSE=$(curl -X POST \"https://api.shutterstock.com/v2/cv/images\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg | tr -d '\\n'`\\\"}\")\n\necho \"The next step requires the jq program.\"\n\nUPLOAD_ID=$(jq -r .upload_id <<< $RESPONSE)\n\ncurl -X GET \"https://api.shutterstock.com/v2/cv/similar/videos\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"asset_id=$UPLOAD_ID\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst computerVisionApi = new sstk.ComputerVisionApi();\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst body = new sstk.ImageCreateRequest(base64File);\n\ncomputerVisionApi.uploadImage(body)\n  .then((data) => {\n    console.log(data.upload_id);\n    return computerVisionApi.getSimilarVideos(data.upload_id);\n  })\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n\n    const queryParams = {\n      \"asset_id\": data.upload_id,\n      \"page\": 1,\n      \"per_page\": 20,\n      \"view\": \"minimal\",\n    };\n\n    return sstk.computerVision.getSimilarVideos(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ComputerVisionApiMethodsParams } from \"shutterstock-api\";\n\nimport * as fs from \"fs\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody: ComputerVisionApiMethodsParams[\"uploadImage\"] = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n\n    const queryParams: ComputerVisionApiMethodsParams[\"getSimilarVideos\"] = {\n      \"asset_id\": data.upload_id,\n      \"page\": 1,\n      \"per_page\": 20,\n      \"view\": \"minimal\",\n    };\n\n    return sstk.computerVision.getSimilarVideos(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$imageData = file_get_contents(\"myImage.jpg\");\n$encodedImageData = base64_encode($imageData);\n\n$uploadBody = [\n  \"base64_image\" => $encodedImageData\n];\n$uploadEncodedBody = json_encode($uploadBody);\n\n$uploadOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/images\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $uploadEncodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $uploadOptions);\n$uploadResponse = curl_exec($handle);\ncurl_close($handle);\n\n$uploadDecodedResponse = json_decode($uploadResponse);\nprint_r($uploadDecodedResponse->upload_id);\n\n$similarQuery = [\n  \"asset_type\" => \"images\",\n  \"asset_id\" => $uploadDecodedResponse->upload_id,\n];\n\n$similarOptions = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/cv/similar/videos?\" . http_build_query($similarQuery),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $similarOptions);\n$similarResponse = curl_exec($handle);\ncurl_close($handle);\n\nprint_r($similarResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg  | tr -d '\\n'`\\\"}\" > data.json\n\nshutterstock cv upload-image data.json > response.json\n\necho \"The next step requires the jq program.\"\n\nUPLOAD_ID=$(jq -r .upload_id response.json)\n\nshutterstock cv get-similar-videos \\\n  --asset-id $UPLOAD_ID\n"}]}},"/v2/editorial/categories":{"get":{"deprecated":true,"description":"Deprecated; use `GET /v2/editorial/images/categories` instead. This endpoint lists the categories that editorial images can belong to, which are separate from the categories that other types of assets can belong to.","operationId":"getEditorialCategories","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialCategoryResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialCategoryResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) List editorial categories","tags":["editorial_images"]}},"/v2/editorial/images/categories":{"get":{"description":"This endpoint lists the categories that editorial images can belong to, which are separate from the categories that other types of assets can belong to.","operationId":"listEditorialImageCategories","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialImageCategoryResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialImageCategoryResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List editorial categories","tags":["editorial_images"]}},"/v2/editorial/images/licenses":{"get":{"description":"This endpoint lists existing editorial image licenses.","operationId":"getEditorialImageLicenseList","parameters":[{"description":"Show licenses for the specified editorial image ID","example":"12345678","in":"query","name":"image_id","schema":{"type":"string"}},{"description":"Show editorial images that are available with the specified license name","example":"premier_editorial_all_digital","in":"query","name":"license","schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":200,"minimum":0,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Filter licenses by username of licensee","example":"aUniqueUsername","in":"query","name":"username","schema":{"type":"string"}},{"description":"Show licenses created on or after the specified date","example":"2025-04-15T13:52:09.809Z","in":"query","name":"start_date","schema":{"format":"date-time","type":"string"}},{"description":"Show licenses created before the specified date","example":"2025-04-15T13:52:09.809Z","in":"query","name":"end_date","schema":{"format":"date-time","type":"string"}},{"description":"Filter licenses by download availability","in":"query","name":"download_availability","schema":{"default":"all","enum":["all","downloadable","non_downloadable"],"type":"string"}},{"description":"Set to true to see license history for all members of your team.","in":"query","name":"team_history","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/DownloadHistoryDataList/example"}}},"schema":{"$ref":"#/components/schemas/DownloadHistoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"List editorial image licenses","tags":["editorial_images"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: EditorialImagesApiMethodsParams[\"getEditorialImageLicenseList\"] = {\n  \"image_id\": \"12345678\",\n  \"license\": \"premier_editorial_all_digital\",\n  \"username\": \"aUniqueUsername\",\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.editorialImages.getEditorialImageLicenseList(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]},"post":{"description":"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":"licenseEditorialImages","requestBody":{"content":{"application/json":{"example":{"$ref":"#/components/schemas/LicenseEditorialContentRequest/example"},"schema":{"$ref":"#/components/schemas/LicenseEditorialContentRequest"}}},"description":"License editorial content","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/LicenseEditorialContentResults/example"}}},"schema":{"$ref":"#/components/schemas/LicenseEditorialContentResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"customer_accessCode":["licenses.create","purchases.view"]}],"summary":"License editorial content","tags":["editorial_images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/editorial/images/licenses\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst body = {\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n};\n\neditorialApi.licenseEditorialImage(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams = {\n  \"body\": {\n    \"editorial\": [\n      {\n        \"editorial_id\": \"8594090h\",\n        \"license\": \"premier_editorial_comp\",\n      },\n    ],\n    \"country\": \"USA\",\n  },\n};\n\nsstk.editorialImages.licenseEditorialImage(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams: EditorialImagesApiMethodsParams[\"licenseEditorialImages\"] = {\n  \"body\": {\n    \"editorial\": [\n      {\n        \"editorial_id\": \"8594090h\",\n        \"license\": \"premier_editorial_comp\",\n      },\n    ],\n    \"country\": \"USA\",\n  },\n};\n\nsstk.editorialImages.licenseEditorialImage(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"editorial\" => [\n    [\n      \"editorial_id\" => \"8594090h\",\n      \"license\" => \"premier_editorial_comp\"\n    ]\n  ],\n  \"country\" => \"USA\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/images/licenses\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n}' > data.json\n\nshutterstock editorial license-editorial-images data.json\n"}]}},"/v2/editorial/images/livefeeds":{"get":{"operationId":"getEditorialImageLivefeedList","parameters":[{"description":"Returns only livefeeds that are available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialImageLivefeedList/example"}}},"schema":{"$ref":"#/components/schemas/EditorialImageLivefeedList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get editorial livefeed list","tags":["editorial_images"]}},"/v2/editorial/images/livefeeds/{id}":{"get":{"operationId":"getEditorialImageLivefeed","parameters":[{"description":"Editorial livefeed ID; must be an URI encoded string","example":"2018%2F10%2F15%2FWomen%20of%20the%20Year%20Lunch%20%26%20Awards%2C%20London","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the livefeed is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialImageLivefeed/example"}}},"schema":{"$ref":"#/components/schemas/EditorialImageLivefeed"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get editorial livefeed","tags":["editorial_images"]}},"/v2/editorial/images/livefeeds/{id}/items":{"get":{"operationId":"getEditorialImageLivefeedItems","parameters":[{"description":"Editorial livefeed ID; must be an URI encoded string","example":"2018%2F10%2F15%2FWomen%20of%20the%20Year%20Lunch%20%26%20Awards%2C%20London","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the livefeed items are available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialImageContentDataList/example"}}},"schema":{"$ref":"#/components/schemas/EditorialImageContentDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get editorial livefeed items","tags":["editorial_images"]}},"/v2/editorial/images/search":{"get":{"description":"This endpoint searches for editorial images. If you specify more than one search parameter, the API uses an AND condition. For example, if you set the `category` parameter to \"Alone,Performing\" and also specify a `query` parameter, the results include only images that match the query and are in both the Alone and Performing categories. You can also filter search terms out in the `query` parameter by prefixing the term with NOT.","operationId":"searchEditorialImages","parameters":[{"description":"One or more search terms separated by spaces","example":"The Academy Awards","in":"query","name":"query","schema":{"type":"string"}},{"description":"Sort by","in":"query","name":"sort","schema":{"default":"relevant","enum":["relevant","newest","oldest"],"type":"string"}},{"description":"Show editorial content with each of the specified editorial categories; specify category names in a comma-separated list","example":"Alone,Performing","in":"query","name":"category","schema":{"type":"string"}},{"description":"Show only editorial content that is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Show only editorial content from certain suppliers","in":"query","name":"supplier_code","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show only editorial content generated on or after a specific date","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_start","schema":{"format":"date","type":"string"}},{"description":"Show only editorial content generated on or before a specific date","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_end","schema":{"format":"date","type":"string"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}},{"description":"The cursor of the page with which to start fetching results; this cursor is returned from previous requests","example":"eyJ2IjoxLCJzIjoxfQ==","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Search editorial images","tags":["editorial_images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/editorial/images/search\" \\\n  -H \"Accept: application/json\" \\\n  -G \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  --data-urlencode \"query=musician\" \\\n  --data-urlencode \"country=USA\" \\\n  --data-urlencode \"category=Alone,Performing\" \\\n  --data-urlencode \"sort=newest\" \\\n  --data-urlencode \"date_start=2018-10-23\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst queryParams = {\n  \"query\": \"musician\",\n  \"country\": \"USA\",\n  \"category\": \"Alone,Performing\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\"\n};\n\nconst country = \"USA\";\n\neditorialApi.editorialImagesSearch(country, queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\",\n};\n\nsstk.editorialImages.searchEditorial(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: EditorialImagesApiMethodsParams[\"searchEditorial\"] = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\",\n};\n\nsstk.editorialImages.searchEditorial(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"musician\",\n  \"country\" => \"USA\",\n  \"category\" => \"Alone,Performing\",\n  \"date_start\" => \"2018-10-23\",\n  \"sort\" => \"newest\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/images/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock editorial search-editorial-images \\\n  --country USA \\\n  --category Alone,Performing \\\n  --sort newest \\\n  --query musician \\\n  --date-start 2018-10-23\n"}]}},"/v2/editorial/images/updated":{"get":{"description":"This endpoint lists editorial images that have been updated in the specified time period to update content management systems (CMS) or digital asset management (DAM) systems. In most cases, use the date_updated_start and date_updated_end parameters to specify a range updates based on when the updates happened. You can also use the date_taken_start and date_taken_end parameters to specify a range of updates based on when the image was taken.","operationId":"getUpdatedEditorialImages","parameters":[{"description":"Specify `addition` to return only images that were added or `edit` to return only images that were edited or deleted","example":"edit","in":"query","name":"type","required":true,"schema":{"enum":["edit","addition"],"type":"string"}},{"description":"Show images images added, edited, or deleted after the specified date. Acceptable range is 1970-01-01T00:00:01 to 2038-01-19T00:00:00.","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_updated_start","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Show images images added, edited, or deleted before the specified date. Acceptable range is 1970-01-01T00:00:01 to 2038-01-19T00:00:00.","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_updated_end","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Show images that were taken on or after the specified date; use this parameter if you want recently created images from the collection instead of updated older assets","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_taken_start","schema":{"format":"date","type":"string"}},{"description":"Show images that were taken before the specified date","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_taken_end","schema":{"format":"date","type":"string"}},{"description":"The cursor of the page with which to start fetching results; this cursor is returned from previous requests","example":"eyJ2IjoxLCJzIjoyfQ==","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"Sort by","example":"newest","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Show only editorial content from certain suppliers","example":"ABC","in":"query","name":"supplier_code","schema":{"items":{"maxLength":5,"type":"string"},"type":"array"}},{"description":"Show only editorial content that is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Number of results per page","example":200,"in":"query","name":"per_page","schema":{"default":500,"maximum":500,"minimum":100,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialUpdatedResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialUpdatedResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List updated content","tags":["editorial_images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/editorial/images/updated\" \\\n  -H \"Accept: application/json\" \\\n  -G \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  --data-urlencode \"type=edit\" \\\n  --data-urlencode \"country=USA\" \\\n  --data-urlencode \"date_updated_start=2020-02-02T13:00:00Z\" \\\n  --data-urlencode \"date_updated_end=2020-02-02T15:00:00Z\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst type = \"edit\";\nconst dateUpdatedStart = \"2020-02-02T13:00:00Z\";\nconst dateUpdatedEnd = \"2020-02-02T15:00:00Z\";\nconst country = \"USA\";\n\neditorialApi.getUpdatedImages(type, dateUpdatedStart, dateUpdatedEnd, country)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams = {\n  \"country\": \"USA\",\n  \"date_updated_start\": lastWeek,\n  \"date_updated_end\": today,\n  \"type\": \"edit\",\n};\n\nsstk.editorialImages.getUpdatedEditorialImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: EditorialImagesApiMethodsParams[\"getUpdatedEditorialImages\"] = {\n  \"country\": \"USA\",\n  \"date_updated_start\": lastWeek,\n  \"date_updated_end\": today,\n  \"type\": \"edit\",\n};\n\nsstk.editorialImages.getUpdatedEditorialImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"type\" => \"edit\",\n  \"country\" => \"USA\",\n  \"date_updated_start\" => \"2020-02-02T13:00:00Z\",\n  \"date_updated_end\" => \"2020-02-02T15:00:00Z\",\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/images/updated?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock editorial get-updated-editorial-images \\\n  --type edit \\\n  --country USA \\\n  --date-updated-start \"2020-02-02T13:00:00Z\" \\\n  --date-updated-end \"2020-02-02T15:00:00Z\"\n"}]}},"/v2/editorial/images/{id}":{"get":{"description":"This endpoint shows information about an editorial image, including a URL to a preview image and the sizes that it is available in.","operationId":"getEditorialImage","parameters":[{"description":"Editorial ID","example":"9926131a","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the content is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialContent/example"}}},"schema":{"$ref":"#/components/schemas/EditorialContent"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get editorial content details","tags":["editorial_images"]}},"/v2/editorial/licenses":{"post":{"deprecated":true,"description":"Deprecated; use `POST /v2/editorial/images/licenses` instead to get 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":"licenseEditorialImage","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/LicenseEditorialContentRequest/example"}}},"schema":{"$ref":"#/components/schemas/LicenseEditorialContentRequest"}}},"description":"License editorial content","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"download":{"url":"https://s3-eu-west-1.amazonaws.com/api-downloads.rexfeatures.com/[random-characters].jpg?Expires=1524717323"},"editorial_id":"69656358"}]}}},"schema":{"$ref":"#/components/schemas/LicenseEditorialContentResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"customer_accessCode":["licenses.create"]}],"summary":"(Deprecated) License editorial content","tags":["editorial_images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/editorial/licenses\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst body = {\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n};\n\neditorialApi.licenseEditorialImage(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams = {\n  \"body\": {\n    \"editorial\": [\n      {\n        \"editorial_id\": \"8594090h\",\n        \"license\": \"premier_editorial_comp\",\n      },\n    ],\n    \"country\": \"USA\",\n  },\n};\n\nsstk.editorialImages.licenseEditorialImage(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams: EditorialImagesApiMethodsParams[\"licenseEditorialImage\"] = {\n  \"body\": {\n    \"editorial\": [\n      {\n        \"editorial_id\": \"8594090h\",\n        \"license\": \"premier_editorial_comp\",\n      },\n    ],\n    \"country\": \"USA\",\n  },\n};\n\nsstk.editorialImages.licenseEditorialImage(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"editorial\" => [\n    [\n      \"editorial_id\" => \"8594090h\",\n      \"license\" => \"premier_editorial_comp\"\n    ]\n  ],\n  \"country\" => \"USA\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/licenses\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n}' > data.json\n\nshutterstock editorial license-editorial-image data.json\n"}]}},"/v2/editorial/livefeeds":{"get":{"deprecated":true,"description":"Deprecated; use `GET /v2/editorial/images/livefeeds` instead to get a list of editorial livefeeds.","operationId":"getEditorialLivefeedList","parameters":[{"description":"Returns only livefeeds that are available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialLivefeedList/example"}}},"schema":{"$ref":"#/components/schemas/EditorialLivefeedList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) Get editorial livefeed list","tags":["editorial_images"]}},"/v2/editorial/livefeeds/{id}":{"get":{"deprecated":true,"description":"Deprecated: use `GET /v2/editorial/images/livefeeds/{id}` instead to get an editorial livefeed.","operationId":"getEditorialLivefeed","parameters":[{"description":"Editorial livefeed ID; must be an URI encoded string","example":"2018%2F10%2F15%2FWomen%20of%20the%20Year%20Lunch%20%26%20Awards%2C%20London","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the livefeed is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialLivefeed/example"}}},"schema":{"$ref":"#/components/schemas/EditorialLivefeed"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) Get editorial livefeed","tags":["editorial_images"]}},"/v2/editorial/livefeeds/{id}/items":{"get":{"deprecated":true,"description":"Deprecated; use `GET /v2/editorial/images/livefeeds/{id}/items` instead to get editorial livefeed items.","operationId":"getEditorialLivefeedItems","parameters":[{"description":"Editorial livefeed ID; must be an URI encoded string","example":"2018%2F10%2F15%2FWomen%20of%20the%20Year%20Lunch%20%26%20Awards%2C%20London","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the livefeed items are available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialContentDataList/example"}}},"schema":{"$ref":"#/components/schemas/EditorialContentDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) Get editorial livefeed items","tags":["editorial_images"]}},"/v2/editorial/search":{"get":{"deprecated":true,"description":"Deprecated; use `GET /v2/editorial/images/search` instead to search for editorial images.","operationId":"searchEditorial","parameters":[{"description":"One or more search terms separated by spaces","in":"query","name":"query","schema":{"type":"string"}},{"description":"Sort by","in":"query","name":"sort","schema":{"default":"relevant","enum":["relevant","newest","oldest"],"type":"string"}},{"description":"Show editorial content within a certain editorial category; specify by category name","in":"query","name":"category","schema":{"type":"string"}},{"description":"Show only editorial content that is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Show only editorial content from certain suppliers","in":"query","name":"supplier_code","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show only editorial content generated on or after a specific date","in":"query","name":"date_start","schema":{"format":"date","type":"string"}},{"description":"Show only editorial content generated on or before a specific date","in":"query","name":"date_end","schema":{"format":"date","type":"string"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}},{"description":"The cursor of the page with which to start fetching results; this cursor is returned from previous requests","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) Search editorial content","tags":["editorial_images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/editorial/search\" \\\n  -H \"Accept: application/json\" \\\n  -G \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  --data-urlencode \"query=football\" \\\n  --data-urlencode \"country=USA\" \\\n  --data-urlencode \"sort=newest\" \\\n  --data-urlencode \"date_start=2018-10-23\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst queryParams = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\"\n};\n\nconst country = \"USA\";\n\neditorialApi.searchEditorial(country, queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\",\n};\n\nsstk.editorialImages.searchEditorial(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: EditorialImagesApiMethodsParams[\"searchEditorial\"] = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\",\n};\n\nsstk.editorialImages.searchEditorial(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"football\",\n  \"country\" => \"USA\",\n  \"date_start\" => \"2018-10-23\",\n  \"sort\" => \"newest\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock editorial search-editorial \\\n  --country USA \\\n  --sort newest \\\n  --query football \\\n  --date-start 2018-10-23\n"}]}},"/v2/editorial/updated":{"get":{"deprecated":true,"description":"Deprecated; use `GET /v2/editorial/images/updated` instead to get recently updated items.","operationId":"getUpdatedEditorialImage","parameters":[{"description":"Specify `addition` to return only images that were added or `edit` to return only images that were edited or deleted","example":"edit","in":"query","name":"type","required":true,"schema":{"enum":["edit","addition"],"type":"string"}},{"description":"Show images images added, edited, or deleted after the specified date. Acceptable range is 1970-01-01T00:00:01 to 2038-01-19T00:00:00.","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_updated_start","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Show images images added, edited, or deleted before the specified date. Acceptable range is 1970-01-01T00:00:01 to 2038-01-19T00:00:00.","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_updated_end","required":true,"schema":{"format":"date-time","type":"string"}},{"description":"Show images that were taken on or after the specified date; use this parameter if you want recently created images from the collection instead of updated older assets","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_taken_start","schema":{"format":"date","type":"string"}},{"description":"Show images that were taken before the specified date","example":"2025-04-15T13:52:09.809Z","in":"query","name":"date_taken_end","schema":{"format":"date","type":"string"}},{"description":"The cursor of the page with which to start fetching results; this cursor is returned from previous requests","example":"eyJ2IjoxLCJzIjoyfQ==","in":"query","name":"cursor","schema":{"type":"string"}},{"description":"Sort by","example":"newest","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Show only editorial content from certain suppliers","example":"ABC","in":"query","name":"supplier_code","schema":{"items":{"maxLength":5,"type":"string"},"type":"array"}},{"description":"Show only editorial content that is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Number of results per page","example":200,"in":"query","name":"per_page","schema":{"default":500,"maximum":500,"minimum":100,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialUpdatedResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialUpdatedResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) List updated content","tags":["editorial_images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/editorial/updated\" \\\n  -H \"Accept: application/json\" \\\n  -G \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  --data-urlencode \"type=edit\" \\\n  --data-urlencode \"country=USA\" \\\n  --data-urlencode \"date_updated_start=2020-02-02T13:00:00Z\" \\\n  --data-urlencode \"date_updated_end=2020-02-02T15:00:00Z\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst type = \"edit\";\nconst dateUpdatedStart = \"2020-02-02T13:00:00Z\";\nconst dateUpdatedEnd = \"2020-02-02T15:00:00Z\";\nconst country = \"USA\";\n\neditorialApi.getUpdatedImages(type, dateUpdatedStart, dateUpdatedEnd, country)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams = {\n  \"country\": \"USA\",\n  \"date_updated_start\": lastWeek,\n  \"date_updated_end\": today,\n  \"type\": \"edit\",\n};\n\nsstk.editorialImages.getUpdatedImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: EditorialImagesApiMethodsParams[\"getUpdatedImages\"] = {\n  \"country\": \"USA\",\n  \"date_updated_start\": lastWeek,\n  \"date_updated_end\": today,\n  \"type\": \"edit\",\n};\n\nsstk.editorialImages.getUpdatedImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"type\" => \"edit\",\n  \"country\" => \"USA\",\n  \"date_updated_start\" => \"2020-02-02T13:00:00Z\",\n  \"date_updated_end\" => \"2020-02-02T15:00:00Z\",\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/updated?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock editorial get-updated-images \\\n  --type edit \\\n  --country USA \\\n  --date-updated-start \"2020-02-02T13:00:00Z\" \\\n  --date-updated-end \"2020-02-02T15:00:00Z\"\n"}]}},"/v2/editorial/videos/categories":{"get":{"description":"This endpoint lists the categories that editorial videos can belong to, which are separate from the categories that other types of assets can belong to.","operationId":"listEditorialVideoCategories","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialVideoCategoryResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialVideoCategoryResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List editorial video categories","tags":["editorial_video"]}},"/v2/editorial/videos/licenses":{"get":{"description":"This endpoint lists existing editorial video licenses.","operationId":"getEditorialVideoLicenseList","parameters":[{"description":"Show licenses for the specified editorial video ID","example":"12345678","in":"query","name":"video_id","schema":{"type":"string"}},{"description":"Show editorial videos that are available with the specified license name","example":"premier_editorial_all_media","in":"query","name":"license","schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":200,"minimum":0,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Filter licenses by username of licensee","example":"aUniqueUsername","in":"query","name":"username","schema":{"type":"string"}},{"description":"Show licenses created on or after the specified date","example":"2025-04-15T13:52:09.810Z","in":"query","name":"start_date","schema":{"format":"date-time","type":"string"}},{"description":"Show licenses created before the specified date","example":"2025-04-15T13:52:09.810Z","in":"query","name":"end_date","schema":{"format":"date-time","type":"string"}},{"description":"Filter licenses by download availability","in":"query","name":"download_availability","schema":{"default":"all","enum":["all","downloadable","non_downloadable"],"type":"string"}},{"description":"Set to true to see license history for all members of your team.","in":"query","name":"team_history","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"download_time":"2025-04-15T13:52:09.810Z","id":"e1dbb15d5384725d292cf64f793ac45062","is_downloadable":false,"license":"premier_editorial_all_digital","metadata":{"client":"Company A","job":"Important project","other":"Important media","purchase_order":"457234"},"subscription_id":"s12345678","user":{"username":"username1"},"video":{"format":{"size":"original"},"id":"11231389im"}},{"download_time":"2025-04-15T13:52:09.810Z","id":"e1dbb15d5384725d292cf64f793ac45114","is_downloadable":false,"license":"premier_editorial_all_digital","metadata":{"client":"Company B","job":"Important project","other":"Important image","purchase_order":"5583831"},"subscription_id":"s12345678","user":{"username":"username2"},"video":{"format":{"size":"original"},"id":"11231442aa"}}],"page":1,"per_page":2}}},"schema":{"$ref":"#/components/schemas/DownloadHistoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"List editorial video licenses","tags":["editorial_video"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialVideoApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: EditorialVideoApiMethodsParams[\"getEditorialVideoLicenseList\"] = {\n  \"video_id\": \"12345678\",\n  \"license\": \"premier_editorial_all_media\",\n  \"username\": \"aUniqueUsername\",\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.editorialVideo.getEditorialVideoLicenseList(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]},"post":{"description":"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":"licenseEditorialVideo","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/LicenseEditorialVideoContentRequest/example"}}},"schema":{"$ref":"#/components/schemas/LicenseEditorialVideoContentRequest"}}},"description":"License editorial video content","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"download":{"url":"https://s3-eu-west-1.amazonaws.com/api-downloads.rexfeatures.com/[random-characters].mov?Expires=1524717323"},"editorial_id":"69656358"}]}}},"schema":{"$ref":"#/components/schemas/LicenseEditorialContentResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.create","purchases.view"]}],"summary":"License editorial video content","tags":["editorial_video"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_video_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/editorial/videos/licenses\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialApi();\n\nconst body = {\n  \"editorial\": [\n    {\n      \"editorial_id\": \"10687492a\",\n      \"license\": \"premier_editorial_video_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n};\n\neditorialApi.licenseEditorialVideo(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams = {\n  \"body\": {\n    \"editorial\": [\n      {\n        \"editorial_id\": \"8594090h\",\n        \"license\": \"premier_editorial.video_comp\",\n      },\n    ],\n    \"country\": \"USA\",\n  },\n};\n\nsstk.editorialVideo.licenseEditorialVideo(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { LicenseEditorialVideoContentLicenseEnum } from \"shutterstock-api\";\nimport type { EditorialVideoApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams: EditorialVideoApiMethodsParams[\"licenseEditorialVideo\"] = {\n  \"body\": {\n    \"editorial\": [\n      {\n        \"editorial_id\": \"8594090h\",\n        \"license\": LicenseEditorialVideoContentLicenseEnum.AllMedia,\n      },\n    ],\n    \"country\": \"USA\",\n  },\n};\n\nsstk.editorialVideo.licenseEditorialVideo(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"editorial\" => [\n    [\n      \"editorial_id\" => \"10687492a\",\n      \"license\" => \"premier_editorial_video_comp\"\n    ]\n  ],\n  \"country\" => \"USA\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/videos/licenses\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"editorial\": [\n    {\n      \"editorial_id\": \"8594090h\",\n      \"license\": \"premier_editorial_video_comp\"\n    }\n  ],\n  \"country\": \"USA\"\n}' > data.json\n\nshutterstock editorial license-editorial-video data.json\n"}]}},"/v2/editorial/videos/search":{"get":{"description":"This endpoint searches for editorial videos. If you specify more than one search parameter, the API uses an AND condition. For example, if you set the `category` parameter to \"Alone,Performing\" and also specify a `query` parameter, the results include only videos that match the query and are in both the Alone and Performing categories.  You can also filter search terms out in the `query` parameter by prefixing the term with NOT.","operationId":"searchEditorialVideos","parameters":[{"description":"One or more search terms separated by spaces","example":"The Academy Awards","in":"query","name":"query","schema":{"type":"string"}},{"description":"Sort by","in":"query","name":"sort","schema":{"default":"relevant","enum":["relevant","newest","oldest"],"type":"string"}},{"description":"Show editorial content with each of the specified editorial categories; specify category names in a comma-separated list","example":"Alone,Performing","in":"query","name":"category","schema":{"type":"string"}},{"description":"Show only editorial video content that is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"Show only editorial video content from certain suppliers","in":"query","name":"supplier_code","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show only editorial video content generated on or after a specific date","example":"2025-04-15T13:52:09.810Z","in":"query","name":"date_start","schema":{"format":"date","type":"string"}},{"description":"Show only editorial video content generated on or before a specific date","example":"2025-04-15T13:52:09.810Z","in":"query","name":"date_end","schema":{"format":"date","type":"string"}},{"description":"Show only editorial video content with specific resolution","example":"4k","in":"query","name":"resolution","schema":{"enum":["4k","high_definition","standard_definition"],"type":"string"}},{"description":"Show only editorial video content generated with specific frames per second","example":24,"in":"query","name":"fps","schema":{"type":"number"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}},{"description":"The cursor of the page with which to start fetching results; this cursor is returned from previous requests","example":"eyJ2IjoxLCJzIjoxfQ==","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialVideoSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/EditorialVideoSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Search editorial video content","tags":["editorial_video"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/editorial/videos/search\" \\\n  -H \"Accept: application/json\" \\\n  -G \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  --data-urlencode \"query=musician\" \\\n  --data-urlencode \"country=USA\" \\\n  --data-urlencode \"category=Alone,Performing\" \\\n  --data-urlencode \"sort=newest\" \\\n  --data-urlencode \"date_start=2018-10-23\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst editorialApi = new sstk.EditorialVideoApi();\n\nconst queryParams = {\n  \"query\": \"musician\",\n  \"country\": \"USA\",\n  \"category\": \"Alone,Performing\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\"\n};\n\nconst country = \"USA\";\n\neditorialApi.searchEditorialVideos(country, queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\",\n};\n\nsstk.editorialVideo.searchEditorialVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { EditorialVideoApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: EditorialVideoApiMethodsParams[\"searchEditorialVideos\"] = {\n  \"query\": \"football\",\n  \"country\": \"USA\",\n  \"sort\": \"newest\",\n  \"date_start\": \"2018-10-23\",\n};\n\nsstk.editorialVideo.searchEditorialVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"musician\",\n  \"country\" => \"USA\",\n  \"category\" => \"Alone,Performing\",\n  \"date_start\" => \"2018-10-23\",\n  \"sort\" => \"newest\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/editorial/videos/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock editorial search-editorial-videos \\\n  --country USA \\\n  --sort newest \\\n  --query musician \\\n  --category Alone,Performing \\\n  --date-start 2018-10-23\n"}]}},"/v2/editorial/videos/{id}":{"get":{"description":"This endpoint shows information about an editorial image, including a URL to a preview image and the sizes that it is available in.","operationId":"getEditorialVideo","parameters":[{"description":"Editorial ID","example":"9926131a","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the content is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialVideoContent/example"}}},"schema":{"$ref":"#/components/schemas/EditorialVideoContent"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"406":{"description":"Not Acceptable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get editorial video content details","tags":["editorial_video"]}},"/v2/editorial/{id}":{"get":{"deprecated":true,"description":"Deprecated; use `GET /v2/editorial/images/{id}` instead to show information about an editorial image, including a URL to a preview image and the sizes that it is available in.","parameters":[{"description":"Editorial ID","example":"9926131a","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Returns only if the content is available for distribution in a certain country","example":"USA","in":"query","name":"country","required":true,"schema":{"format":"country-code-3","type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/EditorialContent/example"}}},"schema":{"$ref":"#/components/schemas/EditorialContent"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"(Deprecated) Get editorial content details","tags":["editorial_images"]}},"/v2/images":{"get":{"description":"This endpoint lists information about one or more images, including the available sizes.","operationId":"getImageList","parameters":[{"description":"One or more image IDs","example":["1110335168","465011609"],"in":"query","name":"id","required":true,"schema":{"items":{"format":"asset-id","type":"string"},"maxItems":500,"type":"array"}},{"description":"Amount of detail to render in the response","example":"minimal","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ImageDataList/example"}}},"schema":{"$ref":"#/components/schemas/ImageDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List images","tags":["images"]},"post":{"deprecated":true,"description":"Deprecated; use `POST /v2/cv/images` instead. This endpoint uploads an image for reverse image search. The image must be in JPEG or PNG format. To get the search results, pass the ID that this endpoint returns to the `GET /v2/images/{id}/similar` endpoint.","operationId":"uploadEphemeralImage","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/ImageCreateRequest/example"}}},"schema":{"$ref":"#/components/schemas/ImageCreateRequest"}}},"description":"The image data in JPEG or PNG format","required":true},"responses":{"201":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ImageCreateResponse/example"}}},"schema":{"$ref":"#/components/schemas/ImageCreateResponse"}}},"description":"Created"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"413":{"description":"Payload Too Large"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Upload ephemeral images","tags":["computer_vision"],"x-code-samples":[{"lang":"shell","source":"curl -X POST \"https://api.shutterstock.com/v2/images\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg | tr -d '\\n'`\\\"}\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst body = new sstk.ImageCreateRequest(base64File);\n\nconst queryParams = {\n  \"page\": 1,\n  \"per_page\": 20,\n  \"view\": \"minimal\"\n};\n\nimagesApi.uploadEphemeralImage(body)\n  .then((data) => {\n    console.log(data.id);\n    return imagesApi.getSimilarImages(data.id, queryParams);\n  })\n  .then((similarImageData) => {\n    console.log(similarImageData);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\nconst fs = require(\"fs\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n\n    const queryParams = {\n      \"asset_id\": data.upload_id,\n      \"page\": 1,\n      \"per_page\": 20,\n      \"view\": \"minimal\",\n    };\n\n    return sstk.computerVision.getSimilarImages(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ComputerVisionApiMethodsParams } from \"shutterstock-api\";\n\nimport * as fs from \"fs\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst imageFile = fs.readFileSync(\"./myImage.jpg\");\nconst base64File = Buffer.from(imageFile).toString(\"base64\");\n\nconst uploadImageBody: ComputerVisionApiMethodsParams[\"uploadImage\"] = {\n  \"body\": {\n    \"base64_image\": base64File,\n  },\n};\n\nsstk.computerVision.uploadImage(uploadImageBody)\n  .then(({ data }) => {\n    console.log(data.upload_id);\n\n    const queryParams: ComputerVisionApiMethodsParams[\"getSimilarImages\"] = {\n      \"asset_id\": data.upload_id,\n      \"page\": 1,\n      \"per_page\": 20,\n      \"view\": \"minimal\",\n    };\n\n    return sstk.computerVision.getSimilarImages(queryParams);\n  })\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$imageData = file_get_contents(\"myImage.jpg\");\n$encodedImageData = base64_encode($imageData);\n\n$body = [\n  \"base64_image\" => $encodedImageData\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho \"{\\\"base64_image\\\":\\\"`base64 myImage.jpg  | tr -d '\\n'`\\\"}\" > data.json\n\nshutterstock images upload-ephemeral-image data.json\n"}]}},"/v2/images/categories":{"get":{"description":"This endpoint lists the categories (Shutterstock-assigned genres) that images can belong to.","operationId":"listImageCategories","parameters":[{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CategoryDataList/example"}}},"schema":{"$ref":"#/components/schemas/CategoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List image categories","tags":["images"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { Language } from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: ImagesApiMethodsParams[\"listImageCategories\"] = {\n  \"language\": Language.Es,\n};\n\nsstk.images.listImageCategories(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}},"/v2/images/collections":{"get":{"description":"This endpoint lists your collections of images and their basic attributes.","operationId":"getImageCollectionList","parameters":[{"description":"Which sharing information to include in the response, such as a URL to the collection","example":"share_code","in":"query","name":"embed","schema":{"items":{"enum":["share_code","share_url"],"type":"string"},"type":"array"}},{"description":"Page number","example":1,"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":2,"in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"List image collections","tags":["images"]},"post":{"description":"This endpoint creates one or more image collections (lightboxes). To add images to the collections, use `POST /v2/images/collections/{id}/items`.","operationId":"createImageCollection","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/CollectionCreateRequest/example"}}},"schema":{"$ref":"#/components/schemas/CollectionCreateRequest"}}},"description":"The names of the new collections","required":true},"responses":{"201":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionCreateResponse/example"}}},"schema":{"$ref":"#/components/schemas/CollectionCreateResponse"}}},"description":"Successfully created image collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Create image collections","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"name\": \"My collection\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/images/collections\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst body = {\n  \"name\": \"My collection\"\n};\n\nimagesApi.createImageCollection(body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst createCollectionBody = {\n  \"body\": {\n    \"name\": \"My collection\",\n  },\n};\n\nsstk.images.createImageCollection(createCollectionBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst createCollectionBody: ImagesApiMethodsParams[\"createImageCollection\"] = {\n  \"body\": {\n    \"name\": \"My collection\",\n  },\n};\n\nsstk.images.createImageCollection(createCollectionBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"},{"lang":"javascript_v2--nodejs","source":{"$ref":"#/paths/~1v2~1images~1collections/post/x-code-samples/2/source"}},{"lang":"typescript_v2--nodejs","source":{"$ref":"#/paths/~1v2~1images~1collections/post/x-code-samples/3/source"}},{"lang":"php","source":"$body = [\n  \"name\" => \"My collection\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/collections\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"name\": \"My collection\"\n}' > data.json\n\nshutterstock images create-image-collection data.json\n"}]}},"/v2/images/collections/featured":{"get":{"description":"This endpoint lists featured collections of specific types and a name and cover image for each collection.","operationId":"getFeaturedImageCollectionList","parameters":[{"description":"Which sharing information to include in the response, such as a URL to the collection","example":"share_url","in":"query","name":"embed","schema":{"enum":["share_url"],"type":"string"}},{"description":"The types of collections to return","example":["photo"],"in":"query","name":"type","schema":{"items":{"enum":["photo","editorial","vector"],"type":"string"},"type":"array"}},{"description":"Cover image size","example":"1x","in":"query","name":"asset_hint","schema":{"default":"1x","enum":["1x","2x"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/FeaturedCollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/FeaturedCollectionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List featured image collections","tags":["images"]}},"/v2/images/collections/featured/{id}":{"get":{"description":"This endpoint gets more detailed information about a featured collection, including its cover image and timestamps for its creation and most recent update. To get the images, use `GET /v2/images/collections/featured/{id}/items`.","operationId":"getFeaturedImageCollection","parameters":[{"description":"Collection ID","example":"136351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which sharing information to include in the response, such as a URL to the collection","in":"query","name":"embed","schema":{"enum":["share_url"],"type":"string"}},{"description":"Cover image size","in":"query","name":"asset_hint","schema":{"default":"1x","enum":["1x","2x"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/FeaturedCollection/example"}}},"schema":{"$ref":"#/components/schemas/FeaturedCollection"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Featured collection not found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get the details of featured image collections","tags":["images"]}},"/v2/images/collections/featured/{id}/items":{"get":{"description":"This endpoint lists the IDs of images in a featured collection and the date that each was added.","operationId":"getFeaturedImageCollectionItems","parameters":[{"description":"Collection ID","example":"136351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionItemDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Featured collection not found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get the contents of featured image collections","tags":["images"]}},"/v2/images/collections/{id}":{"delete":{"description":"This endpoint deletes an image collection.","operationId":"deleteImageCollection","parameters":[{"description":"Collection ID","example":"136351027","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Delete image collections","tags":["images"],"x-code-samples":[{"lang":"shell","source":"curl -X DELETE \"https://api.shutterstock.com/v2/images/collections/136351027\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst collectionId = \"136351027\"; // Collection ID\n\nimagesApi.deleteImageCollection(collectionId)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"136351027\";\n\nconst deleteCollectionParams = {\n  \"id\": collectionId,\n};\n\nsstk.images.deleteImageCollection(deleteCollectionParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"136351027\";\n\nconst deleteCollectionParams: ImagesApiMethodsParams[\"deleteImageCollection\"] = {\n  \"id\": collectionId,\n};\n\nsstk.images.deleteImageCollection(deleteCollectionParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/collections/136351027\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_CUSTOMREQUEST => \"DELETE\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock images delete-image-collection 136351027\n"}]},"get":{"description":"This endpoint gets more detailed information about a collection, including its cover image and timestamps for its creation and most recent update. To get the images in collections, use `GET /v2/images/collections/{id}/items`.","operationId":"getImageCollection","parameters":[{"description":"Collection ID","example":"126351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which sharing information to include in the response, such as a URL to the collection","in":"query","name":"embed","schema":{"items":{"enum":["share_code","share_url"],"type":"string"},"type":"array"}},{"description":"Code to retrieve a shared collection","in":"query","name":"share_code","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Collection/example"}}},"schema":{"$ref":"#/components/schemas/Collection"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Get the details of image collections","tags":["images"]},"post":{"description":"This endpoint sets a new name for an image collection.","operationId":"renameImageCollection","parameters":[{"description":"Collection ID","example":"126351027","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/CollectionUpdateRequest/example"}}},"schema":{"$ref":"#/components/schemas/CollectionUpdateRequest"}}},"description":"The new name for the collection","required":true},"responses":{"204":{"description":"Successfully updated collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Rename image collections","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"name\": \"My new collection name\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/images/collections/126351027\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst collectionId = \"126351027\"; // Collection ID\n\nconst body = {\n  \"name\": \"My new collection name\"\n};\n\nimagesApi.renameImageCollection(collectionId, body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"126351027\";\n\nconst renameCollectionBody = {\n  \"id\": collectionId,\n  \"body\": {\n    \"name\": \"My new collection name\",\n  },\n};\n\nsstk.images.renameImageCollection(renameCollectionBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"126351027\";\n\nconst renameCollectionBody: ImagesApiMethodsParams[\"renameImageCollection\"] = {\n  \"id\": collectionId,\n  \"body\": {\n    \"name\": \"My new collection name\",\n  },\n};\n\nsstk.images.renameImageCollection(renameCollectionBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"name\" => \"My new collection name\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/collections/126351027\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"name\": \"My new collection name\"\n}' > data.json\n\nshutterstock images rename-image-collection 48433107 data.json\n"}]}},"/v2/images/collections/{id}/items":{"delete":{"description":"This endpoint removes one or more images from a collection.","operationId":"deleteImageCollectionItems","parameters":[{"description":"Collection ID","example":"126351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"One or more image IDs to remove from the collection","in":"query","name":"item_id","schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"204":{"description":"Successfully removed collection items"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Remove images from collections","tags":["images"],"x-code-samples":[{"lang":"shell","source":"curl -X DELETE \"https://api.shutterstock.com/v2/images/collections/186726599/items?item_id=495863218\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst collectionId = \"126351027\"; // Collection ID\n\n// Array of images to remove\nconst imagesToRemove = {\n  \"item_id\": [\n    \"495863218\"\n  ]\n};\n\nimagesApi.deleteImageCollectionItems(collectionId, imagesToRemove)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"136351027\";\nconst itemToDelete = \"495863218\";\n\nconst deleteImageParams = {\n  \"id\": collectionId,\n  \"item_id\": [\n    itemToDelete,\n  ],\n};\n\nsstk.images.deleteImageCollectionItems(deleteImageParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"136351027\";\nconst itemToDelete = \"495863218\";\n\nconst deleteImageParams: ImagesApiMethodsParams[\"deleteImageCollectionItems\"] = {\n  \"id\": collectionId,\n  \"item_id\": [\n    itemToDelete,\n  ],\n};\n\nsstk.images.deleteImageCollectionItems(deleteImageParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/collections/126351027/items?item_id=495863218\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_CUSTOMREQUEST => \"DELETE\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock images delete-image-collection-items 186726599 \\\n  --item-id 495863218\n"}]},"get":{"description":"This endpoint lists the IDs of images in a collection and the date that each was added.","operationId":"getImageCollectionItems","parameters":[{"description":"Collection ID","example":"126351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}},{"description":"Code to retrieve the contents of a shared collection","in":"query","name":"share_code","schema":{"type":"string"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"oldest","enum":["newest","oldest"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionItemDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Get the contents of image collections","tags":["images"]},"post":{"description":"This endpoint adds one or more images to a collection by image IDs.","operationId":"addImageCollectionItems","parameters":[{"description":"Collection ID","example":"126351027","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"items":[{"id":"49572945"}]}}},"schema":{"$ref":"#/components/schemas/CollectionItemRequest"}}},"description":"Array of image IDs to add to the collection","required":true},"responses":{"204":{"description":"Successfully added collection items"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Add images to collections","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"items\": [\n    {\n      \"id\": \"49572945\",\n      \"media_type\": \"image\"\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/images/collections/126351027/items\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst collectionId = \"126351027\"; // Collection ID\n\nconst body = {\n  \"items\": [\n    {\n      \"id\": \"495863218\",\n      \"media_type\": \"image\"\n    }\n  ]\n};\n\nimagesApi.addImageCollectionItems(collectionId, body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"126351027\"; // Collection ID\n\nconst addImageBody = {\n  \"id\": collectionId,\n  \"body\": {\n    \"items\": [\n      {\n        \"id\": \"495863218\",\n        \"media_type\": \"image\",\n      },\n    ],\n  },\n};\n\nsstk.images.addImageCollectionItems(addImageBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"126351027\"; // Collection ID\n\nconst addImageBody: ImagesApiMethodsParams[\"addImageCollectionItems\"] = {\n  \"id\": collectionId,\n  \"body\": {\n    \"items\": [\n      {\n        \"id\": \"495863218\",\n        \"media_type\": \"image\",\n      },\n    ],\n  },\n};\n\nsstk.images.addImageCollectionItems(addImageBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"items\" => [\n    [\n      \"id\" => \"49572945\",\n      \"media_type\" => \"image\"\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/collections/126351027/items\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"items\": [\n    {\n      \"id\": \"49572945\",\n      \"media_type\": \"image\"\n    }\n  ]\n}' > data.json\n\nshutterstock images add-image-collection-items 126351027 data.json\n"}]}},"/v2/images/licenses":{"get":{"description":"This endpoint lists existing licenses.","operationId":"getImageLicenseList","parameters":[{"description":"Show licenses for the specified image ID","example":"12345678","in":"query","name":"image_id","schema":{"pattern":"^[1-9]\\d*$","type":"string","x-pattern-description":"A number that does not start with 0"}},{"description":"Show images that are available with the specified license, such as `standard` or `enhanced`; prepending a `-` sign excludes results from that license","example":"standard","in":"query","name":"license","schema":{"pattern":"^.+$","type":"string","x-pattern-description":"Minimum 1 character"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":200,"minimum":1,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Filter licenses by username of licensee","example":"aUniqueUsername","in":"query","name":"username","schema":{"type":"string"}},{"description":"Show licenses created on or after the specified date","example":"2025-04-15T13:52:09.810Z","in":"query","name":"start_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"end_date","relationship":"<="}]},{"description":"Show licenses created before the specified date","example":"2025-04-15T13:52:09.810Z","in":"query","name":"end_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"start_date","relationship":">"}]},{"description":"Filter licenses by download availability","in":"query","name":"download_availability","schema":{"default":"all","enum":["all","downloadable","non_downloadable"],"type":"string"}},{"description":"Set to true to see license history for all members of your team.","in":"query","name":"team_history","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/DownloadHistoryDataList/example"}}},"schema":{"$ref":"#/components/schemas/DownloadHistoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"List image licenses","tags":["images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/images/licenses\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  -G \\\n  --data-urlencode \"start_date=2016-10-03T01:25:13.521Z\" \\\n  --data-urlencode \"end_date=2016-10-04T13:25:13.521Z\" \\\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst queryParams = {\n  \"start_date\": \"2016-10-03T01:25:13.521Z\",\n  \"end_date\": \"2016-10-04T13:25:13.521Z\"\n};\n\nimagesApi.getImageLicenseList(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams = {\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.images.getImageLicenseList(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: ImagesApiMethodsParams[\"getImageLicenseList\"] = {\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.images.getImageLicenseList(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"start_date\" => \"2016-10-03T01:25:13.521Z\",\n  \"end_date\" => \"2016-10-04T13:25:13.521Z\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/licenses\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock images get-image-license-list \\\n --start-date \"2021-01-03T01:25:13.521Z\" \\\n --end-date \"2021-05-04T13:25:13.521Z\"\n"}]},"post":{"description":"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":"licenseImages","parameters":[{"description":"Subscription ID to use to license the image","in":"query","name":"subscription_id","schema":{"type":"string"}},{"deprecated":true,"description":"(Deprecated) Image format","in":"query","name":"format","schema":{"enum":["eps","jpg"],"type":"string"}},{"description":"Image size","in":"query","name":"size","schema":{"default":"huge","enum":["small","medium","huge","vector","custom"],"type":"string"}},{"description":"Search ID that was provided in the results of an image search","in":"query","name":"search_id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/LicenseImageRequest/example"}}},"schema":{"$ref":"#/components/schemas/LicenseImageRequest"}}},"description":"List of images to request licenses for and information about each license transaction; these values override the defaults in the query parameters","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/LicenseImageResultDataList/example"}}},"schema":{"$ref":"#/components/schemas/LicenseImageResultDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.create","purchases.view"]}],"summary":"License images","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"images\": [\n    {\n      \"image_id\": \"59656357\",\n      \"subscription_id\": \"s12345678\",\n      \"price\": 12.50,\n      \"metadata\": {\n        \"customer_id\": \"12345\"\n      }\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/images/licenses\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -H 'Content-Type: application/json' \\\n  -d \"$DATA\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst body = {\n  \"images\": [\n    {\n      \"image_id\": \"419235589\",\n      \"subscription_id\": \"s12345678\",\n      \"price\": 12.50,\n      \"metadata\": {\n        \"customer_id\": \"12345\"\n      }\n    }\n  ]\n};\n\nimagesApi.licenseImages(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams = {\n  \"body\": {\n    \"images\": [\n      {\n        \"image_id\": \"419235589\",\n        \"format\": \"jpg\",\n        \"subscription_id\": \"s12345678\",\n        \"price\": 12.50,\n        \"metadata\": {\n          \"customer_id\": \"12345\",\n        },\n      },\n    ],\n  },\n};\n\nsstk.images.licenseImages(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { LicenseImageFormatEnum } from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams: ImagesApiMethodsParams[\"licenseImages\"] = {\n  \"body\": {\n    \"images\": [\n      {\n        \"image_id\": \"419235589\",\n        \"format\": LicenseImageFormatEnum.Jpg,\n        \"subscription_id\": \"s12345678\",\n        \"price\": 12.50,\n        \"metadata\": {\n          \"customer_id\": \"12345\",\n        },\n      },\n    ],\n  },\n};\n\nsstk.images.licenseImages(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"},{"lang":"php","source":"$body = [\n  \"images\" => [\n    [\n      \"image_id\" => \"539753938\",\n      \"subscription_id\" => \"s12345678\",\n      \"price\" => 12.50,\n      \"metadata\" => [\n        \"customer_id\" => \"12345\"\n      ]\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/licenses\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"images\": [\n    {\n      \"image_id\": \"59656357\",\n      \"subscription_id\": \"s12345678\",\n      \"price\": 12.50,\n      \"metadata\": {\n        \"customer_id\": \"12345\"\n      }\n    }\n  ]\n}' > data.json\n\nshutterstock images license-images \\\n  data.json\n"}]}},"/v2/images/licenses/{id}/downloads":{"post":{"description":"This endpoint redownloads images that you have already received a license for. The download links in the response are valid for 8 hours.","operationId":"downloadImage","parameters":[{"description":"License ID","example":"e123","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"$ref":"#/components/schemas/RedownloadImage/example"},"schema":{"$ref":"#/components/schemas/RedownloadImage"}}},"description":"Information about the images to redownload","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Url/example"}}},"schema":{"$ref":"#/components/schemas/Url"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"Download images","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"size\": \"huge\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/images/licenses/e123/downloads\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst licenseId = \"e123\"; // license ID, not image ID\n\nconst body = {\n  \"size\": \"huge\"\n};\n\nimagesApi.downloadImage(licenseId, body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseId = \"e123\"; // license ID, not image ID\n\nconst downloadImageBody = {\n  \"id\": licenseId,\n  \"body\": {\n    \"size\": RedownloadImageSizeEnum.Huge,\n  },\n};\n\nsstk.images.downloadImage(downloadImageBody)\n  .then(({ data }) => {\n    console.log(data.url);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { RedownloadImageSizeEnum } from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseId = \"e123\"; // license ID, not image ID\n\nconst downloadImageBody: ImagesApiMethodsParams[\"downloadImage\"] = {\n  \"id\": licenseId,\n  \"body\": {\n    \"size\": RedownloadImageSizeEnum.Huge,\n  },\n};\n\nsstk.images.downloadImage(downloadImageBody)\n  .then(({ data }) => {\n    console.log(data.url);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"size\" => \"huge\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/licenses/e123/downloads\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"size\": \"huge\"\n}' > data.json\n\nshutterstock images download-image e123 data.json\n"}]}},"/v2/images/recommendations":{"get":{"description":"This endpoint returns images that customers put in the same collection as the specified image IDs.","operationId":"getImageRecommendations","parameters":[{"description":"Image IDs","example":[465011609],"in":"query","name":"id","required":true,"schema":{"items":{"type":"string"},"type":"array"}},{"description":"Maximum number of results returned in the response","in":"query","name":"max_items","schema":{"default":20,"maximum":500,"minimum":1,"type":"integer"}},{"description":"Restrict results to safe images","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/RecommendationDataList/example"}}},"schema":{"$ref":"#/components/schemas/RecommendationDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List recommended images","tags":["images"]}},"/v2/images/search":{"get":{"description":"This endpoint searches for images. If you specify more than one search parameter, the API uses an AND condition. Array parameters can be specified multiple times; in this case, the API uses an AND or an OR condition with those values, depending on the parameter. You can also filter search terms out in the `query` parameter by prefixing the term with NOT. Free API accounts show results only from a limited library of media, not the full Shutterstock media library. Also, the number of search fields they can use in a request is limited.","operationId":"searchImages","parameters":[{"description":"Show images added on the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"added_date","schema":{"format":"date","type":"string"}},{"description":"Show images added on or after the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"added_date_start","schema":{"format":"date","type":"string"}},{"description":"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","example":1.7778,"in":"query","name":"aspect_ratio_min","schema":{"exclusiveMinimum":true,"minimum":0,"type":"number"}},{"description":"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","example":1.7778,"in":"query","name":"aspect_ratio_max","schema":{"exclusiveMinimum":true,"minimum":0,"type":"number"}},{"description":"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","example":1.7778,"in":"query","name":"aspect_ratio","schema":{"exclusiveMinimum":true,"minimum":0,"type":"number"}},{"description":"Set to true and specify the `ai_objective` and `ai_industry` parameters to use AI-powered search; the API returns information about how well images meet the objective for the industry ","in":"query","name":"ai_search","schema":{"type":"boolean"},"x-relationships":[{"in":"query","name":"ai_industry","relationship":"required"},{"in":"query","name":"ai_objective","relationship":"required"}]},{"description":"For AI-powered search, specify the maximum number of labels to return","in":"query","name":"ai_labels_limit","schema":{"default":20,"maximum":500,"minimum":0,"type":"integer"}},{"description":"For AI-powered search, specify the industry to target; requires that the `ai_search` parameter is set to true","in":"query","name":"ai_industry","schema":{"enum":["automotive","cpg","finance","healthcare","retail","technology"],"type":"string"}},{"description":"For AI-powered search, specify the goal of the media; requires that the `ai_search` parameter is set to true","in":"query","name":"ai_objective","schema":{"enum":["awareness","traffic","conversions"],"type":"string"}},{"description":"Show images added before the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"added_date_end","schema":{"format":"date","type":"string"}},{"description":"Show images with the specified Shutterstock-defined category; specify a category name or ID","in":"query","name":"category","schema":{"type":"string"}},{"description":"Specify either a hexadecimal color in the format '4F21EA' or 'grayscale'; the API returns images that use similar colors","example":"4F21EA","in":"query","name":"color","schema":{"type":"string"}},{"description":"Show images with the specified contributor names or IDs, allows multiple","example":["123456"],"in":"query","name":"contributor","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show images from contributors in one or more specified countries, or start with NOT to exclude a country from the search","example":"US","in":"query","name":"contributor_country","schema":{"oneOf":[{"items":{"format":"country-code-2","type":"string"},"type":"array"},{"items":{"format":"negated-country-code-2","type":"string"},"type":"array"}]}},{"description":"Fields to display in the response; see the documentation for the fields parameter in the overview section","in":"query","name":"fields","schema":{"type":"string","uniqueItems":true}},{"deprecated":true,"description":"(Deprecated; use height_from and height_to instead) Show images with the specified height","in":"query","name":"height","schema":{"type":"integer"}},{"description":"Show images with the specified height or larger, in pixels","example":1080,"in":"query","name":"height_from","schema":{"type":"integer"}},{"description":"Show images with the specified height or smaller, in pixels","example":1080,"in":"query","name":"height_to","schema":{"type":"integer"}},{"description":"Show images of the specified type","example":"photo","in":"query","name":"image_type","schema":{"items":{"enum":["photo","illustration","vector"],"type":"string"},"type":"array"}},{"description":"Hide results with potentially unsafe keywords","in":"query","name":"keyword_safe_search","schema":{"default":true,"type":"boolean"}},{"description":"Set query and result language (uses Accept-Language header if not set)","example":"fr","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Show only images with the specified license","in":"query","name":"license","schema":{"items":{"default":"commercial","enum":["commercial","editorial","enhanced"],"type":"string"},"type":"array"}},{"description":"Show image results with the specified model IDs","example":["12345","67890"],"in":"query","name":"model","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show image results with horizontal or vertical orientation","example":"vertical","in":"query","name":"orientation","schema":{"enum":["horizontal","vertical"],"type":"string"}},{"description":"Page number","example":1,"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","example":50,"in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":0,"type":"integer"}},{"description":"Show images of people with a signed model release","example":true,"in":"query","name":"people_model_released","schema":{"type":"boolean"}},{"description":"Show images that feature people of the specified age category","example":"20s","in":"query","name":"people_age","schema":{"enum":["infants","children","teenagers","20s","30s","40s","50s","60s","older"],"type":"string"}},{"description":"Show images with people of the specified ethnicities, or start with NOT to show images without those ethnicities","example":"hispanic","in":"query","name":"people_ethnicity","schema":{"items":{"enum":["african","african_american","black","brazilian","chinese","caucasian","east_asian","hispanic","japanese","middle_eastern","native_american","pacific_islander","south_asian","southeast_asian","other","NOT african","NOT african_american","NOT black","NOT brazilian","NOT chinese","NOT caucasian","NOT east_asian","NOT hispanic","NOT japanese","NOT middle_eastern","NOT native_american","NOT pacific_islander","NOT south_asian","NOT southeast_asian","NOT other"],"type":"string"},"type":"array"}},{"description":"Show images with people of the specified gender","example":"both","in":"query","name":"people_gender","schema":{"enum":["male","female","both"],"type":"string"}},{"description":"Show images with the specified number of people","example":2,"in":"query","name":"people_number","schema":{"maximum":4,"minimum":0,"type":"integer"}},{"description":"One or more search terms separated by spaces; you can use NOT to filter out images that match a term","example":"dogs on the beach","in":"query","name":"query","schema":{"type":"string"}},{"description":"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","example":"US","in":"query","name":"region","schema":{"anyOf":[{"format":"country-code-2","type":"string"},{"format":"ipv4","type":"string"}]}},{"description":"Enable or disable safe search","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}},{"description":"Sort by","in":"query","name":"sort","schema":{"default":"popular","enum":["newest","popular","relevance","random"],"type":"string"}},{"description":"Spellcheck the search query and return results on suggested spellings","in":"query","name":"spellcheck_query","schema":{"default":true,"type":"boolean"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"deprecated":true,"description":"(Deprecated; use width_from and width_to instead) Show images with the specified width","in":"query","name":"width","schema":{"type":"integer"}},{"description":"Show images with the specified width or larger, in pixels","example":1920,"in":"query","name":"width_from","schema":{"type":"integer"}},{"description":"Show images with the specified width or smaller, in pixels","example":1920,"in":"query","name":"width_to","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ImageSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/ImageSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Search for images","tags":["images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/images/search\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"query=Vienna\" \\\n  --data-urlencode \"orientation=horizontal\" \\\n  --data-urlencode \"sort=popular\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst queryParams = {\n  \"query\": \"New York\",\n  \"sort\": \"popular\",\n  \"orientation\": \"horizontal\"\n};\n\nimagesApi.searchImages(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"New York\",\n  \"sort\": \"popular\",\n  \"orientation\": \"horizontal\",\n};\n\nsstk.images.searchImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: ImagesApiMethodsParams[\"searchImages\"] = {\n  \"query\": \"New York\",\n  \"sort\": \"popular\",\n  \"orientation\": \"horizontal\",\n};\n\nsstk.images.searchImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"New York\",\n  \"sort\" => \"popular\",\n  \"orientation\" => \"horizontal\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock images search-images \\\n  --query Vienna \\\n  --orientation horizontal \\\n  --sort popular\n"}]}},"/v2/images/search/suggestions":{"get":{"description":"This endpoint provides autocomplete suggestions for partial search terms.","operationId":"getImageSuggestions","parameters":[{"description":"Search term for which you want keyword suggestions","example":"cats","in":"query","name":"query","required":true,"schema":{"type":"string"}},{"description":"Limit the number of suggestions","in":"query","name":"limit","schema":{"default":10,"maximum":25,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Suggestions/example"}}},"schema":{"$ref":"#/components/schemas/Suggestions"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get suggestions for a search term","tags":["images"]},"post":{"description":"This endpoint returns up to 10 important keywords from a block of plain text.","operationId":"getImageKeywordSuggestions","requestBody":{"content":{"application/json":{"example":{"$ref":"#/components/schemas/SearchEntitiesRequest/example"},"schema":{"$ref":"#/components/schemas/SearchEntitiesRequest"}}},"description":"Plain text to extract keywords from","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":["beach","place","sand","ocean"]}}},"schema":{"$ref":"#/components/schemas/SearchEntitiesResponse"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get keywords from text","tags":["images"],"x-code-samples":[{"lang":"shell","source":"DATA='{\"text\": \"The beach is a wonderful place to visit. It has beautiful sand and ocean waves.\"}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/images/search/suggestions\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst body = {\n  \"text\": \"The beach is a wonderful place to visit. It has beautiful sand and ocean waves.\"\n};\n\nimagesApi.getImageKeywordSuggestions(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst keywordSuggestionBody = {\n  \"body\": {\n    \"text\": \"The beach is a wonderful place to visit. It has beautiful sand and ocean waves.\",\n  },\n};\n\nsstk.images.getImageKeywordSuggestions(keywordSuggestionBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst keywordSuggestionBody: ImagesApiMethodsParams[\"getImageKeywordSuggestions\"] = {\n  \"body\": {\n    \"text\": \"The beach is a wonderful place to visit. It has beautiful sand and ocean waves.\",\n  },\n};\n\nsstk.images.getImageKeywordSuggestions(keywordSuggestionBody)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"text\" => \"The beach is a wonderful place to visit. It has beautiful sand and ocean waves.\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/search/suggestions\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\"text\": \"The beach is a wonderful place to visit. It has beautiful sand and ocean waves.\"}' > data.json\n\nshutterstock images get-image-keyword-suggestions data.json\n"}]}},"/v2/images/updated":{"get":{"description":"This endpoint lists images that have been updated in the specified time period to update content management systems (CMS) or digital asset management (DAM) systems. In most cases, use the `interval` parameter to show images that were updated recently, but you can also use the `start_date` and `end_date` parameters to specify a range of no more than three days. Do not use the `interval` parameter with either `start_date` or `end_date`.","operationId":"getUpdatedImages","parameters":[{"description":"Show images that were added, deleted, or edited; by default, the endpoint returns images that were updated in any of these ways","example":"addition","in":"query","name":"type","schema":{"items":{"enum":["addition","deletion","edit"],"type":"string"},"type":"array"}},{"description":"Show images updated on or after the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"start_date","schema":{"format":"date","type":"string"}},{"description":"Show images updated before the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"end_date","schema":{"format":"date","type":"string"}},{"description":"Show images 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 HOUR, which shows images that were updated in the hour preceding the request","in":"query","name":"interval","schema":{"default":"1 HOUR","type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":2000,"minimum":1,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/UpdatedMediaDataList/example"}}},"schema":{"$ref":"#/components/schemas/UpdatedMediaDataList"}}},"description":"OK"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List updated images","tags":["images"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/images/updated\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"interval=30 MINUTE\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst imagesApi = new sstk.ImagesApi();\n\nconst queryParams = {\n  \"interval\": \"30 MINUTE\"\n};\n\nimagesApi.getUpdatedImages(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"interval\": \"30 MINUTE\",\n};\n\nsstk.images.getUpdatedImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: ImagesApiMethodsParams[\"getUpdatedImages\"] = {\n  \"interval\": \"30 MINUTE\",\n};\n\nsstk.images.getUpdatedImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"interval\" => \"30 MINUTE\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/images/updated?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock images get-updated-images \\\n  --interval \"30 MINUTE\"\n"}]}},"/v2/images/{id}":{"get":{"description":"This endpoint shows information about an image, including a URL to a preview image and the sizes that it is available in.","operationId":"getImage","parameters":[{"description":"Image ID","example":"465011609","in":"path","name":"id","required":true,"schema":{"format":"asset-id","type":"string"}},{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"full","enum":["minimal","full"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Image/example"}}},"schema":{"$ref":"#/components/schemas/Image"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get details about images","tags":["images"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: ImagesApiMethodsParams[\"getImage\"] = {\n  \"id\": \"465011609\",\n};\n\nsstk.images.getImage(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}},"/v2/images/{id}/similar":{"get":{"description":"This endpoint returns images that are visually similar to an image that you specify.","operationId":"listSimilarImages","parameters":[{"description":"Image ID","example":"465011609","in":"path","name":"id","required":true,"schema":{"pattern":"^([1-9]\\d*)|(U[a-zA-Z0-9]+)$","type":"string"}},{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":1,"type":"integer"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/ImageSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/ImageSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List similar images","tags":["images"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { ImagesApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: ImagesApiMethodsParams[\"getSimilarImages\"] = {\n  \"id\": \"465011609\",\n};\n\nsstk.images.getSimilarImages(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}},"/v2/oauth/access_token":{"post":{"description":"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":"createAccessToken","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"client_id":"141024g14g28104gff1h"}}},"schema":{"properties":{"client_id":{"description":"Client ID (Consumer Key) of your application","type":"string"},"client_secret":{"description":"Client Secret (Consumer Secret) of your application","type":"string"},"code":{"description":"Response code from the /oauth/authorize flow; required if grant_type=authorization_code","type":"string"},"expires":{"default":false,"description":"Whether or not the token expires, expiring tokens come with a refresh_token to renew the access_token","type":"boolean"},"grant_type":{"description":"Grant type: authorization_code generates user tokens, client_credentials generates short-lived client grants","enum":["authorization_code","client_credentials","refresh_token"],"type":"string"},"realm":{"default":"customer","description":"User type to be authorized (usually 'customer')","enum":["customer","contributor"],"type":"string"},"refresh_token":{"description":"Pass this along with grant_type=refresh_token to get a fresh access token","type":"string"}},"required":["client_id","grant_type"],"type":"object"}},"application/x-www-form-urlencoded":{"examples":{"default":{"value":{"client_id":"141024g14g28104gff1h"}}},"schema":{"properties":{"client_id":{"description":"Client ID (Consumer Key) of your application","type":"string"},"client_secret":{"description":"Client Secret (Consumer Secret) of your application","type":"string"},"code":{"description":"Response code from the /oauth/authorize flow; required if grant_type=authorization_code","type":"string"},"expires":{"default":"false","description":"Whether or not the token expires, expiring tokens come with a refresh_token to renew the access_token","enum":["true","false"],"type":"string"},"grant_type":{"description":"Grant type: authorization_code generates user tokens, client_credentials generates short-lived client grants","enum":["authorization_code","client_credentials","refresh_token"],"type":"string"},"realm":{"default":"customer","description":"User type to be authorized (usually 'customer')","enum":["customer","contributor"],"type":"string"},"refresh_token":{"description":"Pass this along with grant_type=refresh_token to get a fresh access token","type":"string"}},"required":["client_id","grant_type"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/OauthAccessTokenResponse/example"}}},"schema":{"$ref":"#/components/schemas/OauthAccessTokenResponse"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"summary":"Get access tokens","tags":["oauth"],"x-code-samples":[{"lang":"shell","source":"curl \"https://api.shutterstock.com/v2/oauth/access_token\" \\\n  -X POST \\\n  --data-urlencode \"client_id=$CLIENT_ID\" \\\n  --data-urlencode \"client_secret=$CLIENT_SECRET\" \\\n  --data-urlencode \"grant_type=authorization_code\" \\\n  --data-urlencode \"code=$CODE\"\n"},{"lang":"javascript_v1--nodejs","source":"const axios = require(\"axios\");\n\nconst body = {\n  \"client_id\": clientId,\n  \"client_secret\": clientSecret,\n  \"grant_type\": \"authorization_code\",\n  \"code\": code,\n};\n\naxios.post(\"https://api.shutterstock.com/v2/oauth/access_token\", body)\n  .then((res) => {\n    console.log(res);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const axios = require(\"axios\");\n\nconst requestTokenBody = {\n  \"client_id\": clientId,\n  \"client_secret\": clientSecret,\n  \"grant_type\": \"authorization_code\",\n  \"code\": code,\n};\n\naxios.post(\"https://api.shutterstock.com/v2/oauth/access_token\", requestTokenBody)\n  .then((res) => {\n    console.log(res);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"const axios = require(\"axios\");\n\nconst requestTokenBody = {\n  \"client_id\": clientId,\n  \"client_secret\": clientSecret,\n  \"grant_type\": \"authorization_code\",\n  \"code\": code,\n};\n\naxios.post(\"https://api.shutterstock.com/v2/oauth/access_token\", requestTokenBody)\n  .then((res) => {\n    console.log(res);\n  });\n"},{"lang":"php","source":"$body = [\n  \"client_id\" => $clientId,\n  \"client_secret\" => $clientSecret,\n  \"grant_type\" => \"authorization_code\",\n  \"code\" => $code\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/oauth/access_token\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Content-Type: application/json\",\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"curl \"https://api.shutterstock.com/v2/oauth/access_token\" \\\n  -X POST \\\n  --data-urlencode \"client_id=$CLIENT_ID\" \\\n  --data-urlencode \"client_secret=$CLIENT_SECRET\" \\\n  --data-urlencode \"grant_type=authorization_code\" \\\n  --data-urlencode \"code=$CODE\"\n"}]}},"/v2/oauth/authorize":{"get":{"description":"This endpoint returns a redirect URI (in the 'Location' header) that the customer uses to authorize your application and, together with POST /v2/oauth/access_token, generate an access token that represents that authorization.","operationId":"authorize","parameters":[{"description":"Client ID (Consumer Key) of your application","example":"6d097450b209c6dcd859","in":"query","name":"client_id","required":true,"schema":{"type":"string"}},{"description":"User type to be authorized (usually 'customer')","example":"customer","in":"query","name":"realm","schema":{"default":"customer","enum":["customer","contributor"],"type":"string"}},{"description":"The callback URI to send the request to after authorization; must use a host name that is registered with your application","example":"localhost","in":"query","name":"redirect_uri","required":true,"schema":{"type":"string"}},{"description":"Type of temporary authorization code that will be used to generate an access code; the only valid value is 'code'","example":"code","in":"query","name":"response_type","required":true,"schema":{"enum":["code"],"type":"string"}},{"description":"Space-separated list of scopes to be authorized","example":"user.view","in":"query","name":"scope","schema":{"default":"user.view","type":"string"}},{"description":"Unique value used by the calling app to verify the request","example":"1540290465000","in":"query","name":"state","required":true,"schema":{"type":"string"}}],"responses":{"302":{"content":{"text/html":{"examples":{"response":{"value":{"$ref":"#/components/schemas/AuthorizeResponse/example"}}},"schema":{"$ref":"#/components/schemas/AuthorizeResponse"}}},"description":"Redirect user to authenticate with Shutterstock"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"summary":"Authorize applications","tags":["oauth"],"x-code-samples":[{"lang":"shell","source":"curl \"https://api.shutterstock.com/v2/oauth/authorize\" \\\n  -X GET \\\n  -G \\\n  --data-urlencode \"scope=licenses.create licenses.view purchases.view\" \\\n  --data-urlencode \"state=demo_`date +%s`\" \\\n  --data-urlencode \"response_type=code\" \\\n  --data-urlencode \"redirect_uri=http://localhost:3000/callback\" \\\n  --data-urlencode \"client_id=$CLIENT_ID\"\n"},{"lang":"javascript_v1--nodejs","source":"const axios = require(\"axios\");\n\naxios.get(\"https://api.shutterstock.com/v2/oauth/authorize\", {\n  \"params\": {\n    \"scope\": \"licenses.create licenses.view purchases.view\",\n    \"state\": \"demo_\" + Math.round(new Date() / 1000),\n    \"response_type\": \"code\",\n    \"redirect_uri\": \"http://localhost:3000/callback\",\n    \"client_id\": clientId\n  },\n  // Don't follow the redirect because this program is not running in a browser\n  \"maxRedirects\": 0,\n})\n  .catch(({ response }) => {\n    // HTTP 302: Redirect\n    console.log(response.data);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const axios = require(\"axios\");\n\naxios.get(\"https://api.shutterstock.com/v2/oauth/authorize\", {\n  \"params\": {\n    \"scope\": \"licenses.create licenses.view purchases.view\",\n    \"state\": \"demo_\" + Math.round(new Date() / 1000),\n    \"response_type\": \"code\",\n    \"redirect_uri\": \"http://localhost:3000/callback\",\n    \"client_id\": clientId,\n  },\n  // Don't follow the redirect because this program is not running in a browser\n  \"maxRedirects\": 0,\n})\n  .catch(({ response }) => {\n    // HTTP 302: Redirect\n    console.log(response.data);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"const axios = require(\"axios\");\n\naxios.get(\"https://api.shutterstock.com/v2/oauth/authorize\", {\n  \"params\": {\n    \"scope\": \"licenses.create licenses.view purchases.view\",\n    \"state\": \"demo_\" + Math.round(new Date() / 1000),\n    \"response_type\": \"code\",\n    \"redirect_uri\": \"http://localhost:3000/callback\",\n    \"client_id\": clientId,\n  },\n  // Don't follow the redirect because this program is not running in a browser\n  \"maxRedirects\": 0,\n})\n  .catch(({ response }) => {\n    // HTTP 302: Redirect\n    console.log(response.data);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"client_id\" => $clientId,\n  \"redirect_uri\" => \"http://localhost:3000/callback\",\n  \"response_type\" => \"code\",\n  \"scope\" => \"licenses.create licenses.view purchases.view\",\n  \"state\" => time()\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/oauth/authorize?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"curl \"https://api.shutterstock.com/v2/oauth/authorize\" \\\n  -X GET \\\n  -G \\\n  --data-urlencode \"scope=licenses.create licenses.view purchases.view\" \\\n  --data-urlencode \"state=demo_`date +%s`\" \\\n  --data-urlencode \"response_type=code\" \\\n  --data-urlencode \"redirect_uri=http://localhost:3000/callback\" \\\n  --data-urlencode \"client_id=$CLIENT_ID\"\n"}]}},"/v2/sfx":{"get":{"description":"This endpoint shows information about sound effects.","operationId":"getSfxListDetails","parameters":[{"description":"One or more sound effect IDs","example":["1110335168","465011609"],"in":"query","name":"id","required":true,"schema":{"items":{"format":"asset-id","type":"string"},"maxItems":500,"type":"array"}},{"description":"Amount of detail to render in the response","example":"minimal","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"description":"Language for the keywords and categories in the response","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Which library to fetch from","example":"shutterstock","in":"query","name":"library","schema":{"enum":["shutterstock","premier","premiumbeat"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/SFXDataList/example"}}},"schema":{"$ref":"#/components/schemas/SFXDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List details about sound effects","tags":["sound_effects"]}},"/v2/sfx/licenses":{"get":{"description":"This endpoint lists existing licenses.","operationId":"getSfxLicenseList","parameters":[{"description":"Show licenses for the specified sound effects ID","example":"12345678","in":"query","name":"sfx_id","schema":{"pattern":"^[1-9]\\d*$","type":"string","x-pattern-description":"A number that does not start with 0"}},{"description":"Show sound effects that are available with the specified license, such as `standard` or `enhanced`; prepending a `-` sign excludes results from that license","example":"standard","in":"query","name":"license","schema":{"pattern":"^.+$","type":"string","x-pattern-description":"Minimum 1 character"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":200,"minimum":1,"type":"integer"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Filter licenses by username of licensee","example":"aUniqueUsername","in":"query","name":"username","schema":{"pattern":"^.+$","type":"string","x-pattern-description":"Minimum 1 character"}},{"description":"Show licenses created on or after the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"start_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"end_date","relationship":"<="}]},{"description":"Show licenses created before the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"end_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"start_date","relationship":">"}]},{"description":"Filter by the license ID","in":"query","name":"license_id","schema":{"pattern":"^.+$","type":"string","x-pattern-description":"Minimum 1 character"}},{"description":"Filter licenses by download availability","in":"query","name":"download_availability","schema":{"default":"all","enum":["all","downloadable","non_downloadable"],"type":"string"}},{"description":"Set to true to see license history for all members of your team.","in":"query","name":"team_history","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/DownloadHistoryDataList/example"}}},"schema":{"$ref":"#/components/schemas/DownloadHistoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"List sound effects licenses","tags":["sound_effects"]},"post":{"description":"This endpoint licenses sounds effect assets.","operationId":"licensesSFX","parameters":[],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/LicenseSFXRequest/example"}}},"schema":{"$ref":"#/components/schemas/LicenseSFXRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/LicenseSFXResultDataList/example"}}},"schema":{"$ref":"#/components/schemas/LicenseSFXResultDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"License sound effects","tags":["sound_effects"]}},"/v2/sfx/licenses/{id}/downloads":{"post":{"description":"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":"downloadSfx","parameters":[{"description":"License ID","example":"123","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"url":"http://download.dev.shutterstock.com/gatekeeper/abc/shutterstock_id.wav"}}},"schema":{"$ref":"#/components/schemas/SfxUrl"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"Download sound effects","tags":["sound_effects"]}},"/v2/sfx/search":{"get":{"description":"This endpoint searches for sound effects. If you specify more than one search parameter, the API uses an AND condition.","operationId":"searchSFX","parameters":[{"description":"Show sound effects added on the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"added_date","schema":{"format":"date","type":"string"}},{"description":"Show sound effects added on or after the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"added_date_start","schema":{"format":"date","type":"string"}},{"description":"Show sound effects added before the specified date","example":"2025-04-15T13:52:09.811Z","in":"query","name":"added_date_end","schema":{"format":"date","type":"string"}},{"description":"Show sound effects with the specified duration in seconds","example":180,"in":"query","name":"duration","schema":{"type":"integer","uniqueItems":true}},{"description":"Show sound effects with the specified duration or longer in seconds","example":30,"in":"query","name":"duration_from","schema":{"type":"integer","uniqueItems":true}},{"description":"Show sound effects with the specified duration or shorter in seconds","example":180,"in":"query","name":"duration_to","schema":{"type":"integer","uniqueItems":true}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer","uniqueItems":true}},{"description":"Number of results per page","example":1,"in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":1,"type":"integer","uniqueItems":true}},{"description":"One or more search terms separated by spaces","example":"drum","in":"query","name":"query","schema":{"type":"string","uniqueItems":true}},{"description":"Enable or disable safe search","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}},{"description":"Sort by","example":"popular","in":"query","name":"sort","schema":{"default":"popular","enum":["popular","newest","relevance","random","oldest"],"type":"string","uniqueItems":true}},{"description":"Amount of detail to render in the response","example":"full","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string","uniqueItems":true}},{"description":"Set query and result language (uses Accept-Language header if not set)","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/SFXSearchResults"}}},"schema":{"$ref":"#/components/schemas/SFXSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"503":{"description":"Service Unavailable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Search for sound effects","tags":["sound_effects"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/sfx/search\" \\\n  --header \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"query=air\" \\\n  --data-urlencode \"duration_from=60\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst sfxApi = new sstk.SFXApi();\n\nconst queryParams = {\n  \"query\": \"air\",\n  \"duration_from\": 60\n};\n\nsfxApi.searchTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"bluegrass\",\n  \"duration_from\": 60,\n  \"moods\": [\"uplifting\"],\n};\n\nsstk.sfx.searchTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { SfxApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: SfxApiMethodsParams[\"searchTracks\"] = {\n  \"query\": \"air\",\n  \"duration_from\": 60,\n};\n\nsstk.sfx.searchTracks(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"air\",\n  \"duration_from\" => 60\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/sfx/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock sfx search-tracks \\\n  --query air \\\n  --duration-from 60\n"}]}},"/v2/sfx/{id}":{"get":{"description":"This endpoint shows information about a sound effect.","operationId":"getSfxDetails","parameters":[{"description":"Audio track ID","example":"442583","in":"path","name":"id","required":true,"schema":{"type":"integer"}},{"description":"Language for the keywords and categories in the response","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Amount of detail to render in the response","example":"full","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"description":"Which library to fetch from","example":"shutterstock","in":"query","name":"library","schema":{"enum":["shutterstock","premier","premiumbeat"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/SFX/example"}}},"schema":{"$ref":"#/components/schemas/SFX"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"503":{"description":"Service Unavailable"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get details about sound effects","tags":["sound_effects"]}},"/v2/test":{"get":{"operationId":"echo","parameters":[{"description":"Text to echo","in":"query","name":"text","schema":{"default":"ok","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/TestEcho/example"}}},"schema":{"$ref":"#/components/schemas/TestEcho"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"summary":"Echo text","tags":["test"]}},"/v2/test/validate":{"get":{"operationId":"validate","parameters":[{"description":"Integer ID","example":123,"in":"query","name":"id","required":true,"schema":{"type":"integer"}},{"description":"List of tags","in":"query","name":"tag","schema":{"items":{"type":"string"},"type":"array"}},{"description":"User agent","in":"header","name":"user-agent","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/TestValidate/example"}}},"schema":{"$ref":"#/components/schemas/TestValidate"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"summary":"Validate input","tags":["test"]}},"/v2/user":{"get":{"operationId":"getUser","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/UserDetails/example"}}},"schema":{"$ref":"#/components/schemas/UserDetails"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["user.view"]}],"summary":"Get user details","tags":["users"]}},"/v2/user/access_token":{"get":{"operationId":"getAccessToken","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/AccessTokenDetails/example"}}},"schema":{"$ref":"#/components/schemas/AccessTokenDetails"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":[]}],"summary":"Get access token details","tags":["users"]}},"/v2/user/subscriptions":{"get":{"operationId":"getUserSubscriptionList","responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/SubscriptionDataList/example"}}},"schema":{"$ref":"#/components/schemas/SubscriptionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["purchases.view"]}],"summary":"List user subscriptions","tags":["users"]}},"/v2/videos":{"get":{"description":"This endpoint lists information about one or more videos, including the aspect ratio and URLs to previews.","operationId":"getVideoList","parameters":[{"description":"One or more video IDs","example":["639703","993721"],"in":"query","name":"id","required":true,"schema":{"items":{"format":"asset-id","type":"string"},"maxItems":500,"minItems":1,"type":"array"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/VideoDataList/example"}}},"schema":{"$ref":"#/components/schemas/VideoDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List videos","tags":["videos"]}},"/v2/videos/categories":{"get":{"description":"This endpoint lists the categories (Shutterstock-assigned genres) that videos can belong to.","operationId":"listVideoCategories","parameters":[{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CategoryDataList/example"}}},"schema":{"$ref":"#/components/schemas/CategoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List video categories","tags":["videos"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { Language } from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: VideosApiMethodsParams[\"listVideoCategories\"] = {\n  \"language\": Language.Es,\n};\n\nsstk.videos.listVideoCategories(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}},"/v2/videos/collections":{"get":{"description":"This endpoint lists your collections of videos and their basic attributes.","operationId":"getVideoCollectionList","parameters":[{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}},{"description":"Which sharing information to include in the response, such as a URL to the collection","example":"share_code","in":"query","name":"embed","schema":{"items":{"enum":["share_code","share_url"],"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"List video collections","tags":["videos"]},"post":{"description":"This endpoint creates one or more collections (clipboxes). To add videos to collections, use `POST /v2/videos/collections/{id}/items`.","operationId":"createVideoCollection","requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/CollectionCreateRequest/example"}}},"schema":{"$ref":"#/components/schemas/CollectionCreateRequest"}}},"description":"Collection metadata","required":true},"responses":{"201":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionCreateResponse/example"}}},"schema":{"$ref":"#/components/schemas/CollectionCreateResponse"}}},"description":"Successfully created video collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Create video collections","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"name\": \"New collection name\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/videos/collections\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst body = {\n  \"name\": \"New collection name\"\n};\n\nvideosApi.createVideoCollection(body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst createBody = {\n  \"body\": {\n    \"name\": \"New collection name\",\n  },\n};\n\nsstk.videos.createVideoCollection(createBody)\n  .then(({ data }) => {\n    const newCollectionId = data.id;\n    console.log(\"Created\", newCollectionId);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst createBody: VideosApiMethodsParams[\"createVideoCollection\"] = {\n  \"body\": {\n    \"name\": \"New collection name\",\n  },\n};\n\nsstk.videos.createVideoCollection(createBody)\n  .then(({ data }) => {\n    const newCollectionId = data.id;\n    console.log(\"Created\", newCollectionId);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"name\" => \"New collection name\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/collections\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"name\": \"New collection name\"\n}' > data.json\n\nshutterstock videos create-video-collection data.json\n"}]}},"/v2/videos/collections/featured":{"get":{"description":"This endpoint lists featured video collections and a name and cover video for each collection.","operationId":"getFeaturedVideoCollectionList","parameters":[{"description":"What information to include in the response, such as a URL to the collection","example":"share_url","in":"query","name":"embed","schema":{"enum":["share_url"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/FeaturedCollectionDataList/example"}}},"schema":{"$ref":"#/components/schemas/FeaturedCollectionDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List featured video collections","tags":["videos"]}},"/v2/videos/collections/featured/{id}":{"get":{"description":"This endpoint gets more detailed information about a featured video collection, including its cover video and timestamps for its creation and most recent update. To get the videos, use `GET /v2/videos/collections/featured/{id}/items`.","operationId":"getFeaturedVideoCollection","parameters":[{"description":"Collection ID","example":"136351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"What information to include in the response, such as a URL to the collection","in":"query","name":"embed","schema":{"enum":["share_url"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/FeaturedCollection/example"}}},"schema":{"$ref":"#/components/schemas/FeaturedCollection"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Featured collection not found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get the details of featured video collections","tags":["videos"]}},"/v2/videos/collections/featured/{id}/items":{"get":{"description":"This endpoint lists the IDs of videos in a featured collection and the date that each was added.","operationId":"getFeaturedVideoCollectionItems","parameters":[{"description":"Collection ID","example":"136351027","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/VideoCollectionItemDataList/example"}}},"schema":{"$ref":"#/components/schemas/VideoCollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Featured collection not found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get the contents of featured video collections","tags":["videos"]}},"/v2/videos/collections/{id}":{"delete":{"description":"This endpoint deletes a collection.","operationId":"deleteVideoCollection","parameters":[{"description":"The ID of the collection to delete","example":"17555176","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Delete video collections","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"curl -X DELETE \"https://api.shutterstock.com/v2/videos/collections/17555176\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst collectionId = \"17555176\";\n\nvideosApi.deleteVideoCollection(collectionId)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"17555176\";\n\nconst deleteVideoCollectionParams = {\n  \"id\": collectionId,\n};\n\nsstk.videos.deleteVideoCollection(deleteVideoCollectionParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"17555176\";\n\nconst deleteVideoCollectionParams: VideosApiMethodsParams[\"deleteVideoCollection\"] = {\n  \"id\": collectionId,\n};\n\nsstk.videos.deleteVideoCollection(deleteVideoCollectionParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/collections/17555176\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock videos delete-video-collection 17555176\n"}]},"get":{"description":"This endpoint gets more detailed information about a collection, including the timestamp for its creation and the number of videos in it. To get the videos in collections, use GET /v2/videos/collections/{id}/items.","operationId":"getVideoCollection","parameters":[{"description":"The ID of the collection to return","example":"17555176","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which sharing information to include in the response, such as a URL to the collection","in":"query","name":"embed","schema":{"items":{"enum":["share_code","share_url"],"type":"string"},"type":"array"}},{"description":"Code to retrieve a shared collection","in":"query","name":"share_code","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Collection/example"}}},"schema":{"$ref":"#/components/schemas/Collection"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Get the details of video collections","tags":["videos"]},"post":{"description":"This endpoint sets a new name for a collection.","operationId":"renameVideoCollection","parameters":[{"description":"The ID of the collection to rename","example":"17555176","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/CollectionUpdateRequest/example"}}},"schema":{"$ref":"#/components/schemas/CollectionUpdateRequest"}}},"description":"The new name for the collection","required":true},"responses":{"204":{"description":"Successfully updated collection"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Rename video collections","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"name\": \"Updated collection name\"\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/videos/collections/17555176\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst collectionId = \"186765119\";\n\nconst body = {\n  \"name\": \"My new collection name\"\n};\n\nvideosApi.renameVideoCollection(collectionId, body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"186765119\";\n\nconst renameCollectionBody = {\n  \"id\": collectionId,\n  \"body\": {\n    \"name\": \"My new collection name for video collection\",\n  },\n};\n\nsstk.videos.renameVideoCollection(renameCollectionBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"186765119\";\n\nconst renameCollectionBody: VideosApiMethodsParams[\"renameVideoCollection\"] = {\n  \"id\": collectionId,\n  \"body\": {\n    \"name\": \"My new collection name for video collection\",\n  },\n};\n\nsstk.videos.renameVideoCollection(renameCollectionBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"name\" => \"Updated collection name\"\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/collections/17555176\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"name\": \"Updated collection name\"\n}' > data.json\n\nshutterstock videos rename-video-collection 17555176 data.json\n"}]}},"/v2/videos/collections/{id}/items":{"delete":{"description":"This endpoint removes one or more videos from a collection.","operationId":"deleteVideoCollectionItems","parameters":[{"description":"The ID of the Collection from which items will be deleted","example":"17555176","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"One or more video IDs to remove from the collection","in":"query","name":"item_id","schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"204":{"description":"Successfully removed collection items"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Remove videos from collections","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"curl -X DELETE \"https://api.shutterstock.com/v2/videos/collections/17555176/items?item_id=495863218\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst collectionId = \"17555176\";\n\n// Array of videos to remove\nconst videosToRemove = {\n  \"item_id\": [\n    \"10120264\"\n  ]\n};\n\nvideosApi.deleteVideoCollectionItems(collectionId, videosToRemove)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"17555176\";\nconst itemToDelete = \"10120264\";\n\nconst deleteVideoParams = {\n  \"id\": collectionId,\n  \"item_id\": [\n    itemToDelete,\n  ],\n};\n\nsstk.videos.deleteVideoCollectionItems(deleteVideoParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"17555176\";\nconst itemToDelete = \"10120264\";\n\nconst deleteVideoParams: VideosApiMethodsParams[\"deleteVideoCollectionItems\"] = {\n  \"id\": collectionId,\n  \"item_id\": [\n    itemToDelete,\n  ],\n};\n\nsstk.videos.deleteVideoCollectionItems(deleteVideoParams)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/collections/17555176/items?item_id=495863218\",\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_CUSTOMREQUEST => \"DELETE\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock videos delete-video-collection-items 17555176 \\\n  --item-id 495863218\n"}]},"get":{"description":"This endpoint lists the IDs of videos in a collection and the date that each was added.","operationId":"getVideoCollectionItems","parameters":[{"description":"Collection ID","example":"17555176","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":150,"minimum":1,"type":"integer"}},{"description":"Code to retrieve the contents of a shared collection","in":"query","name":"share_code","schema":{"type":"string"}},{"description":"Sort order","in":"query","name":"sort","schema":{"default":"oldest","enum":["newest","oldest"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/CollectionItemDataList/example"}}},"schema":{"$ref":"#/components/schemas/CollectionItemDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.view"]}],"summary":"Get the contents of video collections","tags":["videos"]},"post":{"description":"This endpoint adds one or more videos to a collection by video IDs.","operationId":"addVideoCollectionItems","parameters":[{"description":"The ID of the collection to which items should be added","example":"17555176","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"items":[{"id":"10120264"},{"id":"24419024"}]}}},"schema":{"$ref":"#/components/schemas/CollectionItemRequest"}}},"description":"Array of video IDs to add to the collection","required":true},"responses":{"204":{"description":"Successfully added collection items"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Collection not found"}},"security":[{"customer_accessCode":["collections.edit"]}],"summary":"Add videos to collections","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"items\": [\n    {\n      \"id\": \"10120264\"\n    },\n    {\n      \"id\": \"24419024\"\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/videos/collections/17555176/items\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\""},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst collectionId = \"17555176\"; // Collection ID\n\n// Array of videos to add\nconst body = {\n  \"items\": [\n    {\n      \"id\": \"10120264\",\n      \"media_type\": \"video\"\n    }\n  ]\n};\n\nvideosApi.addImageCollectionItems(collectionId, body)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"17555176\"; // Collection ID\n\nconst addVideoBody = {\n  \"id\": collectionId,\n  \"body\": {\n    \"items\": [\n      {\n        \"id\": \"10120264\",\n        \"media_type\": \"video\",\n      },\n    ],\n  },\n};\n\nsstk.videos.addVideoCollectionItems(addVideoBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst collectionId = \"17555176\"; // Collection ID\n\nconst addVideoBody: VideosApiMethodsParams[\"addVideoCollectionItems\"] = {\n  \"id\": collectionId,\n  \"body\": {\n    \"items\": [\n      {\n        \"id\": \"10120264\",\n        \"media_type\": \"video\",\n      },\n    ],\n  },\n};\n\nsstk.videos.addVideoCollectionItems(addVideoBody)\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"items\" => [\n    [\n      \"id\" => \"10120264\"\n    ],\n    [\n      \"id\" => \"24419024\"\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/collections/17555176/items\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"items\": [\n    {\n      \"id\": \"10120264\"\n    },\n    {\n      \"id\": \"24419024\"\n    }\n  ]\n}' > data.json\n\nshutterstock videos add-video-collection-items 17555176 data.json\n"}]}},"/v2/videos/licenses":{"get":{"description":"This endpoint lists existing licenses.","operationId":"getVideoLicenseList","parameters":[{"description":"Show licenses for the specified video ID","example":"12345678","in":"query","name":"video_id","schema":{"pattern":"^[1-9]\\d*$","type":"string","x-pattern-description":"A number that does not start with 0"}},{"description":"Show videos that are available with the specified license, such as `standard` or `enhanced`; prepending a `-` sign excludes results from that license","example":"standard","in":"query","name":"license","schema":{"pattern":"^.+$","type":"string","x-pattern-description":"Minimum 1 character"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":200,"minimum":1,"type":"integer"}},{"description":"Sort by oldest or newest videos first","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}},{"description":"Filter licenses by username of licensee","example":"aUniqueUsername","in":"query","name":"username","schema":{"type":"string"}},{"description":"Show licenses created on or after the specified date","example":"2025-04-15T13:52:09.812Z","in":"query","name":"start_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"end_date","relationship":"<="}]},{"description":"Show licenses created before the specified date","example":"2025-04-15T13:52:09.812Z","in":"query","name":"end_date","schema":{"format":"date-time","type":"string"},"x-relationships":[{"in":"query","name":"start_date","relationship":">"}]},{"description":"Filter licenses by download availability","in":"query","name":"download_availability","schema":{"default":"all","enum":["all","downloadable","non_downloadable"],"type":"string"}},{"description":"Set to true to see license history for all members of your team.","in":"query","name":"team_history","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"data":[{"download_time":"2025-04-15T13:52:09.812Z","id":"e121","is_downloadable":true,"license":"footage_premier","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"subscription_id":"s12345678","user":{"username":"myusername"},"video":{"format":{"size":"sd"},"id":"2140697"}}],"page":1,"per_page":20}}},"schema":{"$ref":"#/components/schemas/DownloadHistoryDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"List video licenses","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/videos/licenses\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  -G \\\n  --data-urlencode \"start_date=2016-10-03T01:25:13.521Z\" \\\n  --data-urlencode \"end_date=2016-10-04T13:25:13.521Z\" \\\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst queryParams = {\n  \"start_date\": \"2016-10-03T01:25:13.521Z\",\n  \"end_date\": \"2016-10-04T13:25:13.521Z\"\n};\n\nvideosApi.getVideoLicenseList(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams = {\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.images.getImageLicenseList(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst today = new Date();\nconst lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\n\nconst queryParams: VideosApiMethodsParams[\"getVideoLicenseList\"] = {\n  \"start_date\": lastWeek,\n  \"end_date\": today,\n};\n\nsstk.images.getImageLicenseList(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"start_date\" => \"2016-10-03T01:25:13.521Z\",\n  \"end_date\" => \"2016-10-04T13:25:13.521Z\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/licenses\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock videos get-video-license-list \\\n  --start-date \"2021-01-03T01:25:13.521Z\" \\\n  --end-date \"2021-05-04T13:25:13.521Z\"\n"}]},"post":{"description":"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":"licenseVideos","parameters":[{"description":"The subscription ID to use for licensing","example":"s12345678","in":"query","name":"subscription_id","schema":{"type":"string"}},{"description":"The size of the video to license","in":"query","name":"size","schema":{"default":"web","enum":["web","sd","hd","4k"],"type":"string"}},{"description":"The Search ID that led to this licensing event","in":"query","name":"search_id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"default":{"value":{"$ref":"#/components/schemas/LicenseVideoRequest/example"}}},"schema":{"$ref":"#/components/schemas/LicenseVideoRequest"}}},"description":"List of videos to request licenses for and information about each license transaction; these values override the defaults in the query parameters","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/LicenseVideoResultDataList/example"}}},"schema":{"$ref":"#/components/schemas/LicenseVideoResultDataList"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.create","purchases.view"]}],"summary":"License videos","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"DATA='{\n  \"videos\": [\n    {\n      \"video_id\": \"2140697\",\n      \"subscription_id\": \"s12345678\",\n      \"size\": \"hd\"\n    },\n    {\n      \"video_id\": \"5613314\",\n      \"subscription_id\": \"s12345678\",\n      \"size\": \"4k\"\n    }\n  ]\n}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/videos/licenses\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst body = {\n  \"videos\": [\n    {\n      \"subscription_id\": \"s12345678\",\n      \"video_id\": \"419235589\"\n    },\n    {\n      \"subscription_id\": \"s12345678\",\n      \"video_id\": \"1079756147\"\n    }\n  ]\n};\n\nvideosApi.licenseVideos(body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams = {\n  \"body\": {\n    \"videos\": [\n      {\n        \"subscription_id\": \"s12345678\",\n        \"video_id\": \"419235589\",\n        \"size\": \"hd\",\n      },\n      {\n        \"subscription_id\": \"s12345678\",\n        \"video_id\": \"1079756147\",\n        \"size\": \"hd\",\n      },\n    ],\n  },\n};\n\nsstk.videos.licenseVideos(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { LicenseVideoSizeEnum } from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseParams: VideosApiMethodsParams[\"licenseVideos\"] = {\n  \"body\": {\n    \"videos\": [\n      {\n        \"subscription_id\": \"s12345678\",\n        \"video_id\": \"419235589\",\n        \"size\": LicenseVideoSizeEnum.Hd,\n      },\n      {\n        \"subscription_id\": \"s12345678\",\n        \"video_id\": \"1079756147\",\n        \"size\": LicenseVideoSizeEnum.Hd,\n      },\n    ],\n  },\n};\n\nsstk.videos.licenseVideos(licenseParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [\n  \"videos\" => [\n    [\n      \"video_id\" => \"2140697\",\n      \"subscription_id\" => \"s12345678\",\n      \"size\" => \"hd\"\n    ],\n    [\n      \"video_id\" => \"5613314\",\n      \"subscription_id\" => \"s12345678\",\n      \"size\" => \"4k\"\n    ]\n  ]\n];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/licenses\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{\n  \"videos\": [\n    {\n      \"video_id\": \"2140697\",\n      \"subscription_id\": \"s12345678\",\n      \"size\": \"hd\"\n    },\n    {\n      \"video_id\": \"5613314\",\n      \"subscription_id\": \"s12345678\",\n      \"size\": \"4k\"\n    }\n  ]\n}' > data.json\n\nshutterstock videos license-videos \\\n  data.json\n"}]}},"/v2/videos/licenses/{id}/downloads":{"post":{"description":"This endpoint redownloads videos that you have already received a license for.","operationId":"downloadVideos","parameters":[{"description":"The license ID of the item to (re)download. The download links in the response are valid for 8 hours.","example":"e123","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"$ref":"#/components/schemas/RedownloadVideo/example"},"schema":{"$ref":"#/components/schemas/RedownloadVideo"}}},"description":"Information about the videos to redownload","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"url":"https://download1.shutterstock.com/gatekeeper/W3siZSI6MTUzMzMzMzUzMCwiayI6InZpZGVvLzM5NjU4ODEvaGQubW92IiwibSI6MSwiZCI6InNodXR0ZXJzdG9jay1tZWRpYSJ9LCJjZ2lvRU14T09hNWZGTHZsN21iTWVPRVQ3MFEiXQ/shutterstock_v3965881.mov"}}},"schema":{"$ref":"#/components/schemas/Url"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"customer_accessCode":["licenses.view"]}],"summary":"Download videos","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"DATA='{}'\n\ncurl -X POST \"https://api.shutterstock.com/v2/videos/licenses/e123/downloads\" \\\n  -d \"$DATA\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst licenseId = \"e123\";\n\nconst body = {};\n\nvideosApi.downloadVideos(licenseId, body)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseId = \"e123\"; // license ID, not video ID\n\nconst queryParams = {\n  \"id\": licenseId,\n  \"body\": {\n    \"size\": \"hd\",\n  },\n};\n\nsstk.videos.downloadVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data.url);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock, { RedownloadVideoSizeEnum } from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst licenseId = \"e123\"; // license ID, not video ID\n\nconst queryParams: VideosApiMethodsParams[\"downloadVideos\"] = {\n  \"id\": licenseId,\n  \"body\": {\n    \"size\": RedownloadVideoSizeEnum.Hd,\n  },\n};\n\nsstk.videos.downloadVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data.url);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$body = [];\n$encodedBody = json_encode($body);\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/licenses/e123/downloads\",\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n  CURLOPT_POSTFIELDS => $encodedBody,\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\",\n    \"Content-Type: application/json\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\necho '{}' > data.json\n\nshutterstock videos download-videos e123 data.json\n"}]}},"/v2/videos/search":{"get":{"description":"This endpoint searches for videos. If you specify more than one search parameter, the API uses an AND condition. Array parameters can be specified multiple times; in this case, the API uses an AND or an OR condition with those values, depending on the parameter. You can also filter search terms out in the `query` parameter by prefixing the term with NOT.","operationId":"searchVideos","parameters":[{"description":"Show videos added on the specified date","example":"2025-04-15T13:52:09.812Z","in":"query","name":"added_date","schema":{"format":"date","type":"string"}},{"description":"Show videos added on or after the specified date","example":"2025-04-15T13:52:09.812Z","in":"query","name":"added_date_start","schema":{"format":"date","type":"string"}},{"description":"Show videos added before the specified date","example":"2025-04-15T13:52:09.812Z","in":"query","name":"added_date_end","schema":{"format":"date","type":"string"}},{"description":"Show videos with the specified aspect ratio","example":43,"in":"query","name":"aspect_ratio","schema":{"enum":[43,169,"nonstandard"],"type":"string"}},{"description":"Show videos with the specified Shutterstock-defined category; specify a category name or ID","in":"query","name":"category","schema":{"type":"string"}},{"description":"Show videos with the specified artist names or IDs","example":"[12345678]","in":"query","name":"contributor","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Show videos from contributors in one or more specified countries","example":"US","in":"query","name":"contributor_country","schema":{"items":{"format":"country-code-2","type":"string"},"type":"array"}},{"deprecated":true,"description":"(Deprecated; use duration_from and duration_to instead) Show videos with the specified duration in seconds","in":"query","name":"duration","schema":{"type":"integer"}},{"description":"Show videos with the specified duration or longer in seconds","example":60,"in":"query","name":"duration_from","schema":{"type":"integer"}},{"description":"Show videos with the specified duration or shorter in seconds","example":180,"in":"query","name":"duration_to","schema":{"type":"integer"}},{"deprecated":true,"description":"(Deprecated; use fps_from and fps_to instead) Show videos with the specified frames per second","in":"query","name":"fps","schema":{"type":"number"}},{"description":"Show videos with the specified frames per second or more","example":24,"in":"query","name":"fps_from","schema":{"type":"number"}},{"description":"Show videos with the specified frames per second or fewer","example":60,"in":"query","name":"fps_to","schema":{"type":"number"}},{"description":"Hide results with potentially unsafe keywords","in":"query","name":"keyword_safe_search","schema":{"default":true,"type":"boolean"}},{"description":"Set query and result language (uses Accept-Language header if not set)","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Show only videos with the specified license or licenses","example":["commercial","editorial"],"explode":true,"in":"query","name":"license","schema":{"items":{"default":"commercial","enum":["commercial","editorial"],"type":"string"},"type":"array"}},{"description":"Show videos with each of the specified models","example":["442583","434750"],"explode":true,"in":"query","name":"model","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":0,"type":"integer"}},{"description":"Show videos that feature people of the specified age range","example":"20s","in":"query","name":"people_age","schema":{"enum":["infants","children","teenagers","20s","30s","40s","50s","60s","older"],"type":"string"}},{"description":"Show videos with people of the specified ethnicities","example":"hispanic","in":"query","name":"people_ethnicity","schema":{"items":{"enum":["african","african_american","black","brazilian","chinese","caucasian","east_asian","hispanic","japanese","middle_eastern","native_american","pacific_islander","south_asian","southeast_asian","other"],"type":"string"},"type":"array"}},{"description":"Show videos with people with the specified gender","example":"female","in":"query","name":"people_gender","schema":{"enum":["male","female","both"],"type":"string"}},{"description":"Show videos with the specified number of people","example":2,"in":"query","name":"people_number","schema":{"maximum":4,"minimum":0,"type":"integer"}},{"description":"Show only videos of people with a signed model release","example":true,"in":"query","name":"people_model_released","schema":{"type":"boolean"}},{"description":"One or more search terms separated by spaces; you can use NOT to filter out videos that match a term","example":"dogs running on the beach","in":"query","name":"query","schema":{"type":"string"}},{"description":"Show videos with the specified resolution","example":"4k","in":"query","name":"resolution","schema":{"enum":["4k","standard_definition","high_definition"],"type":"string"}},{"description":"Enable or disable safe search","in":"query","name":"safe","schema":{"default":true,"type":"boolean"}},{"description":"Sort by one of these categories","in":"query","name":"sort","schema":{"default":"popular","enum":["newest","popular","relevance","random"],"type":"string"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/VideoSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/VideoSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Search for videos","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/videos/search\" \\\n  --header \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"query=hot air balloon\" \\\n  --data-urlencode \"duration_from=30\" \\\n  --data-urlencode \"sort=popular\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst queryParams = {\n  \"query\": \"hot air balloon\",\n  \"duration_from\": 30,\n  \"sort\": \"popular\"\n};\n\nvideosApi.searchVideos(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"query\": \"hot air balloon\",\n  \"duration_from\": 30,\n  \"sort\": \"popular\",\n};\n\nsstk.videos.searchVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: VideosApiMethodsParams[\"searchVideos\"] = {\n  \"query\": \"hot air balloon\",\n  \"duration_from\": 30,\n  \"sort\": \"popular\",\n};\n\nsstk.videos.searchVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"query\" => \"hot air balloon\",\n  \"duration_from\" => 30,\n  \"sort\" => \"popular\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/search?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock videos search-videos \\\n  --query \"hot air balloon\" \\\n  --duration-from 30 \\\n  --sort popular\n"}]}},"/v2/videos/search/suggestions":{"get":{"description":"This endpoint provides autocomplete suggestions for partial search terms.","operationId":"getVideoSuggestions","parameters":[{"description":"Search term for which you want keyword suggestions","example":"cats","in":"query","name":"query","required":true,"schema":{"type":"string"}},{"description":"Limit the number of the suggestions","in":"query","name":"limit","schema":{"default":10,"maximum":25,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Suggestions/example"}}},"schema":{"$ref":"#/components/schemas/Suggestions"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get suggestions for a search term","tags":["videos"]}},"/v2/videos/updated":{"get":{"description":"This endpoint lists videos that have been updated in the specified time period to update content management systems (CMS) or digital asset management (DAM) systems. In most cases, use the `interval` parameter to show videos that were updated recently, but you can also use the `start_date` and `end_date` parameters to specify a range of no more than three days. Do not use the `interval` parameter with either `start_date` or `end_date`.","operationId":"getUpdatedVideos","parameters":[{"description":"Show videos updated on or after the specified date","example":"2025-04-15T13:52:09.813Z","in":"query","name":"start_date","schema":{"format":"date","type":"string"}},{"description":"Show videos updated before the specified date","example":"2025-04-15T13:52:09.813Z","in":"query","name":"end_date","schema":{"format":"date","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 HOUR, which shows videos that were updated in the hour preceding the request","in":"query","name":"interval","schema":{"default":"1 HOUR","type":"string"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":100,"maximum":2000,"minimum":1,"type":"integer"}},{"description":"Sort by oldest or newest videos first","in":"query","name":"sort","schema":{"default":"newest","enum":["newest","oldest"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/UpdatedMediaDataList/example"}}},"schema":{"$ref":"#/components/schemas/UpdatedMediaDataList"}}},"description":"OK"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List updated videos","tags":["videos"],"x-code-samples":[{"lang":"shell","source":"curl -X GET \"https://api.shutterstock.com/v2/videos/updated \"\\\n  -H \"Accept: application/json\" \\\n  -H \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\" \\\n  -G \\\n  --data-urlencode \"interval=30 MINUTE\"\n"},{"lang":"javascript_v1--nodejs","source":"const sstk = require(\"shutterstock-api\");\n\nsstk.setAccessToken(process.env.SHUTTERSTOCK_API_TOKEN);\n\nconst videosApi = new sstk.VideosApi();\n\nconst queryParams = {\n  \"interval\": \"30 MINUTE\"\n};\n\nvideosApi.getUpdatedVideos(queryParams)\n  .then((data) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"javascript_v2--nodejs","source":"const Shutterstock = require(\"shutterstock-api\");\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams = {\n  \"interval\": \"30 MINUTE\",\n};\n\nsstk.videos.getUpdatedVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: VideosApiMethodsParams[\"getUpdatedVideos\"] = {\n  \"interval\": \"30 MINUTE\",\n};\n\nsstk.videos.getUpdatedVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });\n"},{"lang":"php","source":"$queryFields = [\n  \"interval\" => \"30 MINUTE\"\n];\n\n$options = [\n  CURLOPT_URL => \"https://api.shutterstock.com/v2/videos/updated?\" . http_build_query($queryFields),\n  CURLOPT_USERAGENT => \"php/curl\",\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer $SHUTTERSTOCK_API_TOKEN\"\n  ],\n  CURLOPT_RETURNTRANSFER => 1\n];\n\n$handle = curl_init();\ncurl_setopt_array($handle, $options);\n$response = curl_exec($handle);\ncurl_close($handle);\n\n$decodedResponse = json_decode($response);\nprint_r($decodedResponse);\n"},{"lang":"bash","source":"export SHUTTERSTOCK_API_TOKEN=\"v2/ODYwYmRlNzBiYjMzNTE2M2UyZTQvMTc4NzI2OTM4L2N1c3RvbWVyLzIvWEtXR01HQ1FaVHRLOG85a\"\n\nshutterstock videos get-updated-videos \\\n  --interval \"30 MINUTE\"\n"}]}},"/v2/videos/{id}":{"get":{"description":"This endpoint shows information about a video, including URLs to previews and the sizes that it is available in.","operationId":"getVideo","parameters":[{"description":"Video ID","example":"639703","in":"path","name":"id","required":true,"schema":{"format":"asset-id","type":"string"}},{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"full","enum":["minimal","full"],"type":"string"}},{"description":"The ID of the search that is related to this request","example":"00000000-0000-0000-0000-000000000000","in":"query","name":"search_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/Video/example"}}},"schema":{"$ref":"#/components/schemas/Video"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not found"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"Get details about videos","tags":["videos"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: VideosApiMethodsParams[\"getVideo\"] = {\n  \"id\": \"639703\",\n};\n\nsstk.videos.getVideo(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}},"/v2/videos/{id}/similar":{"get":{"description":"This endpoint searches for videos that are similar to a video that you specify.","operationId":"findSimilarVideos","parameters":[{"description":"The ID of a video for which similar videos should be returned","example":"2140697","in":"path","name":"id","required":true,"schema":{"format":"asset-id","type":"string"}},{"description":"Language for the keywords and categories in the response","example":"es","in":"query","name":"language","schema":{"$ref":"#/components/schemas/Language"}},{"description":"Page number","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"description":"Number of results per page","in":"query","name":"per_page","schema":{"default":20,"maximum":500,"minimum":1,"type":"integer"}},{"description":"Amount of detail to render in the response","in":"query","name":"view","schema":{"default":"minimal","enum":["minimal","full"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"$ref":"#/components/schemas/VideoSearchResults/example"}}},"schema":{"$ref":"#/components/schemas/VideoSearchResults"}}},"description":"OK"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"basic":[]},{"customer_accessCode":[]}],"summary":"List similar videos","tags":["videos"],"x-code-samples":[{"lang":"typescript_v2--nodejs","source":"import Shutterstock from \"shutterstock-api\";\nimport type { VideosApiMethodsParams } from \"shutterstock-api\";\n\nconst sstk = new Shutterstock({\n  \"accessToken\": process.env.SHUTTERSTOCK_API_TOKEN,\n});\n\nconst queryParams: VideosApiMethodsParams[\"findSimilarVideos\"] = {\n  \"id\": \"2140697\",\n};\n\nsstk.videos.findSimilarVideos(queryParams)\n  .then(({ data }) => {\n    console.log(data);\n  })\n  .catch((error) => {\n    console.error(error);\n  });"}]}}},"components":{"schemas":{"AccessTokenDetails":{"description":"Access token details that are currently associated with this user","example":{"client_id":"c456b-26230-fa8ed-d19ab-05ce2-bf0aa","customer_id":"123456789","expires_in":3600,"realm":"customer","scopes":["collections.edit","collections.view","licenses.create","licenses.view","purchases.view","user.view"],"user_id":"123456789","username":"jdoe"},"properties":{"client_id":{"description":"Client ID that is associated with the user","type":"string"},"contributor_id":{"description":"Contributor ID that is associated with the user","type":"string"},"customer_id":{"description":"Customer ID that is associated with the user","type":"string"},"expires_in":{"description":"Number of seconds until the access token expires; no expiration if this value is null","type":"integer"},"organization_id":{"description":"Organization ID that is associated with the user","type":"string"},"realm":{"description":"Type of access token","enum":["customer","contributor"],"type":"string"},"scopes":{"description":"Scopes that this access token provides when used as authentication","items":{"type":"string"},"type":"array"},"user_id":{"description":"User ID that is associated with the user","type":"string"},"username":{"description":"User name that is associated with the user","type":"string"}},"type":"object"},"Album":{"additionalProperties":false,"description":"Album metadata","example":{"id":"1234567","title":"Happy Music"},"properties":{"id":{"description":"The album ID","type":"string"},"title":{"description":"The album title","type":"string"}},"required":["id","title"],"type":"object"},"Allotment":{"description":"An allotment of credits as part of a subscription","example":{"downloads_left":5,"downloads_limit":10,"end_time":"2025-04-15T13:52:09.813Z","start_time":"2025-04-15T13:52:09.813Z"},"properties":{"downloads_left":{"description":"Number of credits remaining in the subscription","type":"integer"},"downloads_limit":{"description":"Total number of credits available to this subscription","type":"integer"},"end_time":{"description":"Date the subscription ends","format":"date-time","type":"string"},"start_time":{"description":"Date the subscription started","format":"date-time","type":"string"}},"type":"object"},"Artist":{"description":"Metadata about the artist that created the media","example":{"name":"The Happy Tunes Band"},"properties":{"name":{"description":"The artist's name","type":"string"}},"required":["name"],"type":"object"},"Audio":{"description":"Audio metadata","example":{"added_date":"2025-04-15T13:52:09.813Z","artists":[{"name":"Klimenko Music"}],"assets":{"clean_audio":{"file_size":35188408},"preview_mp3":{"file_size":4400203,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3"},"preview_ogg":{"file_size":4453197,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.ogg"},"waveform":{"file_size":18778,"url":"https://ak.picdn.net/shutterstock/audio/442583/waveform/waveform.png"}},"bpm":110,"contributor":{"id":"2847971"},"description":"Pulsing and feel-good, featuring soaring synthesizer, groovy synth bass drums and synth drums that create a euphoric, upbeat mood.","duration":183,"genres":["Dance/Electronic","Electro Pop","Pop/Rock"],"id":"442583","instruments":["Piano","Synth bass","Synth drums","Synthesizer"],"is_adult":false,"is_instrumental":true,"isrc":"","keywords":["celebratory","chic","euphoric","good times","hip","optimistic","party","soaring","upbeat"],"language":"en","lyrics":"","media_type":"audio","moods":["Bright","Confident","Fun","Happy","Inspiring","Optimistic","Playful","Sophisticated","Stylish","Uplifting"],"published_time":"2025-04-15T13:52:09.813Z","recording_version":"","releases":[],"similar_artists":[],"title":"Another Tomorrow","updated_time":"2025-04-15T13:52:09.813Z","url":"","vocal_description":""},"properties":{"added_date":{"description":"Date this track was added to the Shutterstock library","format":"date","type":"string"},"affiliate_url":{"description":"Affiliate referral link; appears only for registered affiliate partners","type":"string"},"album":{"$ref":"#/components/schemas/Album"},"artists":{"description":"List of artists","items":{"$ref":"#/components/schemas/Artist"},"type":"array"},"assets":{"$ref":"#/components/schemas/AudioAssets"},"bpm":{"description":"BPM (beats per minute) of this track","type":"integer"},"contributor":{"$ref":"#/components/schemas/Contributor"},"deleted_time":{"format":"date-time","type":"string"},"description":{"description":"Description of this track","type":"string"},"duration":{"description":"Duration of this track in seconds","type":"number"},"genres":{"description":"List of all genres for this track","items":{"description":"Genre that is associated with this track","type":"string"},"type":"array"},"id":{"description":"Shutterstock ID of this track","type":"string"},"instruments":{"description":"List of all instruments that appear in this track","items":{"description":"Instrument that appears in this track","type":"string"},"type":"array"},"is_adult":{"description":"Whether or not this track contains adult content","type":"boolean"},"is_instrumental":{"description":"Whether or not this track is purely instrumental (lacking lyrics)","type":"boolean"},"isrc":{"description":"","type":"string"},"keywords":{"description":"List of all keywords for this track","items":{"description":"Keyword for this track","type":"string"},"type":"array"},"language":{"description":"Language of this track's lyrics","type":"string"},"lyrics":{"description":"Lyrics of this track","type":"string"},"media_type":{"description":"Media type of this track; should always be \"audio\"","type":"string"},"model_releases":{"description":"List of all model releases for this track","items":{"$ref":"#/components/schemas/ModelRelease"},"type":"array"},"moods":{"description":"List of all moods of this track","items":{"description":"Mood of this track","type":"string"},"type":"array"},"published_time":{"description":"Time this track was published","format":"date-time","type":"string"},"recording_version":{"description":"Recording version of this track","type":"string"},"releases":{"description":"List of all releases of this track","items":{"description":"Release of this track","type":"string"},"type":"array"},"similar_artists":{"description":"List of all similar artists of this track","items":{"$ref":"#/components/schemas/Artist"},"type":"array"},"submitted_time":{"description":"Time this track was submitted","format":"date-time","type":"string"},"title":{"description":"Title of this track","type":"string"},"updated_time":{"description":"Time this track was last updated","format":"date-time","type":"string"},"url":{"description":"","type":"string"},"vocal_description":{"description":"Vocal description of this track","type":"string"}},"required":["id","media_type","contributor"],"type":"object"},"AudioAssetDetails":{"description":"Information about a file that is part of an audio asset","example":{"file_size":4453197,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3"},"properties":{"file_size":{"description":"File size of the track","type":"integer"},"url":{"description":"URL the track is available at","type":"string"}},"type":"object"},"AudioAssets":{"description":"Files that are available as part of an audio asset","example":{"clean_audio":{"file_size":35188408},"preview_mp3":{"file_size":4400203,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3"},"preview_ogg":{"file_size":4453197,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.ogg"},"waveform":{"file_size":18778,"url":"https://ak.picdn.net/shutterstock/audio/442583/waveform/waveform.png"}},"properties":{"album_art":{"$ref":"#/components/schemas/AudioAssetDetails"},"clean_audio":{"$ref":"#/components/schemas/AudioAssetDetails"},"original_audio":{"$ref":"#/components/schemas/AudioAssetDetails"},"preview_mp3":{"$ref":"#/components/schemas/AudioAssetDetails"},"preview_ogg":{"$ref":"#/components/schemas/AudioAssetDetails"},"shorts_loops_stems":{"$ref":"#/components/schemas/ShortsLoopsStems"},"waveform":{"$ref":"#/components/schemas/AudioAssetDetails"}},"type":"object"},"AudioDataList":{"description":"List of tracks","example":{"data":[{"added_date":"2025-04-15T13:52:09.813Z","artists":[{"name":"Fin Productions"}],"assets":{"clean_audio":{"file_size":30760372},"preview_mp3":{"file_size":3846606,"url":"https://ak.picdn.net/shutterstock/audio/434750/preview/preview.mp3"},"preview_ogg":{"file_size":4402608,"url":"https://ak.picdn.net/shutterstock/audio/434750/preview/preview.ogg"},"waveform":{"file_size":19822,"url":"https://ak.picdn.net/shutterstock/audio/434750/waveform/waveform.png"}},"bpm":100,"contributor":{"id":"2847971"},"description":"Pulsing and feel-good, featuring slick electric guitar, synthesizer, bass, electronic drum pads and drums that create a positive, celebratory mood.","duration":160,"genres":["Dance/Electronic","Electro Pop","Pop/Rock"],"id":"434750","instruments":["Bass","Drums","Electric guitar","Pads","Percussion","Synthesizer"],"is_adult":false,"is_instrumental":true,"isrc":"","keywords":["breezy","celebration","festive","good times","hopeful","optimistic","party","positive","reflective"],"language":"en","lyrics":"","media_type":"audio","moods":["Bright","Confident","Fun","Happy","Inspiring","Optimistic","Playful","Sophisticated","Stylish","Uplifting"],"published_time":"2025-04-15T13:52:09.813Z","recording_version":"","releases":[],"similar_artists":[],"title":"Fresh Love","updated_time":"2025-04-15T13:52:09.813Z","vocal_description":""}]},"properties":{"data":{"description":"Tracks","items":{"$ref":"#/components/schemas/Audio"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"AudioRenderResult":{"description":"The output of an audio render in WAV or MP3 format","example":{"created_date":"2025-04-15T13:52:09.813Z","files":[],"id":"2yZp13IhLqnjfh2KquDTOHUHzTiP","preset":"MASTER_MP3","progress_percent":0,"status":"WAITING_COMPOSE","timeline":{},"updated_date":"2025-04-15T13:52:09.813Z"},"properties":{"created_date":{"description":"The time the render was submitted to the API","format":"date-time","type":"string"},"files":{"description":"The files associated with the render","items":{"$ref":"#/components/schemas/AudioRendersFilesList"},"type":"array"},"id":{"description":"The alphanumeric ID of the simple render","type":"string"},"preset":{"description":"The file format preset","enum":["MASTER_MP3","MASTER_WAV","STEMS_WAV"],"type":"string"},"progress_percent":{"description":"The current progress of the render as a percentage","type":"integer"},"status":{"description":"A coarse progress indicator","enum":["WAITING_COMPOSE","RUNNING_COMPOSE","WAITING_RENDER","RUNNING_RENDER","CREATED","FAILED_CREATE"],"type":"string"},"timeline":{"$ref":"#/components/schemas/AudioRenderTimeline"},"updated_date":{"description":"The time that the audio output was uploaded","format":"date-time","type":"string"}},"required":["id","timeline","status"],"type":"object"},"AudioRenderTimeline":{"description":"A timeline object that represents either a request for music to be created or an entire music composition","example":{"spans":[{"id":123456,"instrument_groups":[{"instrument_group":"The instrument ID","statuses":[{"beat":12,"status":"active"}]}],"regions":[{"beat":12,"descriptor":"The descriptor ID needed to compose the music","end_type":{"beat":12,"event":"ending","type":"ringout"},"id":123456,"key":{"tonic_accidental":"double flat","tonic_note":"c","tonic_quality":"major"},"region":"music"}],"span_type":"metered","tempo":12345,"tempo_changes":[{"tempo":12345,"time":5}],"time":5}]},"properties":{"spans":{"description":"A span object that represents the beginning of a period of absolute time","items":{"$ref":"#/components/schemas/AudioRenderTimelineSpan"},"type":"array"}},"type":"object"},"AudioRenderTimelineSpan":{"description":"The beginning of a non-overlapping period of absolute time","example":{"id":111,"regions":[{"beat":12,"descriptor":"cinematic_minimal_tense","end_type":{"beat":24,"event":"ending","type":"ringout"},"id":222,"key":{"tonic_note":"c","tonic_quality":"major"},"region":"music"}],"span_type":"metered","tempo":76,"time":0},"properties":{"id":{"description":"An identifier which must be unique within the parent span","type":"number"},"instrument_groups":{"description":"An array of instrument_group objects that are used in this span","items":{"$ref":"#/components/schemas/AudioRenderTimelineSpanInstrumentGroup"},"type":"array"},"regions":{"description":"An array of region objects within the span","items":{"$ref":"#/components/schemas/AudioRenderTimelineSpanRegion"},"type":"array"},"span_type":{"description":"Type of span; metered spans represent a pariod of time with music, and unmetered spans denote the end of the prior metered span","enum":["metered","unmetered"],"type":"string"},"tempo":{"description":"The tempo, in beats per minute, at the start of the span; if not provided, the API selects a random tempo","type":"integer"},"tempo_changes":{"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","items":{"$ref":"#/components/schemas/AudioRenderTimelineSpanTempoChanges"},"type":"array"},"time":{"description":"The absolute time, in seconds, at which the span starts","type":"integer"}},"required":["span_type","time"],"type":"object"},"AudioRenderTimelineSpanInstrumentGroup":{"description":"An instrument and the status objects that specify when that instrument plays","example":{"instrument_group":"bright_roomy_kit","statuses":[{"beat":12,"status":"active"}]},"properties":{"instrument_group":{"description":"The instrument ID","type":"string"},"statuses":{"description":"An array of status objects","items":{"$ref":"#/components/schemas/AudioRenderTimelineSpanInstrumentGroupStatus"},"type":"array"}},"required":["instrument_group"],"type":"object"},"AudioRenderTimelineSpanInstrumentGroupStatus":{"description":"The status of an instrument at a specific beat","example":{"beat":12,"status":"active"},"properties":{"beat":{"description":"The beat, relative to the span, at which the status begins","type":"number"},"status":{"description":"Whether the instrument is playing or not","enum":["active","inactive"],"type":"string"}},"required":["beat","status"],"type":"object"},"AudioRenderTimelineSpanRegion":{"description":"A period of music or silence, measured in beats","example":{"beat":12,"descriptor":"cinematic_minimal_tense","end_type":{"beat":24,"event":"ending","type":"ringout"},"id":222,"key":{"tonic_note":"c","tonic_quality":"major"},"region":"music"},"properties":{"beat":{"description":"The beat, relative to the span, at which the region object's music begins","type":"integer"},"descriptor":{"description":"The descriptor ID needed to compose the music","type":"string"},"end_type":{"description":"A high-level description of how a region ends","properties":{"beat":{"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":"number"},"event":{"description":"The type of event","enum":["ending","transition"],"type":"string"},"type":{"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\"","enum":["ringout","cut"],"type":"string"}},"required":["beat","event","type"],"type":"object"},"id":{"description":"An identifier which must be unique within the parent span","type":"number"},"key":{"description":"The key signature active at the beginning of the region","properties":{"tonic_accidental":{"description":"A text representation of the accidental; if this field is specified, the tonic_note field should also be specified","enum":["double flat","flat","natural","sharp","double sharp"],"type":"string"},"tonic_note":{"description":"A text representation of the musical note; if this field is specified, the tonic_accidental field should also be specified","enum":["c","d","e","f","g","a","b"],"type":"string"},"tonic_quality":{"description":"The scale quality; if this field is not specified, the API selects the quality automatically","enum":["major","natural_minor","harmonic_minor","melodic_minor","ionian","dorian","phrygian","lydian","mixolydian","aeolian","locrian"],"example":"major","type":"string"}},"type":"object"},"region":{"description":"The type of region","enum":["music","silence"],"type":"string"}},"required":["id","region","descriptor","beat"],"type":"object"},"AudioRenderTimelineSpanTempoChanges":{"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","example":{"tempo":86,"time":5},"properties":{"tempo":{"description":"The tempo, in beats per minute, active at this time","type":"number"},"time":{"description":"The time, in seconds, at which the tempo exists","type":"number"}},"required":["time","tempo"],"type":"object"},"AudioRendersFilesList":{"description":"Files associated with the render","example":{"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","filename":"My_audio_ai.mp3","frequency_hz":44100,"kbits_second":192,"size_bytes":481556,"tracks":["master"]},"properties":{"bits_sample":{"description":"The bit depth of the audio files in bits/sample","type":"number"},"content_type":{"description":"The content-type of the file","type":"string"},"download_url":{"description":"The internet-accessible URL from which the file can be downloaded. Any redirects encountered when using this URL must be followed","type":"string"},"filename":{"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","type":"string"},"frequency_hz":{"description":"The Sample rate of the audio files in Hertz (Hz)","type":"number"},"kbits_second":{"description":"The data rate of the audio files in kilobits/second","type":"number"},"size_bytes":{"description":"Size of the file in bytes","type":"number"},"tracks":{"description":"An array of track names included in the file","items":{"type":"string"},"type":"array"}},"required":["filename","bits_sample","content_type","download_url","frequency_hz","kbits_second","size_bytes","tracks"],"type":"object"},"AudioRendersListResults":{"description":"Audio render data","example":{"audio_renders":[{"created_date":"2025-04-15T13:52:09.813Z","files":[],"id":"2yZp13IhLqnjfh2KquDTOHUHzTiP","preset":"MASTER_MP3","progress_percent":20,"status":"WAITING_COMPOSE","timeline":{},"updated_date":"2025-04-15T13:52:09.813Z"},{"created_date":"2025-04-15T13:52:09.813Z","files":[{"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","filename":"My_audio_ai.mp3","frequency_hz":44100,"kbits_second":192,"size_bytes":481556,"tracks":["master"]},{"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","filename":"render.json","frequency_hz":42,"kbits_second":0,"size_bytes":4420,"tracks":["master"]}],"id":"QwAgKqXQAzr622KuXYZ25C9WRH3a","preset":"MASTER_MP3","progress_percent":100,"status":"CREATED","timeline":{},"updated_date":"2025-04-15T13:52:09.813Z"}]},"properties":{"audio_renders":{"description":"Audio render results","items":{"$ref":"#/components/schemas/AudioRenderResult"},"type":"array"}},"required":["audio_renders"]},"AudioSearchResults":{"description":"Audio search results","example":{"data":[{"added_date":"2025-04-15T13:52:09.813Z","artists":[{"name":"Klimenko Music"}],"assets":{"clean_audio":{"file_size":35188408},"preview_mp3":{"file_size":4400203,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.mp3"},"preview_ogg":{"file_size":4453197,"url":"https://ak.picdn.net/shutterstock/audio/442583/preview/preview.ogg"},"waveform":{"file_size":18778,"url":"https://ak.picdn.net/shutterstock/audio/442583/waveform/waveform.png"}},"bpm":110,"contributor":{"id":"2847971"},"description":"Pulsing and feel-good, featuring soaring synthesizer, groovy synth bass drums and synth drums that create a euphoric, upbeat mood.","duration":183,"genres":["Dance/Electronic","Electro Pop","Pop/Rock"],"id":"442583","instruments":["Piano","Synth bass","Synth drums","Synthesizer"],"is_adult":false,"is_instrumental":true,"isrc":"","keywords":["celebratory","chic","euphoric","good times","hip","optimistic","party","soaring","upbeat"],"language":"en","lyrics":"","media_type":"audio","moods":["Bright","Confident","Fun","Happy","Inspiring","Optimistic","Playful","Sophisticated","Stylish","Uplifting"],"published_time":"2025-04-15T13:52:09.813Z","recording_version":"","releases":[],"similar_artists":[],"title":"Another Tomorrow","updated_time":"2025-04-15T13:52:09.813Z","url":"","vocal_description":""}],"page":1,"per_page":5,"search_id":"749090bb-2967-4a20-b22e-c800dc845e10","total_count":123455},"properties":{"data":{"description":"List of tracks","items":{"$ref":"#/components/schemas/Audio"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"search_id":{"description":"ID of the search","type":"string"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}},"required":["data","total_count","search_id"],"type":"object"},"AudioUrl":{"description":"Audio License URL object","example":{"$ref":"#/components/schemas/Url/example"},"properties":{"shorts_loops_stems":{"description":"URL that can be used to download the .zip file containing shorts, loops, and stems","type":"string"},"url":{"description":"URL that can be used to download the unwatermarked, licensed asset","type":"string"}},"required":["url"],"type":"object"},"AuthorizeResponse":{"description":"HTML redirect URL that contains the application authorization 'code'","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","type":"string"},"Bands":{"description":"A band that can be used to generate music","example":{"id":"1234567","name":"The Happy Tunes Band"},"properties":{"id":{"description":"The ID of the band","type":"string"},"name":{"description":"The name of the band","type":"string"}},"type":"object"},"BulkImageSearchRequest":{"description":"List of searches","example":[{"license":["editorial"],"query":"cat","sort":"popular"},{"orientation":"horizontal","query":"dog"}],"items":{"$ref":"#/components/schemas/SearchImage"},"maxItems":5,"type":"array"},"BulkImageSearchResults":{"description":"List of search results for each given query","example":{"results":[{"data":[{"aspect":1.5,"assets":{"huge_thumb":{"height":260,"url":"https://image.shutterstock.com/image-photo/cropped-image-woman-gardening-260nw-1572478477.jpg","width":390},"large_thumb":{"height":100,"url":"https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":150},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":450},"preview_1000":{"height":667,"url":"https://ak.picdn.net/shutterstock/photos/1572478477/watermark_1000/1706028c641ea2f443057287c67d9b91/preview_1000-1572478477.jpg","width":1000},"preview_1500":{"height":1000,"url":"https://image.shutterstock.com/z/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":1500},"small_thumb":{"height":67,"url":"https://thumb7.shutterstock.com/thumb_small/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":100}},"contributor":{"id":"250738318"},"description":"cropped image of woman gardening","has_model_release":true,"id":"1572478477","image_type":"photo","media_type":"image"}],"page":1,"per_page":5,"search_id":"749090bb-2967-4a20-b22e-c800dc845e10","spellcheck_info":{},"total_count":45},{"data":[],"page":1,"per_page":5,"search_id":"749090bb-2967-4a20-b22e-c800dc845e11","spellcheck_info":{},"total_count":0}]},"properties":{"bulk_search_id":{"description":"Unique identifier for the search request","type":"string"},"results":{"description":"List of image search results","items":{"$ref":"#/components/schemas/ImageSearchResults"},"type":"array"}},"type":"object"},"CatalogCollection":{"description":"Catalog collection","example":{"cover_asset":{"asset":{"id":"1690105108","name":"Young couple playing tennis at the court","type":"image"},"created_time":"2025-04-15T13:52:09.814Z","id":"123"},"created_time":"2025-04-15T13:52:09.814Z","id":"126351028","name":"My collection","role_assignments":{"collection_id":"126351028","roles":{"editors":[{"email":"userTwo@org.com","id":"987","type":"USER"}],"owners":[{"email":"userOne@org.com","id":"321","type":"USER"}],"viewers":[]}},"total_item_count":2,"updated_time":"2025-04-15T13:52:09.814Z","visibility":"public"},"properties":{"cover_asset":{"$ref":"#/components/schemas/CatalogCollectionItem"},"created_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"role_assignments":{"$ref":"#/components/schemas/CatalogCollectionRoleAssignments"},"total_item_count":{"type":"number"},"updated_time":{"format":"date-time","type":"string"},"visibility":{"enum":["private","public"],"type":"string"}},"required":["id","name","total_item_count","created_time","updated_time","visibility","role_assignments"],"type":"object"},"CatalogCollectionDataList":{"description":"List of catalog collections","example":{"data":[{"cover_asset":{"asset":{"id":"1690105108","name":"Young couple playing tennis at the court","type":"image"},"created_time":"2025-04-15T13:52:09.814Z","id":"123"},"created_time":"2025-04-15T13:52:09.814Z","id":"126351028","name":"My collection","role_assignments":{"collection_id":"126351028","roles":{"editors":[{"email":"userTwo@org.com","id":"987","type":"USER"}],"owners":[{"email":"userOne@org.com","id":"321","type":"USER"}],"viewers":[]}},"total_item_count":2,"updated_time":"2025-04-15T13:52:09.814Z","visibility":"public"}],"page":1,"per_page":20,"total_count":1},"properties":{"data":{"description":"List of catalog collections","items":{"$ref":"#/components/schemas/CatalogCollection"},"type":"array"},"page":{"type":"number"},"per_page":{"type":"number"},"total_count":{"type":"number"}},"required":["page","per_page","total_count","data"],"type":"object"},"CatalogCollectionItem":{"description":"Metadata about an item that is part of a collection","example":{"asset":{"id":"1690105108","name":"Young couple playing tennis at the court","type":"image"},"collection_ids":["126351028"],"created_time":"2025-04-15T13:52:09.814Z","id":"123"},"properties":{"asset":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"enum":["image","video","audio","editorial-image","editorial-video"],"type":"string"}},"required":["type"],"type":"object"},"collection_ids":{"description":"The collection IDs that this asset belongs to","items":{"type":"string"},"type":"array"},"created_time":{"format":"date-time","type":"string"},"id":{"type":"string"}},"required":["id","asset","created_time"],"type":"object"},"CatalogCollectionItemDataList":{"description":"List of catalog collection items","example":{"data":[{"asset":{"id":"1690105108","name":"Young couple playing tennis at the court","type":"image"},"collection_ids":["126351028"],"created_time":"2025-04-15T13:52:09.814Z","id":"123"}],"page":1,"per_page":1,"total_count":82},"properties":{"data":{"description":"List of catalog collection items","items":{"$ref":"#/components/schemas/CatalogCollectionItem"},"type":"array"},"page":{"type":"number"},"per_page":{"type":"number"},"total_count":{"type":"number"}},"required":["page","per_page","total_count","data"],"type":"object"},"CatalogCollectionRole":{"description":"A user that has access to a catalog collection","example":{"email":"user123@org.com","id":"123","type":"USER"},"properties":{"email":{"type":"string"},"id":{"type":"string"},"type":{"enum":["USER"],"type":"string"}},"required":["id","type","email"],"type":"object"},"CatalogCollectionRoleAssignments":{"description":"List of role assignments for a catalog collection","example":{"collection_id":"126351028","roles":{"editors":[{"email":"userTwo@org.com","id":"987","type":"USER"}],"owners":[{"email":"userOne@org.com","id":"321","type":"USER"}],"viewers":[]}},"properties":{"collection_id":{"type":"string"},"roles":{"properties":{"editors":{"items":{"$ref":"#/components/schemas/CatalogCollectionRole"},"type":"array"},"owners":{"items":{"$ref":"#/components/schemas/CatalogCollectionRole"},"type":"array"},"viewers":{"items":{"$ref":"#/components/schemas/CatalogCollectionRole"},"type":"array"}},"type":"object"}},"required":["collection_id","roles"],"type":"object"},"Category":{"description":"Category information","example":{"id":"1","name":"Animals/Wildlife"},"properties":{"id":{"description":"Category ID","type":"string"},"name":{"description":"Category name","type":"string"}},"type":"object"},"CategoryDataList":{"description":"List of categories that images can belong to","example":{"data":[{"id":"1","name":"Animals/Wildlife"},{"id":"11","name":"The Arts"}],"page":1,"per_page":2,"total_count":13},"properties":{"data":{"description":"Categories","items":{"$ref":"#/components/schemas/Category"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"The current page of results","type":"integer"},"per_page":{"description":"The number of results per page","type":"integer"},"total_count":{"description":"The total number of results across all pages","type":"integer"}}},"Collection":{"description":"Metadata about a collection of assets","example":{"cover_item":{"id":"297886754"},"id":"293542904","items_updated_time":"2025-04-15T13:52:09.814Z","name":"My collection","total_item_count":85},"properties":{"cover_item":{"$ref":"#/components/schemas/CollectionItem"},"created_time":{"description":"When the collection was created","format":"date-time","type":"string"},"id":{"description":"The collection ID","type":"string"},"items_updated_time":{"description":"The last time this collection's items were updated","format":"date-time","type":"string"},"name":{"description":"The name of the collection","type":"string"},"share_code":{"description":"A code that can be used to share the collection (optional)","type":"string"},"share_url":{"description":"The browser URL that can be used to share the collection (optional)","type":"string"},"total_item_count":{"description":"The number of items in the collection","type":"integer"},"updated_time":{"description":"The last time the collection was update (other than changes to the items in it)","format":"date-time","type":"string"}},"required":["id","name","total_item_count"],"type":"object"},"CollectionCreateRequest":{"description":"Collection creation request","example":{"name":"Test Collection 19cf"},"properties":{"name":{"description":"The name of the collection","type":"string"}},"required":["name"],"type":"object"},"CollectionCreateResponse":{"description":"Collection creation response","example":{"id":"48433105"},"properties":{"id":{"description":"ID of the new collection","type":"string"}},"required":["id"],"type":"object"},"CollectionDataList":{"description":"List of collections","example":{"data":[{"cover_item":{"id":"297886754"},"id":"293542904","items_updated_time":"2025-04-15T13:52:09.814Z","name":"My collection","total_item_count":85}],"page":1,"per_page":100,"total_count":1},"properties":{"data":{"description":"Collections","items":{"$ref":"#/components/schemas/Collection"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"The current page of results","type":"integer"},"per_page":{"description":"The number of results per page","type":"integer"},"total_count":{"description":"The total number of results across all pages","type":"integer"}}},"CollectionItem":{"description":"Metadata about an item that is part of a collection","example":{"added_time":"2025-04-15T13:52:09.814Z","id":"1690105108","media_type":"image"},"properties":{"added_time":{"description":"The date the item was added to the collection","format":"date-time","type":"string"},"id":{"description":"ID of the item","type":"string"},"media_type":{"description":"The media type of the item, such as image, video, or audio","type":"string"}},"required":["id"],"type":"object"},"CollectionItemDataList":{"description":"List of items in a collection","example":{"data":[{"added_time":"2025-04-15T13:52:09.814Z","id":"1690105108","media_type":"image"},{"added_time":"2025-04-15T13:52:09.814Z","id":"1468703072","media_type":"image"}],"page":1,"per_page":2,"total_count":82},"properties":{"data":{"description":"Assets in the collection","items":{"$ref":"#/components/schemas/CollectionItem"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"The current page of results","type":"integer"},"per_page":{"description":"The number of results per page","type":"integer"},"total_count":{"description":"The total number of results across all pages","type":"integer"}}},"CollectionItemRequest":{"description":"Request to get a list of items in a collection","example":{"items":[{"added_time":"2025-04-15T13:52:09.814Z","id":"1690105108","media_type":"image"}]},"properties":{"items":{"description":"List of items","items":{"$ref":"#/components/schemas/CollectionItem"},"type":"array"}},"required":["items"],"type":"object"},"CollectionUpdateRequest":{"description":"Collection update request","example":{"name":"My collection with a new name"},"properties":{"name":{"description":"The new name of the collection","type":"string"}},"required":["name"],"type":"object"},"ComputerVisionImageCreateResponse":{"description":"Asset upload information","example":{"upload_id":"Udb14e1c3540bdbf82b4b3fe12d3a44f2"},"properties":{"upload_id":{"type":"string"}},"required":["upload_id"],"type":"object"},"Contributor":{"description":"Information about a contributor","example":{"id":"12345678"},"properties":{"id":{"description":"ID of the contributor","type":"string"}},"required":["id"],"type":"object"},"ContributorProfile":{"description":"Contributor profile data","example":{"about":"John Doe's photographs","contributor_type":["photographer"],"display_name":"John Doe","equipment":["Nikon","Fuji"],"id":"12345678","location":"US","portfolio_url":"https://www.shutterstock.com/g/jdoe","social_media":{"facebook":"http://example.com/jdoe","google_plus":"http://example.com/jdoe","linkedin":"http://example.com/jdoe","pinterest":"http://example.com/jdoe","tumblr":"http://example.com/jdoe","twitter":"http://example.com/jdoe"},"styles":["landscape","nature","footage_travel"],"subjects":["animals","landmarks","nature","objects","recreation"],"website":"http://example.com/profiles/jdoe"},"properties":{"about":{"description":"Short description of the contributors' library","type":"string"},"contributor_type":{"description":"Type of content that the contributor specializes in (photographer, illustrator, etc)","items":{"type":"string"},"type":"array"},"display_name":{"description":"Preferred name to be displayed for the contributor","type":"string"},"equipment":{"description":"List of equipment used by the contributor (Canon EOS 5D Mark II, etc)","items":{"type":"string"},"type":"array"},"id":{"description":"Contributor ID","type":"string"},"location":{"description":"Country code representing the contributor's locale","type":"string"},"portfolio_url":{"description":"Web URL for the contributors' profile","type":"string"},"social_media":{"$ref":"#/components/schemas/ContributorProfileSocialMedia"},"styles":{"description":"List of styles that the contributor specializes in (lifestyle, mixed media, etc)","items":{"type":"string"},"type":"array"},"subjects":{"description":"Generic list of subjects for contributors' work (food_and_drink, holiday, people, etc)","items":{"type":"string"},"type":"array"},"website":{"description":"Personal website for the contributor","type":"string"}},"required":["id"],"type":"object"},"ContributorProfileDataList":{"description":"List of contributor profiles","example":{"data":[{"about":"John Doe's photographs","contributor_type":["photographer"],"display_name":"John Doe","equipment":["Nikon","Fuji"],"id":"12345678","location":"US","portfolio_url":"https://www.shutterstock.com/g/jdoe","social_media":{"facebook":"http://example.com/jdoe","google_plus":"http://example.com/jdoe","linkedin":"http://example.com/jdoe","pinterest":"http://example.com/jdoe","tumblr":"http://example.com/jdoe","twitter":"http://example.com/jdoe"},"styles":["landscape","nature","footage_travel"],"subjects":["animals","landmarks","nature","objects","recreation"],"website":"http://example.com/profiles/jdoe"}],"page":1,"per_page":5,"total_count":15},"properties":{"data":{"description":"Conributor profiles","items":{"$ref":"#/components/schemas/ContributorProfile"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Error message","type":"string"},"page":{"description":"Page of response","type":"integer"},"per_page":{"description":"Number of contributors per page","type":"integer"},"total_count":{"description":"Total count of contributors for this request","type":"integer"}}},"ContributorProfileSocialMedia":{"description":"Contributor profile social media links","example":{"facebook":"http://example.com/jdoe","google_plus":"http://example.com/jdoe","linkedin":"http://example.com/jdoe","pinterest":"http://example.com/jdoe","tumblr":"http://example.com/jdoe","twitter":"http://example.com/jdoe"},"properties":{"facebook":{"description":"Facebook link for contributor","type":"string"},"google_plus":{"description":"Google+ link for contributor","type":"string"},"linkedin":{"description":"LinkedIn link for contributor","type":"string"},"pinterest":{"description":"Pinterest page for contributor","type":"string"},"tumblr":{"description":"Tumblr link for contributor","type":"string"},"twitter":{"description":"Twitter link for contributor","type":"string"}},"type":"object"},"Cookie":{"description":"Cookie object","example":{"name":"The name of the cookie","value":"The value of the cookie"},"properties":{"name":{"description":"The name of the cookie","type":"string"},"value":{"description":"The value of the cookie","type":"string"}},"required":["name","value"],"type":"object"},"CreateAudioRender":{"description":"Data required to create an audio render","example":{"filename":"My Project.mp3","preset":"MASTER_MP3","timeline":{"spans":[{"id":111,"instrument_groups":[{"instrument_group":"roomy_kit","statuses":[{"beat":12,"status":"active"}]}],"regions":[{"beat":12,"descriptor":"cinematic_minimal_tense","end_type":{"beat":24,"event":"ending","type":"ringout"},"id":222,"key":{"tonic_note":"c","tonic_quality":"major"},"region":"music"}],"span_type":"metered","tempo":76,"tempo_changes":[{"tempo":86,"time":5}],"time":5},{"span_type":"unmetered","time":20}]}},"properties":{"filename":{"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","example":"My Project.mp3","type":"string"},"preset":{"description":"File format, such as MP3 file, combined WAV file, or individual track WAV files","enum":["MASTER_MP3","MASTER_WAV","STEMS_WAV"],"example":"MASTER_MP3","type":"string"},"timeline":{"$ref":"#/components/schemas/AudioRenderTimeline","description":"The timeline data with which to generate the render"}},"required":["preset","timeline","filename"],"type":"object"},"CreateAudioRendersRequest":{"description":"Render request data","example":{"audio_renders":[{"filename":"My Project.mp3","preset":"MASTER_MP3","timeline":{"spans":[{"id":111,"instrument_groups":[{"instrument_group":"roomy_kit","statuses":[{"beat":12,"status":"active"}]}],"regions":[{"beat":12,"descriptor":"cinematic_minimal_tense","end_type":{"beat":24,"event":"ending","type":"ringout"},"id":222,"key":{"tonic_note":"c","tonic_quality":"major"},"region":"music"}],"span_type":"metered","tempo":76,"tempo_changes":[{"tempo":86,"time":5}],"time":5},{"span_type":"unmetered","time":20}]}}]},"properties":{"audio_renders":{"description":"Parameters to create computer audio renders","items":{"$ref":"#/components/schemas/CreateAudioRender"},"type":"array"}},"required":["audio_renders"],"type":"object"},"CreateCatalogCollection":{"example":{"items":[{"asset":{"id":"1690105108","type":"image"}}],"name":"New Collection","visibility":"public"},"properties":{"items":{"items":{"$ref":"#/components/schemas/CreateCatalogCollectionItem"},"maxItems":50,"type":"array"},"name":{"maxLength":100000,"minLength":1,"type":"string"},"visibility":{"default":"private","enum":["private","public"],"type":"string"}},"required":["name"],"type":"object"},"CreateCatalogCollectionItem":{"example":{"asset":{"id":"1690105108","type":"image"}},"properties":{"asset":{"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["asset"],"type":"object"},"CreateCatalogCollectionItems":{"example":{"items":[{"asset":{"id":"1690105108","type":"image"}}]},"properties":{"items":{"items":{"$ref":"#/components/schemas/CreateCatalogCollectionItem"},"maxItems":50,"minItems":1,"type":"array"}},"required":["items"],"type":"object"},"CustomSizeDimensions":{"description":"A custom height or a custom width to resize the image to, but not both (experimental)","example":{"height":600,"width":800},"properties":{"height":{"description":"Custom height to resize the image to","minimum":100,"type":"integer"},"width":{"description":"Custom width to resize the image to","minimum":100,"type":"integer"}},"type":"object"},"Descriptors":{"description":"Information about a descriptor","example":{"average_render_speed":8.242664029014177,"bands":[{"id":"cinematic_minimal_tense_band_1","name":"Cinematic Minimal Tense Band 1"},{"id":"cinematic_minimal_tense_band_2","name":"Cinematic Minimal Tense Band 2"}],"id":"cinematic_minimal_tense","instruments":[{"id":"blue_synth_pad","name":"Warm Pad - Lush"},{"id":"direct_round_1_synth_bass","name":"Direct Round 1 Synth Bass"},{"id":"direct_crystal_breath_mid_pad","name":"Direct Crystal Breath Mid Pad"}],"max_tempo":76,"min_tempo":58,"name":"Cinematic Minimal Tense","previews":[{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/bands/previews/cinematic_minimal_tense_band_1_v1.mp3"},{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/bands/previews/cinematic_minimal_tense_band_2_v1.mp3"}],"tags":["Tense","Cinematic","Negative","Simple Meter","4/4","Natural Minor","Dorian","Minimal","Adagio","Single Region","Main","Entertainment","Politics","Keys","Mid Pads","Fast","Slow","Slow","Voice","Medium Bright","Non Noisy","Medium Thick","Angelic","Direct","Percussion","Perc FX","Misc","Acoustic Pianos","Grand","Nice","Roomy","Pop","Upright","Clean","Classic","Keyboards","Digital Keyboard","Strings","Synth Basses","Fast","Dark","Thick","Sub","Synth Mallets","Dull","Mid Synth Beds","Slow","None","Medium Noisy","Harsh","Fast","Airy","Long Textures","Ambience","Synth Texture","Ethereal","Set Kicks","Processed","Hubcap Mallet","Wide","Tickie","Airy","Chamber","Thin","Organ","Cello Ensemble","Sweet","Big","Di","Raw","Bright","Tight","Chorus","Buzzy","Huge","Warm","Jazz","Brass","String","Hollow","Woodwind","Breathy","Crystal","Rhodes","Synth Piano","Noisy","Woody","Metallic","Reverse Piano","Full","Foley","Piano","Clean","Delayed","Reverb","Low Passed","Large","Medium","Small"]},"properties":{"average_render_speed":{"description":"The average ratio of the length of the music to the time it takes to render; for example, a render speed of 3.0 generates 30 seconds of music in about 10 seconds","type":"number"},"bands":{"description":"The bands that are available to use this descriptor","items":{"$ref":"#/components/schemas/Bands"},"type":"array"},"id":{"description":"The ID of the descriptor","type":"string"},"instruments":{"description":"The instruments that can play with this descriptor","items":{"$ref":"#/components/schemas/Instruments"},"type":"array"},"max_tempo":{"description":"The maximum beats per minute that the descriptor is intended to be used with","type":"number"},"min_tempo":{"description":"The minimum beats per minute that the descriptor is intended to be used with","type":"number"},"name":{"description":"The name of the descriptor","type":"string"},"previews":{"description":"Preview of the descriptor","items":{"$ref":"#/components/schemas/Preview"},"type":"array"},"tags":{"description":"Tags that describe the descriptor","items":{"type":"string"},"type":"array"}},"type":"object"},"DescriptorsListResult":{"description":"List Descriptors results","example":{"data":[{"average_render_speed":8.242664029014177,"bands":[{"id":"cinematic_minimal_tense_band_1","name":"Cinematic Minimal Tense Band 1"},{"id":"cinematic_minimal_tense_band_2","name":"Cinematic Minimal Tense Band 2"}],"id":"cinematic_minimal_tense","instruments":[{"id":"blue_synth_pad","name":"Warm Pad - Lush"},{"id":"direct_round_1_synth_bass","name":"Direct Round 1 Synth Bass"},{"id":"direct_crystal_breath_mid_pad","name":"Direct Crystal Breath Mid Pad"}],"max_tempo":76,"min_tempo":58,"name":"Cinematic Minimal Tense","previews":[{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/bands/previews/cinematic_minimal_tense_band_1_v1.mp3"},{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/bands/previews/cinematic_minimal_tense_band_2_v1.mp3"}],"tags":["Tense","Cinematic","Negative","Simple Meter","4/4","Natural Minor","Dorian","Minimal","Adagio","Single Region","Main","Entertainment","Politics","Keys","Mid Pads","Fast","Slow","Slow","Voice","Medium Bright","Non Noisy","Medium Thick","Angelic","Direct","Percussion","Perc FX","Misc","Acoustic Pianos","Grand","Nice","Roomy","Pop","Upright","Clean","Classic","Keyboards","Digital Keyboard","Strings","Synth Basses","Fast","Dark","Thick","Sub","Synth Mallets","Dull","Mid Synth Beds","Slow","None","Medium Noisy","Harsh","Fast","Airy","Long Textures","Ambience","Synth Texture","Ethereal","Set Kicks","Processed","Hubcap Mallet","Wide","Tickie","Airy","Chamber","Thin","Organ","Cello Ensemble","Sweet","Big","Di","Raw","Bright","Tight","Chorus","Buzzy","Huge","Warm","Jazz","Brass","String","Hollow","Woodwind","Breathy","Crystal","Rhodes","Synth Piano","Noisy","Woody","Metallic","Reverse Piano","Full","Foley","Piano","Clean","Delayed","Reverb","Low Passed","Large","Medium","Small"]}],"page":1,"per_page":1},"properties":{"data":{"description":"List of descriptors","items":{"$ref":"#/components/schemas/Descriptors"},"type":"array"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"}},"type":"object"},"DownloadHistory":{"description":"Information about a downloaded media item. Applicable for all media types, only one of 'audio', 'image' or 'video' will be in a single DownloadHistory object","example":{"download_time":"2025-04-15T13:52:09.814Z","id":"a24499ca3ccd912a6d8316d45f953ef092","image":{"format":{"size":"medium"},"id":"1234567"},"is_downloadable":true,"license":"standard","subscription_id":"s12345678","user":{"username":"jdoe"}},"properties":{"audio":{"$ref":"#/components/schemas/DownloadHistoryMediaDetails"},"download_time":{"description":"Date the media was downloaded the first time","format":"date-time","type":"string"},"id":{"description":"ID of the download","type":"string"},"image":{"$ref":"#/components/schemas/DownloadHistoryMediaDetails"},"is_downloadable":{"description":"Specifies if the media is downloadable via its respective downloads endpoint","type":"boolean"},"license":{"description":"The name of the license of this download","type":"string"},"metadata":{"description":"The metadata that was passed in the original licensing request","type":"object"},"revshare":{"$ref":"#/components/schemas/DownloadHistoryRevshareDetails"},"subscription_id":{"description":"ID of the subscription used to perform this download","type":"string"},"user":{"$ref":"#/components/schemas/DownloadHistoryUserDetails"},"video":{"$ref":"#/components/schemas/DownloadHistoryMediaDetails"}},"required":["id","download_time","license"],"type":"object"},"DownloadHistoryDataList":{"description":"List of download events","example":{"data":[{"download_time":"2025-04-15T13:52:09.815Z","id":"e1eba3833793e77188d22caae8bac9f2cd","image":{"format":{"size":"original"},"id":"9763363ao"},"is_downloadable":false,"license":"premier_editorial_all_digital","metadata":{"client":"Company A","job":"Important project","other":"Important media","purchase_order":"123456"},"subscription_id":"s12345678","user":{"username":"editorial_test_account_002"}}],"page":1,"per_page":1,"total_count":2890},"properties":{"data":{"description":"Download events","items":{"$ref":"#/components/schemas/DownloadHistory"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"The current page of results","type":"integer"},"per_page":{"description":"The number of results per page","type":"integer"},"total_count":{"description":"The total number of results across all pages","type":"integer"}}},"DownloadHistoryFormatDetails":{"description":"Information about the format of a download","example":{"format":"jpg","size":"medium"},"properties":{"format":{"description":"The format of the downloaded media","type":"string"},"size":{"description":"The size of the downloaded media","type":"string"}},"type":"object"},"DownloadHistoryMediaDetails":{"description":"Information about the downloaded media","example":{"format":{"format":"jpg","size":"medium"},"id":"1234567"},"properties":{"format":{"$ref":"#/components/schemas/DownloadHistoryFormatDetails"},"id":{"description":"ID of the download history media details","type":"string"}},"required":["id"],"type":"object"},"DownloadHistoryRevshareDetails":{"description":"Pricing information for revenue-sharing transactions","example":{"purchase_amount":"8.65","purchase_currency":"USD"},"properties":{"purchase_amount":{"description":"The amount charged for the license","type":"string"},"purchase_currency":{"description":"The currency the amount was charged in","type":"string"}},"required":["purchase_amount","purchase_currency"],"type":"object"},"DownloadHistoryUserDetails":{"description":"Information about a user","example":{"username":"jdoe"},"properties":{"username":{"description":"The name of the user who downloaded the item","type":"string"}},"required":["username"],"type":"object"},"EditorialAssets":{"description":"Asset information, including size and thumbnail URLs","example":{"medium_jpg":{"display_name":"Med","height":617,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3693,"is_licensable":true,"width":5985},"small_jpg":{"display_name":"Small","height":309,"is_licensable":true,"width":500},"thumb_170":{"height":105,"url":"https://editorial01.qa.shuttercorp.net/thumb/10687730b/272a999e/Shutterstock_10687730b.jpg","width":170},"thumb_220":{"height":136,"url":"https://editorial01.qa.shuttercorp.net/thumb-220/10687730b/927a6ebe/Shutterstock_10687730b.jpg","width":220},"watermark_1500":{"height":926,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-1500/10687730b/ee2d7ae1/Shutterstock_10687730b.jpg","width":1500},"watermark_450":{"height":278,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-450/10687730b/ff2443ad/Shutterstock_10687730b.jpg","width":450}},"properties":{"medium_jpg":{"$ref":"#/components/schemas/ImageSizeDetails"},"original":{"$ref":"#/components/schemas/ImageSizeDetails"},"small_jpg":{"$ref":"#/components/schemas/ImageSizeDetails"},"thumb_170":{"$ref":"#/components/schemas/Thumbnail"},"thumb_220":{"$ref":"#/components/schemas/Thumbnail"},"watermark_1500":{"$ref":"#/components/schemas/Thumbnail"},"watermark_450":{"$ref":"#/components/schemas/Thumbnail"}},"type":"object"},"EditorialCategory":{"description":"Name of an editorial category","example":{"name":"Awards"},"properties":{"name":{"type":"string"}},"type":"object"},"EditorialCategoryResults":{"description":"List of editorial categories","example":{"data":[{"name":"Animal"},{"name":"Awards"},{"name":"Art"}]},"properties":{"data":{"description":"List of editorial categories","items":{"$ref":"#/components/schemas/EditorialCategory"},"type":"array"}},"type":"object"},"EditorialContent":{"description":"Metadata about editorial content","example":{"aspect":1.621,"assets":{"medium_jpg":{"display_name":"Med","height":617,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3693,"is_licensable":true,"width":5985},"small_jpg":{"display_name":"Small","height":309,"is_licensable":true,"width":500},"thumb_170":{"height":105,"url":"https://editorial01.qa.shuttercorp.net/thumb/10687730b/272a999e/Shutterstock_10687730b.jpg","width":170},"thumb_220":{"height":136,"url":"https://editorial01.qa.shuttercorp.net/thumb-220/10687730b/927a6ebe/Shutterstock_10687730b.jpg","width":220},"watermark_1500":{"height":926,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-1500/10687730b/ee2d7ae1/Shutterstock_10687730b.jpg","width":1500},"watermark_450":{"height":278,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-450/10687730b/ff2443ad/Shutterstock_10687730b.jpg","width":450}},"byline":"Jon Super/AP/Shutterstock","caption":"","categories":[{"name":"Sport"}],"date_taken":"2025-04-15T13:52:09.815Z","description":"Security and stewards stand outside the Old Trafford stadium in Manchester, England, ahead of the English Premier League soccer match between Manchester United and Leicester City. This is the first Manchester United home match since fans protested against American owner Joel Glazer, forcing the postponement of the team's Premier League game against Liverpool. The protests prompted Glazer to publish a letter in which he pledged to accelerate discussions with fans about supporters being able to have a greater say at the club","id":"10687730b","keywords":["england","europe","leicester city fc","manchester","manchester united fc","men's soccer","men's sports","premier league","professional soccer","soccer","sports","united kingdom","western europe","wsoc"],"title":"Soccer Premier League, Manchester, United Kingdom - 11 May 2021"},"properties":{"aspect":{"type":"number"},"assets":{"$ref":"#/components/schemas/EditorialAssets"},"byline":{"type":"string"},"caption":{"type":"string"},"categories":{"description":"List of categories","items":{"$ref":"#/components/schemas/EditorialCategory"},"type":"array"},"date_taken":{"format":"date","type":"string"},"description":{"type":"string"},"id":{"type":"string"},"keywords":{"items":{"type":"string"},"type":"array"},"special_instructions":{"type":"string"},"title":{"type":"string"}},"required":["id"],"type":"object"},"EditorialContentDataList":{"description":"List of editorial items","example":{"data":[{"aspect":1.621,"assets":{"medium_jpg":{"display_name":"Med","height":617,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3693,"is_licensable":true,"width":5985},"small_jpg":{"display_name":"Small","height":309,"is_licensable":true,"width":500},"thumb_170":{"height":105,"url":"https://editorial01.qa.shuttercorp.net/thumb/10687730b/272a999e/Shutterstock_10687730b.jpg","width":170},"thumb_220":{"height":136,"url":"https://editorial01.qa.shuttercorp.net/thumb-220/10687730b/927a6ebe/Shutterstock_10687730b.jpg","width":220},"watermark_1500":{"height":926,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-1500/10687730b/ee2d7ae1/Shutterstock_10687730b.jpg","width":1500},"watermark_450":{"height":278,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-450/10687730b/ff2443ad/Shutterstock_10687730b.jpg","width":450}},"byline":"Jon Super/AP/Shutterstock","caption":"","categories":[{"name":"Sport"}],"date_taken":"2025-04-15T13:52:09.815Z","description":"Security and stewards stand outside the Old Trafford stadium in Manchester, England, ahead of the English Premier League soccer match between Manchester United and Leicester City. This is the first Manchester United home match since fans protested against American owner Joel Glazer, forcing the postponement of the team's Premier League game against Liverpool. The protests prompted Glazer to publish a letter in which he pledged to accelerate discussions with fans about supporters being able to have a greater say at the club","id":"10687730b","keywords":["england","europe","leicester city fc","manchester","manchester united fc","men's soccer","men's sports","premier league","professional soccer","soccer","sports","united kingdom","western europe","wsoc"],"title":"Soccer Premier League, Manchester, United Kingdom - 11 May 2021"}],"page":1,"per_page":5,"total_count":16},"properties":{"data":{"description":"Editorial items","items":{"$ref":"#/components/schemas/EditorialContent"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results","type":"integer"}}},"EditorialCoverItem":{"description":"Cover image for editorial livefeed","example":{"height":117,"id":"9763363q","url":"https://editorial01.qa.shuttercorp.net/thumb/9763363q/51e28f39/Shutterstock_9763363q.jpg","width":170},"properties":{"height":{"type":"integer"},"id":{"type":"string"},"url":{"type":"string"},"width":{"type":"integer"}},"required":["id","url"],"type":"object"},"EditorialImageCategoryResults":{"description":"List of editorial categories","example":{"data":[{"name":"Animal"},{"name":"Awards"},{"name":"Art"},{"name":"Film Stills"}]},"properties":{"data":{"items":{"$ref":"#/components/schemas/EditorialCategory"},"type":"array"}},"type":"object"},"EditorialImageContentDataList":{"description":"List of editorial items","example":{"data":[{"aspect":1.621,"assets":{"medium_jpg":{"display_name":"Med","height":617,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3693,"is_licensable":true,"width":5985},"small_jpg":{"display_name":"Small","height":309,"is_licensable":true,"width":500},"thumb_170":{"height":105,"url":"https://editorial01.qa.shuttercorp.net/thumb/10687730b/272a999e/Shutterstock_10687730b.jpg","width":170},"thumb_220":{"height":136,"url":"https://editorial01.qa.shuttercorp.net/thumb-220/10687730b/927a6ebe/Shutterstock_10687730b.jpg","width":220},"watermark_1500":{"height":926,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-1500/10687730b/ee2d7ae1/Shutterstock_10687730b.jpg","width":1500},"watermark_450":{"height":278,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-450/10687730b/ff2443ad/Shutterstock_10687730b.jpg","width":450}},"byline":"Jon Super/AP/Shutterstock","caption":"","categories":[{"name":"Sport"}],"date_taken":"2025-04-15T13:52:09.815Z","description":"Security and stewards stand outside the Old Trafford stadium in Manchester, England, ahead of the English Premier League soccer match between Manchester United and Leicester City. This is the first Manchester United home match since fans protested against American owner Joel Glazer, forcing the postponement of the team's Premier League game against Liverpool. The protests prompted Glazer to publish a letter in which he pledged to accelerate discussions with fans about supporters being able to have a greater say at the club","id":"10687730b","keywords":["england","europe","leicester city fc","manchester","manchester united fc","men's soccer","men's sports","premier league","professional soccer","soccer","sports","united kingdom","western europe","wsoc"],"title":"Soccer Premier League, Manchester, United Kingdom - 11 May 2021"}],"page":1,"per_page":1,"total_count":23},"properties":{"data":{"description":"Editorial items","items":{"$ref":"#/components/schemas/EditorialContent"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results","type":"integer"}}},"EditorialImageLivefeed":{"description":"Metadata about editorial livefeed","example":{"cover_item":{"height":117,"id":"9763363q","url":"https://editorial01.qa.shuttercorp.net/thumb/9763363q/51e28f39/Shutterstock_9763363q.jpg","width":170},"created_time":"2025-04-15T13:52:09.815Z","id":"2018%2F07%2F17%2FPrince%20Charles%20and%20Camilla%20Duchess%20of%20Cornwall%20visit%20to%20Cornwall%2C%20Day%202","name":"Prince Charles and Camilla Duchess of Cornwall visit to Cornwall, Day 2","total_item_count":38},"properties":{"cover_item":{"$ref":"#/components/schemas/EditorialCoverItem"},"created_time":{"description":"When the livefeed was initially created","format":"date-time","type":"string"},"id":{"description":"Livefeed ID","type":"string"},"name":{"description":"Name of the livefeed","type":"string"},"total_item_count":{"description":"Total count of items in the livefeed","type":"integer"}},"required":["id","name","total_item_count"],"type":"object"},"EditorialImageLivefeedList":{"description":"List of editorial livefeeds","example":{"data":[{"cover_item":{"height":117,"id":"9763363q","url":"https://editorial01.qa.shuttercorp.net/thumb/9763363q/51e28f39/Shutterstock_9763363q.jpg","width":170},"created_time":"2025-04-15T13:52:09.815Z","id":"2018%2F07%2F17%2FPrince%20Charles%20and%20Camilla%20Duchess%20of%20Cornwall%20visit%20to%20Cornwall%2C%20Day%202","name":"Prince Charles and Camilla Duchess of Cornwall visit to Cornwall, Day 2","total_item_count":38}],"page":1,"per_page":1,"total_count":5300},"properties":{"data":{"description":"Editorial livefeeds","items":{"$ref":"#/components/schemas/EditorialLivefeed"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results","type":"integer"}},"required":["data","total_count"],"type":"object"},"EditorialLivefeed":{"description":"Metadata about editorial livefeed","example":{"cover_item":{"height":117,"id":"9763363q","url":"https://editorial01.qa.shuttercorp.net/thumb/9763363q/51e28f39/Shutterstock_9763363q.jpg","width":170},"created_time":"2025-04-15T13:52:09.815Z","id":"2018%2F07%2F17%2FPrince%20Charles%20and%20Camilla%20Duchess%20of%20Cornwall%20visit%20to%20Cornwall%2C%20Day%202","name":"Prince Charles and Camilla Duchess of Cornwall visit to Cornwall, Day 2","total_item_count":38},"properties":{"cover_item":{"$ref":"#/components/schemas/EditorialCoverItem"},"created_time":{"description":"When the livefeed was initially created","format":"date-time","type":"string"},"id":{"description":"Livefeed ID","type":"string"},"name":{"description":"Name of the livefeed","type":"string"},"total_item_count":{"description":"Total count of items in the livefeed","type":"integer"}},"required":["id","name","total_item_count"],"type":"object"},"EditorialLivefeedList":{"description":"List of editorial livefeeds","example":{"data":[{"cover_item":{"height":117,"id":"9763363q","url":"https://editorial01.qa.shuttercorp.net/thumb/9763363q/51e28f39/Shutterstock_9763363q.jpg","width":170},"created_time":"2025-04-15T13:52:09.815Z","id":"2018%2F07%2F17%2FPrince%20Charles%20and%20Camilla%20Duchess%20of%20Cornwall%20visit%20to%20Cornwall%2C%20Day%202","name":"Prince Charles and Camilla Duchess of Cornwall visit to Cornwall, Day 2","total_item_count":38}],"page":1,"per_page":1,"total_count":56},"properties":{"data":{"description":"Editorial livefeeds","items":{"$ref":"#/components/schemas/EditorialLivefeed"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results","type":"integer"}},"required":["data","total_count"],"type":"object"},"EditorialSearchResults":{"description":"Editorial search results","example":{"data":[{"aspect":1.621,"assets":{"medium_jpg":{"display_name":"Med","height":617,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3693,"is_licensable":true,"width":5985},"small_jpg":{"display_name":"Small","height":309,"is_licensable":true,"width":500},"thumb_170":{"height":105,"url":"https://editorial01.qa.shuttercorp.net/thumb/10687730b/272a999e/Shutterstock_10687730b.jpg","width":170},"thumb_220":{"height":136,"url":"https://editorial01.qa.shuttercorp.net/thumb-220/10687730b/927a6ebe/Shutterstock_10687730b.jpg","width":220},"watermark_1500":{"height":926,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-1500/10687730b/ee2d7ae1/Shutterstock_10687730b.jpg","width":1500},"watermark_450":{"height":278,"url":"https://editorial01.qa.shuttercorp.net/wm-preview-450/10687730b/ff2443ad/Shutterstock_10687730b.jpg","width":450}},"byline":"Jon Super/AP/Shutterstock","caption":"","categories":[{"name":"Sport"}],"date_taken":"2025-04-15T13:52:09.815Z","description":"Security and stewards stand outside the Old Trafford stadium in Manchester, England, ahead of the English Premier League soccer match between Manchester United and Leicester City. This is the first Manchester United home match since fans protested against American owner Joel Glazer, forcing the postponement of the team's Premier League game against Liverpool. The protests prompted Glazer to publish a letter in which he pledged to accelerate discussions with fans about supporters being able to have a greater say at the club","id":"10687730b","keywords":["england","europe","leicester city fc","manchester","manchester united fc","men's soccer","men's sports","premier league","professional soccer","soccer","sports","united kingdom","western europe","wsoc"],"title":"Soccer Premier League, Manchester, United Kingdom - 11 May 2021"}],"next":"eyJ2IjoyLCJzIjoxLCJwIjpbMF19","per_page":1,"prev":"","search_id":"BaMzOAkpHIvfnuWVRFs1ag","total_count":46845},"properties":{"data":{"description":"Editorial items","items":{"$ref":"#/components/schemas/EditorialContent"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"next":{"description":"Cursor value that represents the next page of results","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"prev":{"description":"Cursor value that represents the previous page of results","type":"string"},"search_id":{"description":"Unique identifier for the search request","type":"string"},"total_count":{"description":"Total count of all results","type":"integer"}},"required":["data","total_count"],"type":"object"},"EditorialUpdatedContent":{"description":"Metadata about updated editorial content","example":{"aspect":1.481,"assets":{"medium_jpg":{"display_name":"Med","height":675,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3263,"is_licensable":true,"width":4831},"small_jpg":{"display_name":"Small","height":337,"is_licensable":true,"width":500},"thumb_170":{"height":115,"url":"https://editorial01.shutterstock.com/thumb/9804979n/c4377a53/Shutterstock_9804979n.jpg","width":170},"thumb_220":{"height":149,"url":"https://editorial01.shutterstock.com/thumb-220/9804979n/c57a68c7/Shutterstock_9804979n.jpg","width":220},"watermark_1500":{"height":1500,"url":"https://editorial01.shutterstock.com/wm-preview-1500/9933285a/ab82fea4/Shutterstock_9933285a.jpg","width":1040},"watermark_450":{"height":304,"url":"https://editorial01.shutterstock.com/wm-preview-450/9804979n/37d19dce/Shutterstock_9804979n.jpg","width":450}},"byline":"ALEX HOFFORD/EPA-EFE/Shutterstock","caption":"","categories":[],"commercial_status":{"status":"available"},"date_taken":"2025-04-15T13:52:09.815Z","description":"Members of the TyLoo e-Sports team from China prepare to face off against the Kinguin e-Sports team from Poland at the ICBC (Asia) e-Sports and Music Festival Hong Kong 2018, Hong Kong, China, 24 August 2018. The festival runs from 24 to 26 August with professional gamers from around the world competing in international e-sports tournaments.","id":"9804979n","keywords":[],"rights":{"countries":"CAN,+DEU,+GBR,+USA,-*"},"supplier_code":"EPA","title":"Hong Kong kicks off international e-Sports competition, China - 24 Aug 2018","updated_time":"2025-04-15T13:52:09.815Z","updates":["addition"]},"properties":{"aspect":{"type":"number"},"assets":{"$ref":"#/components/schemas/EditorialAssets"},"byline":{"type":"string"},"caption":{"type":"string"},"categories":{"description":"List of categories","items":{"$ref":"#/components/schemas/EditorialCategory"},"type":"array"},"commercial_status":{"properties":{"reason":{"type":"string"},"status":{"type":"string"}}},"created_time":{"format":"date-time","type":"string"},"date_taken":{"format":"date","type":"string"},"description":{"type":"string"},"id":{"type":"string"},"keywords":{"items":{"type":"string"},"type":"array"},"rights":{"properties":{"countries":{"type":"string"}},"type":"object"},"special_instructions":{"type":"string"},"supplier_code":{"type":"string"},"title":{"type":"string"},"updated_time":{"format":"date-time","type":"string"},"updates":{"items":{"type":"string"},"type":"array"}},"required":["id"],"type":"object"},"EditorialUpdatedResults":{"description":"Editorial updated results","example":{"data":[{"aspect":1.481,"assets":{"medium_jpg":{"display_name":"Med","height":675,"is_licensable":true,"width":1000},"original":{"display_name":"Original","height":3263,"is_licensable":true,"width":4831},"small_jpg":{"display_name":"Small","height":337,"is_licensable":true,"width":500},"thumb_170":{"height":115,"url":"https://editorial01.shutterstock.com/thumb/9804979n/c4377a53/Shutterstock_9804979n.jpg","width":170},"thumb_220":{"height":149,"url":"https://editorial01.shutterstock.com/thumb-220/9804979n/c57a68c7/Shutterstock_9804979n.jpg","width":220},"watermark_1500":{"height":1500,"url":"https://editorial01.shutterstock.com/wm-preview-1500/9933285a/ab82fea4/Shutterstock_9933285a.jpg","width":1040},"watermark_450":{"height":304,"url":"https://editorial01.shutterstock.com/wm-preview-450/9804979n/37d19dce/Shutterstock_9804979n.jpg","width":450}},"byline":"ALEX HOFFORD/EPA-EFE/Shutterstock","caption":"","categories":[],"commercial_status":{"status":"available"},"date_taken":"2025-04-15T13:52:09.815Z","description":"Members of the TyLoo e-Sports team from China prepare to face off against the Kinguin e-Sports team from Poland at the ICBC (Asia) e-Sports and Music Festival Hong Kong 2018, Hong Kong, China, 24 August 2018. The festival runs from 24 to 26 August with professional gamers from around the world competing in international e-sports tournaments.","id":"9804979n","keywords":[],"rights":{"countries":"CAN,+DEU,+GBR,+USA,-*"},"supplier_code":"EPA","title":"Hong Kong kicks off international e-Sports competition, China - 24 Aug 2018","updated_time":"2025-04-15T13:52:09.815Z","updates":["addition"]}],"next":"eyJ2IjoxLCJzIjoxfQ==","per_page":1,"prev":""},"properties":{"data":{"description":"Editorial updated items","items":{"$ref":"#/components/schemas/EditorialUpdatedContent"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"next":{"description":"Cursor value that represents the next page of results","type":"string"},"per_page":{"description":"Number of results per page","type":"integer"},"prev":{"description":"Cursor value that represents the previous page of results","type":"string"}},"required":["data"],"type":"object"},"EditorialVideoAssets":{"description":"Asset information, including size and thumbnail URLs","example":{"original":{"display_name":"HD","file_size":82233387,"format":"avc1","fps":30,"height":1080,"is_licensable":true,"width":1080},"preview_mp4":{"url":"https://qa.editorial-cdn.shuttercorp.net/wm-preview-mp4/10679854a/M0T7A13aNej2g82bMTI4NjY=/Shutterstock_10679854a.mp4"},"preview_webm":{"url":"https://qa.editorial-cdn.shuttercorp.net/wm-preview-webm/10679854a/M4T6A63fN2j5g929MTI4NjY=/Shutterstock_10679854a.webm"},"thumb_jpg":{"url":"https://qa.editorial-cdn.shuttercorp.net/thumb-1/10679854a/M5TcAf30Ncjcge2eMTI4NjY=/Shutterstock_10679854a.jpg"}},"properties":{"original":{"$ref":"#/components/schemas/VideoSizeDetails"},"preview_mp4":{"$ref":"#/components/schemas/VideoPreviewUrl"},"preview_webm":{"$ref":"#/components/schemas/VideoPreviewUrl"},"thumb_jpg":{"$ref":"#/components/schemas/VideoPreviewUrl"}},"type":"object"},"EditorialVideoCategoryResults":{"description":"List of editorial video categories","example":{"data":[{"name":"Animal"},{"name":"Awards"},{"name":"Art"},{"name":"Film Stills"}]},"properties":{"data":{"items":{"$ref":"#/components/schemas/EditorialCategory"},"type":"array"}},"type":"object"},"EditorialVideoContent":{"description":"Metadata about editorial content","example":{"aspect":1,"assets":{"original":{"display_name":"HD","file_size":82233387,"format":"avc1","fps":30,"height":1080,"is_licensable":true,"width":1080},"preview_mp4":{"url":"https://qa.editorial-cdn.shuttercorp.net/wm-preview-mp4/10679854a/M0T7A13aNej2g82bMTI4NjY=/Shutterstock_10679854a.mp4"},"preview_webm":{"url":"https://qa.editorial-cdn.shuttercorp.net/wm-preview-webm/10679854a/M4T6A63fN2j5g929MTI4NjY=/Shutterstock_10679854a.webm"},"thumb_jpg":{"url":"https://qa.editorial-cdn.shuttercorp.net/thumb-1/10679854a/M5TcAf30Ncjcge2eMTI4NjY=/Shutterstock_10679854a.jpg"}},"byline":"ViralHog/Shutterstock","caption":"","categories":[],"date_taken":"2025-04-15T13:52:09.815Z","description":"Info from Licensor: \"Peeps the Canadian Goose has been raised with our family since a gosling. Peeps has made appearances on our local news channels, TV shows, and local newspapers. He has been trained to fly next to four wheelers, jet ski's, and boats. He has brought joy to many people during the pandemic including those with cancer.\"","id":"10679854a","keywords":["2020","adorable","birds","bizarre","canadian goose","cute","domesticated animals","entertainment","feel good","flew","flies","fly","flying","fun","goose","jet skis","nature","odd","pets","played","playing","plays","prior lake","sports","strange","sweet","usa","viralhog","virals","water sports","weird"],"title":"Peeps the Goose Has a Blast on a Jet Ski, Prior Lake, Minnesota, USA - 13 Nov 2020"},"properties":{"aspect":{"type":"number"},"assets":{"$ref":"#/components/schemas/EditorialVideoAssets"},"byline":{"type":"string"},"caption":{"type":"string"},"categories":{"description":"List of categories","items":{"$ref":"#/components/schemas/EditorialCategory"},"type":"array"},"date_taken":{"format":"date","type":"string"},"description":{"type":"string"},"id":{"type":"string"},"keywords":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id"],"type":"object"},"EditorialVideoSearchResults":{"description":"Editorial search results","example":{"data":[{"aspect":1,"assets":{"original":{"display_name":"HD","file_size":82233387,"format":"avc1","fps":30,"height":1080,"is_licensable":true,"width":1080},"preview_mp4":{"url":"https://qa.editorial-cdn.shuttercorp.net/wm-preview-mp4/10679854a/M0T7A13aNej2g82bMTI4NjY=/Shutterstock_10679854a.mp4"},"preview_webm":{"url":"https://qa.editorial-cdn.shuttercorp.net/wm-preview-webm/10679854a/M4T6A63fN2j5g929MTI4NjY=/Shutterstock_10679854a.webm"},"thumb_jpg":{"url":"https://qa.editorial-cdn.shuttercorp.net/thumb-1/10679854a/M5TcAf30Ncjcge2eMTI4NjY=/Shutterstock_10679854a.jpg"}},"byline":"ViralHog/Shutterstock","caption":"","categories":[],"date_taken":"2025-04-15T13:52:09.815Z","description":"Info from Licensor: \"Peeps the Canadian Goose has been raised with our family since a gosling. Peeps has made appearances on our local news channels, TV shows, and local newspapers. He has been trained to fly next to four wheelers, jet ski's, and boats. He has brought joy to many people during the pandemic including those with cancer.\"","id":"10679854a","keywords":["2020","adorable","birds","bizarre","canadian goose","cute","domesticated animals","entertainment","feel good","flew","flies","fly","flying","fun","goose","jet skis","nature","odd","pets","played","playing","plays","prior lake","sports","strange","sweet","usa","viralhog","virals","water sports","weird"],"title":"Peeps the Goose Has a Blast on a Jet Ski, Prior Lake, Minnesota, USA - 13 Nov 2020"}],"next":"eyJ2IjoyLCJzIjoyMCwicCI6WzBdfQ==","per_page":1,"prev":"","search_id":"zhmz9zLmpQehdTPvg8cacQ","total_count":331},"properties":{"data":{"description":"Editorial items","items":{"$ref":"#/components/schemas/EditorialVideoContent"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"next":{"description":"Cursor value that represents the next page of results","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"prev":{"description":"Cursor value that represents the previous page of results","type":"string"},"search_id":{"description":"Unique identifier for the search request","type":"string"},"total_count":{"description":"Total count of all results","type":"integer"}},"required":["data","total_count"],"type":"object"},"Error":{"description":"Error object","example":{"code":"VALIDATION_INVALID_TYPE","data":"'10'","message":"Invalid type: string should be integer","path":"$.query.page"},"properties":{"code":{"description":"The error code of this error","type":"string"},"data":{"description":"Debugging information about the error","type":"string"},"items":{"description":"A list of items that produced the error","items":{"type":"object"},"type":"array"},"message":{"description":"Specific details about this error","type":"string"},"path":{"description":"Internal code reference to the source of the error","type":"string"}},"required":["message"],"type":"object"},"FeaturedCollection":{"description":"Metadata about a featured collection","example":{"cover_item":{"url":"https://ak.picdn.net/assets/cms/b467415246debdab45825d915a548f8f79b57882-Collection_1_Thumnail.jpg"},"created_time":"2025-04-15T13:52:09.815Z","id":"19853","items_updated_time":"2025-04-15T13:52:09.815Z","name":"Exercise & Fitness","total_item_count":82,"updated_time":"2025-04-15T13:52:09.815Z"},"properties":{"cover_item":{"$ref":"#/components/schemas/FeaturedCollectionCoverItem"},"created_time":{"description":"Date that the collection was created","format":"date-time","type":"string"},"hero_item":{"$ref":"#/components/schemas/FeaturedCollectionCoverItem","description":"Top-level item that is meant as a cover asset, as the first asset seen to represent the collection"},"id":{"description":"Collection ID","type":"string"},"items_updated_time":{"description":"Date that an item in the collection was last added or removed","format":"date-time","type":"string"},"name":{"description":"Name of the collection","type":"string"},"share_url":{"description":"Unique share url for the collection","type":"string"},"total_item_count":{"description":"Total number of items in the collection","type":"integer"},"updated_time":{"description":"Date that the collection was last modified","format":"date-time","type":"string"}},"required":["id","name","total_item_count"],"type":"object"},"FeaturedCollectionCoverItem":{"description":"Featured collection cover item metadata","example":{"url":"https://ak.picdn.net/assets/cms/b467415246debdab45825d915a548f8f79b57882-Collection_1_Thumnail.jpg"},"properties":{"url":{"description":"URL of the collection cover item","type":"string"}},"required":["url"],"type":"object"},"FeaturedCollectionDataList":{"description":"List of featured collections","example":{"data":[{"cover_item":{"url":"https://ak.picdn.net/assets/cms/b467415246debdab45825d915a548f8f79b57882-Collection_1_Thumnail.jpg"},"created_time":"2025-04-15T13:52:09.816Z","id":"19853","items_updated_time":"2025-04-15T13:52:09.816Z","name":"Exercise & Fitness","total_item_count":82,"updated_time":"2025-04-15T13:52:09.816Z"}],"page":1,"per_page":5,"total_count":123455},"properties":{"data":{"description":"Featured collections","items":{"$ref":"#/components/schemas/FeaturedCollection"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"GenreList":{"additionalProperties":false,"description":"List of audio genres","example":{"data":["Rock","Pop > Singer-Songwriter","Pop > Synth Pop","Production / Film Scores"]},"properties":{"data":{"description":"List of genres","items":{"type":"string"},"type":"array"}},"required":["data"],"type":"object"},"ISOCountryCode":{"description":"A valid ISO 3166-1 Alpha-2 or ISO 3166-1 Alpha-3 code.","example":"USA","oneOf":[{"enum":["ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"],"format":"country-code-3","type":"string"},{"enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],"format":"country-code-2","type":"string"}]},"Image":{"description":"Information about an image","example":{"aspect":1.5,"assets":{"huge_thumb":{"height":260,"url":"https://image.shutterstock.com/image-photo/cropped-image-woman-gardening-260nw-1572478477.jpg","width":390},"large_thumb":{"height":100,"url":"https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":150},"mosaic":{"height":167,"url":"https://image.shutterstock.com/image-photo/stock-photo-cropped-image-of-woman-gardening-250nw-1572478477.jpg","width":250},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":450},"preview_1000":{"height":667,"url":"https://ak.picdn.net/shutterstock/photos/1572478477/watermark_1000/1706028c641ea2f443057287c67d9b91/preview_1000-1572478477.jpg","width":1000},"preview_1500":{"height":1000,"url":"https://image.shutterstock.com/z/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":1500},"small_thumb":{"height":67,"url":"https://thumb7.shutterstock.com/thumb_small/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":100}},"contributor":{"id":"250738318"},"description":"cropped image of woman gardening","has_model_release":true,"id":"1572478477","image_type":"photo","media_type":"image","original_filename":"123.jpg"},"properties":{"added_date":{"description":"Date that the image was added by the contributor","format":"date","type":"string"},"affiliate_url":{"description":"Affiliate referral link; appears only for registered affiliate partners","format":"uri","type":"string"},"aspect":{"description":"Aspect ratio of the image in decimal format, such as 0.6667","type":"number"},"assets":{"$ref":"#/components/schemas/ImageAssets","description":"Image asset information"},"categories":{"description":"Categories that this image is a part of","items":{"$ref":"#/components/schemas/Category"},"type":"array"},"contributor":{"$ref":"#/components/schemas/Contributor"},"description":{"description":"Detailed description of the image","type":"string"},"has_model_release":{"description":"Indicates whether there are model releases for the image","type":"boolean"},"has_property_release":{"description":"Indicates whether there are property releases for the image","type":"boolean"},"id":{"description":"Image ID","type":"string"},"image_type":{"description":"Type of image","type":"string"},"insights":{"description":"AI-powered insights about how the asset will perform for the objective and audience","properties":{"labels":{"items":{"type":"string"},"type":"array"}},"type":"object"},"is_adult":{"description":"Whether or not this image contains adult content","type":"boolean"},"is_editorial":{"description":"Whether or not this image is editorial content","type":"boolean"},"is_illustration":{"description":"Whether or not this image is an illustration","type":"boolean"},"keywords":{"description":"Keywords associated with the content of this image","items":{"type":"string"},"type":"array"},"media_type":{"description":"Media type of this image, should always be \"image\"","type":"string"},"model_releases":{"description":"List of model releases","items":{"$ref":"#/components/schemas/ModelRelease"},"type":"array"},"models":{"description":"List of models","items":{"$ref":"#/components/schemas/Model"},"type":"array"},"releases":{"description":"List of all releases of this image","items":{"type":"string"},"type":"array"},"url":{"description":"Link to image information page; included only for certain accounts","type":"string"}},"required":["id","media_type","contributor"],"type":"object"},"ImageAssets":{"description":"Information about the assets that are part of an image","example":{"huge_thumb":{"height":260,"url":"https://image.shutterstock.com/image-photo/cropped-image-woman-gardening-260nw-1572478477.jpg","width":390},"large_thumb":{"height":100,"url":"https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":150},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":450},"preview_1000":{"height":667,"url":"https://ak.picdn.net/shutterstock/photos/1572478477/watermark_1000/1706028c641ea2f443057287c67d9b91/preview_1000-1572478477.jpg","width":1000},"preview_1500":{"height":1000,"url":"https://image.shutterstock.com/z/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":1500},"small_thumb":{"height":67,"url":"https://thumb7.shutterstock.com/thumb_small/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":100}},"properties":{"huge_jpg":{"$ref":"#/components/schemas/ImageSizeDetails"},"huge_thumb":{"$ref":"#/components/schemas/Thumbnail"},"large_thumb":{"$ref":"#/components/schemas/Thumbnail"},"medium_jpg":{"$ref":"#/components/schemas/ImageSizeDetails"},"preview":{"$ref":"#/components/schemas/Thumbnail"},"preview_1000":{"$ref":"#/components/schemas/Thumbnail"},"preview_1500":{"$ref":"#/components/schemas/Thumbnail"},"small_jpg":{"$ref":"#/components/schemas/ImageSizeDetails"},"small_thumb":{"$ref":"#/components/schemas/Thumbnail"},"supersize_jpg":{"$ref":"#/components/schemas/ImageSizeDetails"},"vector_eps":{"$ref":"#/components/schemas/ImageSizeDetails"}},"type":"object"},"ImageCreateRequest":{"description":"Request to upload an image","example":{"base64_image":"R0lGODlhgACAAPcAAEwiBLyaLOzNUNmWFNjOrNSuN7x6PPzqeOTMgfKSDMyuTPzwsdi2dHwuBPzbVu"},"properties":{"base64_image":{"description":"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","type":"string"}},"required":["base64_image"],"type":"object"},"ImageCreateResponse":{"description":"Image upload information","example":{"id":"Udb14e1c3540bdbf82b4b3fe12d3a44f2"},"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"ImageDataList":{"description":"List of images","example":{"data":[{"aspect":1.5,"assets":{"huge_thumb":{"height":260,"url":"https://image.shutterstock.com/image-photo/cropped-image-woman-gardening-260nw-1572478477.jpg","width":390},"large_thumb":{"height":100,"url":"https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":150},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":450},"preview_1000":{"height":667,"url":"https://ak.picdn.net/shutterstock/photos/1572478477/watermark_1000/1706028c641ea2f443057287c67d9b91/preview_1000-1572478477.jpg","width":1000},"preview_1500":{"height":1000,"url":"https://image.shutterstock.com/z/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":1500},"small_thumb":{"height":67,"url":"https://thumb7.shutterstock.com/thumb_small/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":100}},"contributor":{"id":"250738318"},"description":"cropped image of woman gardening","has_model_release":true,"id":"1572478477","image_type":"photo","media_type":"image"}],"page":1,"per_page":5,"total_count":123455},"properties":{"data":{"description":"Images","items":{"$ref":"#/components/schemas/Image"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"ImageSearchResults":{"description":"Image search results","example":{"data":[{"aspect":1.5,"assets":{"huge_thumb":{"height":260,"url":"https://image.shutterstock.com/image-photo/cropped-image-woman-gardening-260nw-1572478477.jpg","width":390},"large_thumb":{"height":100,"url":"https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":150},"mosaic":{"height":167,"url":"https://image.shutterstock.com/image-photo/stock-photo-cropped-image-of-woman-gardening-250nw-1572478477.jpg","width":250},"preview":{"height":300,"url":"https://image.shutterstock.com/display_pic_with_logo/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":450},"preview_1000":{"height":667,"url":"https://ak.picdn.net/shutterstock/photos/1572478477/watermark_1000/1706028c641ea2f443057287c67d9b91/preview_1000-1572478477.jpg","width":1000},"preview_1500":{"height":1000,"url":"https://image.shutterstock.com/z/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":1500},"small_thumb":{"height":67,"url":"https://thumb7.shutterstock.com/thumb_small/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":100}},"contributor":{"id":"250738318"},"description":"cropped image of woman gardening","has_model_release":true,"id":"1572478477","image_type":"photo","media_type":"image"}],"page":1,"per_page":5,"search_id":"749090bb-2967-4a20-b22e-c800dc845e10","spellcheck_info":{},"total_count":45},"properties":{"data":{"description":"List of images","items":{"$ref":"#/components/schemas/Image"},"type":"array"},"insights":{"$ref":"#/components/schemas/Insights"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"search_id":{"description":"Unique identifier for the search request","type":"string"},"spellcheck_info":{"description":"Returns information if search phrase has potentially been mistyped or another query would lead to better search results","type":"object"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}},"required":["data","total_count","search_id"],"type":"object"},"ImageSizeDetails":{"description":"Image size information","example":{"display_name":"Med","dpi":300,"file_size":860200,"format":"jpg","height":667,"is_licensable":true,"width":1000},"properties":{"display_name":{"description":"Display name of this image size","type":"string"},"dpi":{"type":"integer"},"file_size":{"description":"File size (in bytes) of this image size","type":"integer"},"format":{"description":"Format of this image size","type":"string"},"height":{"description":"Height of this image size","type":"integer"},"is_licensable":{"description":"Whether or not this image can be licensed in this image size","type":"boolean"},"width":{"description":"Width of this image size","type":"integer"}},"type":"object"},"Insights":{"description":"AI-powered insights about an asset, based on the specified audience and objective","example":{"label_performance":[{"name":"Nature","percentile_performance":98.82123565673828},{"name":"Outdoors","percentile_performance":98.63294982910156}]},"properties":{"label_performance":{"description":"How effective the AI thinks an asset in the category is for the specified audience and objective, expressed as a percentile compared to other images","items":{"properties":{"name":{"type":"string"},"percentile_performance":{"type":"number"}},"type":"object"},"type":"array"}},"required":["label_performance"],"type":"object"},"Instrument":{"description":"Information about an musical instrument","example":{"id":"bright_roomy_kit","name":"Bright Roomy Kit","previews":[{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/instruments/previews/bright_roomy_kit_v1.mp3"}],"tags":["Percussion","Aux Percs","Set Cymbals","Crash","Open","Ride","Set Hi-Hat","Set Kicks","Stick Snare","Quad Toms","Roto Toms"]},"properties":{"id":{"description":"The id of the instrument","type":"string"},"name":{"description":"Name of the instrument","type":"string"},"previews":{"description":"Preview of the instrument","items":{"$ref":"#/components/schemas/Preview"},"type":"array"},"tags":{"description":"List of tags","items":{"type":"string"},"type":"array"}},"type":"object"},"InstrumentList":{"additionalProperties":false,"description":"List of instruments","example":{"data":["Orchestra","Organ","Oud","Pads","Electric Guitar"]},"properties":{"data":{"description":"List of instruments","items":{"type":"string"},"type":"array"}},"required":["data"],"type":"object"},"Instruments":{"description":"Instruments","example":{"id":"bright_roomy_kit","name":"Bright Roomy Kit"},"properties":{"id":{"description":"The string id of the instrument","type":"string"},"name":{"description":"The string name of the instrument","type":"string"}},"type":"object"},"InstrumentsListResult":{"description":"Image search results","example":{"data":[{"id":"bright_roomy_kit","name":"Bright Roomy Kit","previews":[{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/instruments/previews/bright_roomy_kit_v1.mp3"}],"tags":["Percussion","Aux Percs","Set Cymbals","Crash","Open","Ride","Set Hi-Hat","Set Kicks","Stick Snare","Quad Toms","Roto Toms"]}],"page":1,"per_page":5},"properties":{"data":{"description":"List of instrumnets","items":{"$ref":"#/components/schemas/Instrument"},"type":"array"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"}},"type":"object"},"KeywordDataList":{"description":"List of keywords","example":{"data":["nature","wildlife","animal","cute","bamboo","panda","china","wild","endangered","black","bear"]},"properties":{"data":{"description":"Keywords","items":{"type":"string"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"}}},"Language":{"description":"Language code","enum":["ar","bg","bn","cs","da","de","el","en","es","fi","fr","gu","he","hi","hr","hu","id","it","ja","kn","ko","ml","mr","nb","nl","or","pl","pt","ro","ru","sk","sl","sv","ta","te","th","tr","uk","ur","vi","zh","zh-Hant"],"example":"cs","title":"language","type":"string"},"LicenseAudio":{"description":"An audio track in a licensing request","example":{"audio_id":"123456789","license":"audio_platform","search_id":"987654321"},"properties":{"audio_id":{"description":"ID of the track being licensed","type":"string"},"license":{"description":"Type of license","enum":["audio_platform","premier_music_basic","premier_music_extended","premier_music_pro","premier_music_comp","asset_all_music"],"type":"string"},"search_id":{"description":"ID of the search that led to this licensing event","type":"string"}},"required":["audio_id"],"type":"object"},"LicenseAudioRequest":{"description":"Audio license request data","example":{"audio":[{"audio_id":"591623","license":"audio_platform","metadata":{"customer_id":"12345"}}]},"properties":{"audio":{"description":"List of audio tracks to license","items":{"$ref":"#/components/schemas/LicenseAudio"},"maxItems":50,"type":"array"}},"required":["audio"],"type":"object"},"LicenseAudioResult":{"description":"The response to a licensing request for an audio track","example":{"allotment_charge":1,"audio_id":"123456789","download":{"url":"http://download2.dev.shutterstock.com/gatekeeper/abc/original.wav"},"license_id":"abcdef123456789ghijklmn"},"properties":{"allotment_charge":{"description":"Number of credits that this licensing event used","type":"number"},"audio_id":{"description":"ID of the track that was licensed","type":"string"},"download":{"$ref":"#/components/schemas/AudioUrl"},"error":{"description":"Error information if applicable","type":"string"},"license_id":{"description":"ID of the license event","type":"string"}},"required":["audio_id"],"type":"object"},"LicenseAudioResultDataList":{"description":"List of audio license results","example":{"data":[{"allotment_charge":1,"audio_id":"123456789","download":{"url":"http://download2.dev.shutterstock.com/gatekeeper/abc/original.wav"},"license_id":"abcdef123456789ghijklmn"}]},"properties":{"data":{"description":"License results","items":{"$ref":"#/components/schemas/LicenseAudioResult"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"LicenseEditorialContent":{"description":"Individual editorial content to license","example":{"editorial_id":"10687730b","license":"premier_editorial_comp","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"size":"original"},"properties":{"editorial_id":{"description":"Editorial ID","type":"string"},"license":{"description":"License agreement to use for licensing","type":"string"},"metadata":{"$ref":"#/components/schemas/LicenseRequestMetadata"},"size":{"default":"original","description":"Asset size to download","enum":["small","medium","original"],"type":"string"}},"required":["editorial_id","license"],"type":"object"},"LicenseEditorialContentRequest":{"description":"License editorial content request","example":{"country":"USA","editorial":[{"editorial_id":"10687730b","license":"premier_editorial_comp","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"size":"original"}]},"properties":{"country":{"$ref":"#/components/schemas/ISOCountryCode","description":"Mandatory country code for where the editorial content will be distributed; this value is used for rights checks","example":"USA"},"editorial":{"description":"Editorial content to license","items":{"$ref":"#/components/schemas/LicenseEditorialContent"},"type":"array"}},"required":["country","editorial"],"type":"object"},"LicenseEditorialContentResult":{"description":"The response to a licensing request for editorial content","example":{"allotment_charge":1,"download":{"url":"https://s3-eu-west-1.amazonaws.com/api-downloads.rexfeatures.com/[random-characters].jpg?Expires=1524717323"},"editorial_id":"69656358"},"properties":{"allotment_charge":{"description":"For pre-paid plans, how many credits were used for the item license","type":"integer"},"download":{"$ref":"#/components/schemas/Url","description":"Information that is needed to download the image"},"editorial_id":{"description":"Editorial ID","type":"string"},"error":{"type":"string"}},"required":["editorial_id"],"type":"object"},"LicenseEditorialContentResults":{"description":"List of editorial license results","example":{"data":[{"allotment_charge":1,"download":{"url":"https://s3-eu-west-1.amazonaws.com/api-downloads.rexfeatures.com/[random-characters].jpg?Expires=1524717323"},"editorial_id":"69656358"}],"page":1,"per_page":1,"total_count":12},"properties":{"data":{"description":"License results","items":{"$ref":"#/components/schemas/LicenseEditorialContentResult"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"page":{"description":"Current page of the response","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results","type":"integer"}}},"LicenseEditorialVideoContent":{"description":"Individual editorial video content to license","example":{"editorial_id":"10679854a","license":"premier_editorial_video_digital_only","metadata":{"purchase_order":"12345"},"size":"original"},"properties":{"editorial_id":{"description":"Editorial ID","type":"string"},"license":{"description":"License agreement to use for licensing","enum":["premier_editorial_video_digital_only","premier_editorial_video_all_media","premier_editorial_video_all_media_single_territory","premier_editorial_video_comp"],"type":"string"},"metadata":{"$ref":"#/components/schemas/LicenseRequestMetadata"},"size":{"default":"original","description":"Asset size to download","enum":["original"],"type":"string"}},"required":["editorial_id","license"],"type":"object"},"LicenseEditorialVideoContentRequest":{"description":"License editorial video content request","example":{"country":"USA","editorial":[{"editorial_id":"10679854a","license":"premier_editorial_video_digital_only","metadata":{"purchase_order":"12345"},"size":"original"}]},"properties":{"country":{"$ref":"#/components/schemas/ISOCountryCode","description":"Mandatory country code for where the editorial content will be distributed; this value is used for rights checks","example":"USA"},"editorial":{"description":"Editorial content to license","items":{"$ref":"#/components/schemas/LicenseEditorialVideoContent"},"type":"array"}},"required":["country","editorial"],"type":"object"},"LicenseFormat":{"description":"Description of a license","example":{"description":"Med","format":"jpg","media_type":"image","min_resolution":1000,"size":"medium"},"properties":{"description":{"description":"Description of the license","type":"string"},"format":{"description":"Format or extension of the media, such as mpeg for videos or jpeg for images","type":"string"},"media_type":{"description":"Media type of the license","enum":["image","video","audio","editorial"],"type":"string"},"min_resolution":{"description":"Width of the media, in pixels, allowed by this license","type":"integer"},"size":{"description":"Keyword that details the size of the media, such as hd or sd for video, huge or vector for images","type":"string"}},"type":"object"},"LicenseImage":{"description":"Data required to license an image","example":{"editorial_acknowledgement":true,"format":"jpg","image_id":"123456789","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"price":12.34,"show_modal":true,"size":"small","subscription_id":"s12345678"},"properties":{"auth_cookie":{"$ref":"#/components/schemas/Cookie","description":"Cookie object"},"custom_dimensions":{"$ref":"#/components/schemas/CustomSizeDimensions"},"editorial_acknowledgement":{"description":"Set to true to acknowledge the editorial agreement","type":"boolean"},"format":{"default":"jpg","description":"(Deprecated) Image format to download","enum":["jpg"],"type":"string"},"image_id":{"description":"Image ID","type":"string"},"metadata":{"$ref":"#/components/schemas/LicenseRequestMetadata"},"price":{"description":"For revenue-sharing transactions, the final cost to the end customer as a floating-point number in the transaction currency, such as 12.34","type":"number"},"search_id":{"description":"ID of the search that led to this licensing transaction","type":"string"},"show_modal":{"deprecated":true,"description":"(Deprecated)","type":"boolean"},"size":{"description":"Image size to download","enum":["small","medium","huge","custom"],"type":"string"},"subscription_id":{"description":"ID of the subscription to use for the download.","type":"string"},"verification_code":{"deprecated":true,"description":"(Deprecated)","type":"string"}},"required":["image_id"],"type":"object"},"LicenseImageRequest":{"description":"Image license request data","example":{"images":[{"editorial_acknowledgement":true,"format":"jpg","image_id":"123456789","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"price":12.34,"show_modal":true,"size":"small","subscription_id":"s12345678"}]},"properties":{"images":{"description":"Images to create licenses for","items":{"anyOf":[{"$ref":"#/components/schemas/LicenseImage"},{"$ref":"#/components/schemas/LicenseImageVector"}]},"maxItems":50,"type":"array"}},"required":["images"],"type":"object"},"LicenseImageResult":{"description":"The response to a licensing request for an image","example":{"allotment_charge":1,"download":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.jpg"},"image_id":"59656357","price":{"local_amount":12.34,"local_currency":"EUR"}},"properties":{"allotment_charge":{"description":"Number of credits that this licensing event used","type":"integer"},"download":{"$ref":"#/components/schemas/Url","description":"Information that is needed to download the image"},"error":{"description":"Error message, appears only if there was an error","type":"string"},"image_id":{"description":"Image ID that was licensed","type":"string"},"license_id":{"description":"ID of the license event","type":"string"},"price":{"$ref":"#/components/schemas/Price","description":"Wholesale price information; only for rev-share partners"}},"required":["image_id"],"type":"object"},"LicenseImageResultDataList":{"description":"List of information about licensed images","example":{"data":[{"allotment_charge":1,"download":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.jpg"},"image_id":"59656357"}],"page":1,"per_page":5,"total_count":23},"properties":{"data":{"description":"License results","items":{"$ref":"#/components/schemas/LicenseImageResult"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"LicenseImageVector":{"description":"Data required to license an image","example":{"editorial_acknowledgement":true,"format":"eps","image_id":"123456789","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"price":12.34,"show_modal":true,"size":"vector","subscription_id":"s12345678"},"properties":{"auth_cookie":{"$ref":"#/components/schemas/Cookie","description":"Cookie object"},"editorial_acknowledgement":{"description":"Set to true to acknowledge the editorial agreement","type":"boolean"},"format":{"default":"eps","description":"(Deprecated) Image format to download","enum":["eps"],"type":"string"},"image_id":{"description":"Image ID","type":"string"},"metadata":{"$ref":"#/components/schemas/LicenseRequestMetadata"},"price":{"description":"For revenue-sharing transactions, the final cost to the end customer as a floating-point number in the transaction currency, such as 12.34","type":"number"},"search_id":{"description":"ID of the search that led to this licensing transaction","type":"string"},"show_modal":{"deprecated":true,"description":"(Deprecated)","type":"boolean"},"size":{"description":"Image size to download","enum":["vector"],"type":"string"},"subscription_id":{"description":"ID of the subscription to use for the download.","type":"string"},"verification_code":{"deprecated":true,"description":"(Deprecated)","type":"string"}},"required":["image_id"],"type":"object"},"LicenseRequestMetadata":{"description":"Additional information for license requests for enterprise accounts and API subscriptions, 4 fields maximum; which fields are required is set by the account holder","example":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"maxProperties":4,"properties":{},"type":"object"},"LicenseSFX":{"description":"","example":{"format":"wav","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"sfx_id":"123456789","show_modal":true,"size":"ambisonic","subscription_id":"s12345678"},"properties":{"audio_layout":{"enum":["ambisonic","5.1","stereo"],"type":"string"},"format":{"enum":["wav","mp3"],"type":"string"},"search_id":{"description":"ID of the search that led to this licensing event","type":"string"},"sfx_id":{"description":"ID of the sounds effect being licensed","type":"string"},"subscription_id":{"description":"ID of the subscription to use for the download.","type":"string"}},"required":["sfx_id","subscription_id"],"type":"object"},"LicenseSFXRequest":{"description":"License sounds effect asset request body","example":{"sound_effects":[{"format":"wav","metadata":{"customer_id":"12345","geo_location":"US","number_viewed":"15","search_term":"dog"},"sfx_id":"123456789","show_modal":true,"size":"ambisonic","subscription_id":"s12345678"}]},"properties":{"sound_effects":{"description":"Sound effects to license for","items":{"$ref":"#/components/schemas/LicenseSFX"},"type":"array"}},"required":["sound_effects"],"type":"object"},"LicenseSFXResult":{"description":"The response to a licensing request for an sound effects","example":{"allotment_charge":1,"download":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.wav"},"sfx_id":"59656357"},"properties":{"allotment_charge":{"description":"Number of credits that this licensing event used","type":"integer"},"download":{"$ref":"#/components/schemas/Url","description":"Information that is needed to download the sound effects"},"error":{"description":"Error message, appears only if there was an error","type":"string"},"license_id":{"description":"ID of the license event","type":"string"},"sfx_id":{"description":"Sound effects ID that was licensed","type":"string"}},"required":["sfx_id"],"type":"object"},"LicenseSFXResultDataList":{"description":"List of information about licensed sound effects","example":{"data":[{"allotment_charge":1,"download":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.mp3"},"sfx_id":"123456789"}],"page":1,"per_page":5,"total_count":123455},"properties":{"data":{"description":"Sound effects license results","items":{"$ref":"#/components/schemas/LicenseSFXResult"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"}}},"LicenseVideo":{"description":"Data required to license a video","example":{"size":"hd","subscription_id":"s12345678","video_id":"2140697"},"properties":{"auth_cookie":{"$ref":"#/components/schemas/Cookie"},"editorial_acknowledgement":{"description":"Whether or not this item is editorial content","type":"boolean"},"metadata":{"$ref":"#/components/schemas/LicenseRequestMetadata"},"price":{"description":"Retail price amount as a floating-point number in the transaction currency, such as 12.34; only for rev-share partners","type":"number"},"search_id":{"description":"ID of the search that led to this licensing event","type":"string"},"show_modal":{"deprecated":true,"description":"(Deprecated)","type":"boolean"},"size":{"description":"Size of the video being licensed","enum":["web","sd","hd","4k"],"type":"string"},"subscription_id":{"description":"ID of the subscription used for this license","type":"string"},"video_id":{"description":"ID of the video being licensed","type":"string"}},"required":["video_id"],"type":"object"},"LicenseVideoRequest":{"description":"List of videos to license","example":{"videos":[{"size":"hd","subscription_id":"s12345678","video_id":"2140697"}]},"properties":{"videos":{"description":"Videos to license","items":{"$ref":"#/components/schemas/LicenseVideo"},"maxItems":50,"type":"array"}},"required":["videos"],"type":"object"},"LicenseVideoResult":{"description":"The response to a licensing request for a video","example":{"allotment_charge":1,"download":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.mp4"},"price":{"local_amount":12.34,"local_currency":"EUR"},"video_id":"123456789"},"properties":{"allotment_charge":{"description":"Number of credits that this licensing event used","type":"integer"},"download":{"$ref":"#/components/schemas/Url"},"error":{"description":"Potential error that occurred during licensing","type":"string"},"license_id":{"description":"ID of the license event","type":"string"},"price":{"$ref":"#/components/schemas/Price","description":"Wholesale price information; only for rev-share partners only"},"video_id":{"description":"ID of the video that was licensed","type":"string"}},"required":["video_id"],"type":"object"},"LicenseVideoResultDataList":{"description":"List of video license results","example":{"data":[{"allotment_charge":1,"download":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.mp4"},"price":{"local_amount":12.34,"local_currency":"EUR"},"video_id":"123456789"}],"page":1,"per_page":5,"total_count":123455},"properties":{"data":{"description":"License results","items":{"$ref":"#/components/schemas/LicenseVideoResult"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"Model":{"description":"Information about a human model or property that appears in media; used to search for assets that this model is in","example":{"id":"123456789"},"properties":{"id":{"description":"ID of the model","type":"string"}},"required":["id"],"type":"object"},"ModelRelease":{"description":"Model and property release metadata","example":{"id":"123456789"},"properties":{"id":{"description":"ID of the model or property release","type":"string"}},"type":"object"},"MoodList":{"additionalProperties":false,"description":"List of audio moods","example":{"data":["Action / Sports","Adventure / Discovery","Aerobics / Workout","Aggressive"]},"properties":{"data":{"description":"List of audio moods","items":{"type":"string"},"type":"array"}},"required":["data"],"type":"object"},"OauthAccessTokenResponse":{"description":"Access token response to client apps","example":{"access_token":"v2/NmQwOTc0NTBiMjA5YzZkY2Q4NTkvMTA4OTg1MDk5L2N1c3RvbWVyLzIvZjB2a0RseGo4Rkt6ZjRmVWJNMm10V2VzcHh1NTBlZWJ6andUQU1NeTVYYnNFTDVWOFRJakItS2RnZTlmbEY1Y3haNWdXLUtYc2JhaXo5djk0V0p2QzZUUWZ4c2FNWm41NkdLYUgyVWlCaVUtQTNVMV9YQWpzd3lpblI3SlZEem8wSG1qQ2NzSkJlX3VQTnNXenBIdkd4SXViVi1rRGJTVENCV0g1U3U0RXRJSV9rSm5lQkl5QXlvbm5JN241UUhv","token_type":"Bearer"},"properties":{"access_token":{"description":"Access token that can be used for future requests","type":"string"},"expires_in":{"description":"Number of seconds before token expires, only present for expiring tokens","type":"integer"},"refresh_token":{"description":"A refresh token that can be used to renew the access_token when it expires, only present for expiring tokens","type":"string"},"token_type":{"default":"Bearer","description":"Type of token","type":"string"},"user_token":{"description":"Metadata about the access_token, only present for expiring tokens","type":"string"}},"required":["access_token","token_type"],"type":"object"},"Preview":{"description":"Preview information","example":{"content_type":"audio/mp3","url":"https://public-cdn.ampermusic.com/instruments/previews/roomy_kit_v1.mp3"},"properties":{"content_type":{"description":"Content type of the preview, currently audio/mp3","enum":["audio/mp3"],"type":"string"},"url":{"description":"Url of the instrument's preview file","type":"string"}},"type":"object"},"Price":{"description":"Price","example":{"local_amount":12.34,"local_currency":"EUR"},"properties":{"local_amount":{"description":"Floating-point amount of the calculated rev-share price in the currency local_currency","type":"number"},"local_currency":{"description":"Currency of the rev-share price that was calculated","type":"string"}},"type":"object"},"Recommendation":{"description":"Media Recommendation","example":{"id":"123456789"},"properties":{"id":{"description":"Media ID","type":"string"}},"required":["id"],"type":"object"},"RecommendationDataList":{"description":"List of recommended images","example":{"data":[{"id":"123456789"},{"id":"99379946"},{"id":"133918412"}],"page":1,"per_page":5,"total_count":12},"properties":{"data":{"description":"Recommended images","items":{"$ref":"#/components/schemas/Recommendation"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"RedownloadImage":{"description":"Data required to redownload an image","example":{"size":"small"},"properties":{"auth_cookie":{"$ref":"#/components/schemas/Cookie","deprecated":true,"description":"(Deprecated)"},"show_modal":{"deprecated":true,"description":"(Deprecated)","type":"boolean"},"size":{"description":"Size of the image","enum":["small","medium","huge","supersize","vector"],"type":"string"},"verification_code":{"deprecated":true,"description":"(Deprecated)","type":"string"}},"type":"object"},"RedownloadVideo":{"description":"Data required to redownload a video","example":{"size":"web"},"properties":{"auth_cookie":{"$ref":"#/components/schemas/Cookie","deprecated":true,"description":"(Deprecated)"},"show_modal":{"deprecated":true,"description":"(Deprecated)","type":"boolean"},"size":{"description":"Size of the video","enum":["web","sd","hd","4k"],"type":"string"},"verification_code":{"deprecated":true,"description":"(Deprecated)","type":"string"}},"type":"object"},"RemoveCatalogCollectionItem":{"example":{"id":"123"},"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"RemoveCatalogCollectionItems":{"example":{"items":[{"id":"123"}]},"properties":{"items":{"items":{"$ref":"#/components/schemas/RemoveCatalogCollectionItem"},"maxItems":50,"minItems":1,"type":"array"}},"required":["items"],"type":"object"},"SFX":{"description":"SFX metadata","example":{"contributor":{"id":"1234"},"id":"123","media_type":"sfx"},"properties":{"added_date":{"description":"Date this sound effect was added to the Shutterstock library","format":"date","type":"string"},"affiliate_url":{"description":"Affiliate referral link; appears only for registered affiliate partners","type":"string"},"artist":{"description":"Artist of the sound effect","type":"string"},"assets":{"$ref":"#/components/schemas/SFXAssets"},"contributor":{"$ref":"#/components/schemas/Contributor"},"description":{"description":"Description of this sound effect","type":"string"},"duration":{"description":"Duration of this sound effect in seconds","type":"number"},"id":{"description":"Shutterstock ID of this sound effect","type":"string"},"keywords":{"description":"List of all keywords for this sound effect","items":{"description":"Keyword for this track","type":"string"},"type":"array"},"media_type":{"description":"Media type of this track; should always be \"sfx\"","type":"string"},"releases":{"description":"List of all releases of this sound effect","items":{"description":"Release of this sound effect","type":"string"},"type":"array"},"title":{"description":"Title of this sound effect","type":"string"},"updated_time":{"description":"Time this sound effect was last updated","format":"date-time","type":"string"},"url":{"description":"","type":"string"}},"required":["id","media_type","contributor"],"type":"object"},"SFXAssetDetails":{"description":"Information about a file that is part of an sound effect asset","example":{"file_size":123,"url":"https://cdn.shutterstock.com/shutterstock/sfx/11222/preview_ecom_ster/hand-throw-catch-cellphone.mp3"},"properties":{"file_size":{"description":"File size of the sound effect","type":"integer"},"url":{"description":"URL the sound effect is available at","type":"string"}},"type":"object"},"SFXAssets":{"description":"Files that are available as part of an sound effect asset","example":{"preview_mp3":{"file_size":123,"url":"https://cdn.shutterstock.com/shutterstock/sfx/11222/preview_ecom_ster/hand-throw-catch-cellphone.mp3"},"waveform":{"file_size":123,"url":"https://cdn.shutterstock.com/shutterstock/sfx/11222/preview_ecom_ster/hand-throw-catch-cellphone.mp3"}},"properties":{"preview_mp3":{"$ref":"#/components/schemas/SFXAssetDetails"},"waveform":{"$ref":"#/components/schemas/SFXAssetDetails"}},"type":"object"},"SFXDataList":{"description":"List of sound effects","example":{"data":[{"contributor":{"id":"1234"},"id":"123","media_type":"sfx"}]},"properties":{"data":{"description":"Sound Effects","items":{"$ref":"#/components/schemas/SFX"},"type":"array"}}},"SFXSearchResults":{"description":"Sound effects search results","example":{"data":[{"added_date":"2025-04-15T13:52:09.818Z","assets":{"preview_mp3":{"url":"https://cdn.shutterstock.com/shutterstock/sfx/21230/preview_ecom_ster/heavy-duty-interface-feedback.mp3"},"waveform":{"url":"https://cdn.shutterstock.com/shutterstock/sfx/21230/wvfm_img/heavy-duty-interface-feedback.png"}},"contributor":{"id":"321402911"},"description":"User interface calculations, scanning, thinking, text displayed on screen. Screen gak or garble.","id":"123","media_type":"sfx","title":"Heavy Duty Interface Feedback","updated_time":"2025-04-15T13:52:09.818Z"}],"search_id":"e6f84c4c-ffdd-499b-ad89-72c65a896ead","total_count":14881},"properties":{"data":{"description":"List of tracks","items":{"$ref":"#/components/schemas/SFX"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"search_id":{"description":"ID of the search","type":"string"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}},"required":["data","total_count","search_id"],"type":"object"},"SearchEntitiesRequest":{"description":"Search entity request data","example":{"text":"Planting flowers is a great way to make springtime more beautiful."},"properties":{"text":{"description":"Plain text to extract keywords from","maxLength":100000,"minLength":1,"type":"string"}},"required":["text"],"type":"object"},"SearchEntitiesResponse":{"description":"The response to a request for keyword analysis","example":{"keywords":["planting","flowers","springtime","beautiful"]},"properties":{"keywords":{"description":"The top keywords from the submitted text","items":{"type":"string"},"type":"array"}}},"SearchImage":{"description":"Data required to search for an image","example":{"license":["editorial"],"query":"cat","sort":"popular"},"properties":{"added_date":{"description":"Show images added on the specified date","format":"date","type":"string"},"added_date_end":{"description":"Show images added before the specified date","format":"date","type":"string"},"added_date_start":{"description":"Show images added on or after the specified date","format":"date","type":"string"},"aspect_ratio":{"description":"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","type":"number"},"aspect_ratio_max":{"description":"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","minimum":0,"type":"number"},"aspect_ratio_min":{"description":"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","minimum":0,"type":"number"},"authentic":{"description":"Show only authentic images","type":"boolean"},"category":{"description":"Show images with the specified Shutterstock-defined category; specify a category name or ID","type":"string"},"color":{"description":"Specify either a hexadecimal color in the format '4F21EA' or 'grayscale'; the API returns images that use similar colors","type":"string"},"contributor":{"description":"Show images with the specified contributor names or IDs, allows multiple","items":{"type":"string"},"type":"array"},"contributor_country":{"description":"Show images from contributors in one or more specified countries, or start with NOT to exclude a country from the search","oneOf":[{"items":{"format":"country-code-2","type":"string"},"type":"array"},{"items":{"format":"negated-country-code-2","type":"string"},"type":"array"}]},"fields":{"description":"Fields to display in the response; see the documentation for the fields parameter in the overview section","type":"string","uniqueItems":true},"height":{"description":"(Deprecated; use height_from and height_to instead) Show images with the specified height","type":"integer"},"height_from":{"description":"Show images with the specified height or larger, in pixels","type":"integer"},"height_to":{"description":"Show images with the specified height or smaller, in pixels","type":"integer"},"image_type":{"description":"Show images of the specified type","items":{"enum":["photo","illustration","vector"],"type":"string"},"type":"array"},"keyword_safe_search":{"default":true,"description":"Hide results with potentially unsafe keywords","type":"boolean"},"language":{"$ref":"#/components/schemas/Language","description":"Set query and result language (uses Accept-Language header if not set)"},"license":{"default":["commercial"],"description":"Show only images with the specified license","items":{"enum":["commercial","editorial","enhanced"],"type":"string"},"type":"array"},"model":{"description":"Show image results with the specified model IDs","items":{"type":"string"},"type":"array"},"orientation":{"description":"Show image results with horizontal or vertical orientation","enum":["horizontal","vertical"],"type":"string"},"page":{"default":1,"description":"Page number","minimum":1,"type":"integer"},"people_age":{"description":"Show images that feature people of the specified age category","enum":["infants","children","teenagers","20s","30s","40s","50s","60s","older"],"type":"string"},"people_ethnicity":{"description":"Show images with people of the specified ethnicities, or start with NOT to show images without those ethnicities","items":{"enum":["african","african_american","black","brazilian","chinese","caucasian","east_asian","hispanic","japanese","middle_eastern","native_american","pacific_islander","south_asian","southeast_asian","other","NOT african","NOT african_american","NOT black","NOT brazilian","NOT chinese","NOT caucasian","NOT east_asian","NOT hispanic","NOT japanese","NOT middle_eastern","NOT native_american","NOT pacific_islander","NOT south_asian","NOT southeast_asian","NOT other"],"type":"string"},"type":"array"},"people_gender":{"description":"Show images with people of the specified gender","enum":["male","female","both"],"type":"string"},"people_model_released":{"description":"Show images of people with a signed model release","type":"boolean"},"people_number":{"description":"Show images with the specified number of people","maximum":4,"minimum":0,"type":"integer"},"per_page":{"default":20,"description":"Number of results per page","maximum":20,"minimum":0,"type":"integer"},"query":{"description":"One or more search terms separated by spaces; you can use NOT to filter out images that match a term","type":"string"},"region":{"anyOf":[{"format":"country-code-2","type":"string"},{"format":"ipv4","type":"string"}],"description":"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":{"default":true,"description":"Enable or disable safe search","type":"boolean"},"sort":{"default":"popular","description":"Sort by","enum":["newest","popular","relevance","random"],"type":"string"},"spellcheck_query":{"default":true,"description":"Spellcheck the search query and return results on suggested spellings","type":"boolean"},"view":{"default":"minimal","description":"Amount of detail to render in the response","enum":["minimal","full"],"type":"string"},"width":{"description":"(Deprecated; use width_from and width_to instead) Show images with the specified width","type":"integer"},"width_from":{"description":"Show images with the specified width or larger, in pixels","type":"integer"},"width_to":{"description":"Show images with the specified width or smaller, in pixels","type":"integer"}},"type":"object"},"SfxUrl":{"description":"Sound effect license URL object","example":{"$ref":"#/components/schemas/Url/example"},"properties":{"url":{"description":"URL that can be used to download the unwatermarked, licensed asset","type":"string"}},"required":["url"],"type":"object"},"ShortsLoopsStems":{"description":"Links for Shorts, Loops and Stems previews","example":{"loops":{"loop_preview_1":{"url":"http://picdn.shuttercorp.net/shutterstock/audio/464947/loop_preview_1/loop_preview_1.mp3"},"loop_preview_2":{"url":"http://picdn.shuttercorp.net/shutterstock/audio/464947/loop_preview_2/loop_preview_2.mp3"}},"shorts":{"short_preview_1":{"url":"http://picdn.shuttercorp.net/shutterstock/audio/464947/short_preview_1/short_preview_1.mp3"},"short_preview_2":{"url":"http://picdn.shuttercorp.net/shutterstock/audio/464947/short_preview_2/short_preview_2.mp3"}},"stems":{"stem_preview_1":{"url":"http://picdn.shuttercorp.net/shutterstock/audio/464947/stem_preview_1/stem_preview_1.mp3"},"stem_preview_2":{"url":"http://picdn.shuttercorp.net/shutterstock/audio/464947/stem_preview_1/stem_preview_1.mp3"}}},"properties":{"loops":{"additionalProperties":{"properties":{"url":{"type":"string"}},"type":"object"}},"shorts":{"additionalProperties":{"properties":{"url":{"type":"string"}},"type":"object"}},"stems":{"additionalProperties":{"properties":{"url":{"type":"string"}},"type":"object"}}},"type":"object"},"Subscription":{"description":"Subscription information","example":{"allotment":{"downloads_left":5,"downloads_limit":10,"end_time":"2025-04-15T13:52:09.818Z","start_time":"2025-04-15T13:52:09.818Z"},"asset_type":"images","description":"Annual Subscription","expiration_time":"2025-04-15T13:52:09.818Z","formats":[{"description":"Small","format":"jpg","media_type":"image","min_resolution":500,"size":"small"},{"description":"Med","format":"jpg","media_type":"image","min_resolution":1000,"size":"medium"},{"description":"Vector","format":"eps","media_type":"image","size":"vector"}],"id":"s8906043","license":"standard","metadata":{}},"properties":{"allotment":{"$ref":"#/components/schemas/Allotment"},"asset_type":{"description":"Identifier for the type of assets associated with this subscription (images, videos, audio, editorial)","type":"string"},"description":{"description":"Description of the subscription","type":"string"},"expiration_time":{"description":"Date the subscription ends","format":"date-time","type":"string"},"formats":{"description":"List of formats that are licensable for the subscription","items":{"$ref":"#/components/schemas/LicenseFormat"},"type":"array"},"id":{"description":"Unique internal identifier for the subscription","type":"string"},"license":{"description":"Internal identifier for the type of subscription","type":"string"},"metadata":{"$ref":"#/components/schemas/SubscriptionMetadata"},"price_per_download":{"$ref":"#/components/schemas/Price"}},"required":["id"],"type":"object"},"SubscriptionDataList":{"description":"List of subscriptions","example":{"data":[{"allotment":{"downloads_left":5,"downloads_limit":10,"end_time":"2025-04-15T13:52:09.818Z","start_time":"2025-04-15T13:52:09.818Z"},"asset_type":"images","description":"Annual Subscription","expiration_time":"2025-04-15T13:52:09.818Z","formats":[{"description":"Small","format":"jpg","media_type":"image","min_resolution":500,"size":"small"},{"description":"Med","format":"jpg","media_type":"image","min_resolution":1000,"size":"medium"},{"description":"Vector","format":"eps","media_type":"image","size":"vector"}],"id":"s8906043","license":"standard","metadata":{}}],"page":1,"per_page":5,"total_count":123455},"properties":{"data":{"description":"Subscriptions retrieved from this user","items":{"$ref":"#/components/schemas/Subscription"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Optional error message","type":"string"},"page":{"description":"Current page that is being queried","type":"integer"},"per_page":{"description":"Amount of subscriptions to show per page","type":"integer"},"total_count":{"description":"Total number of subscriptions for this user","type":"integer"}}},"SubscriptionMetadata":{"description":"Subscription metadata; different for each customer","example":{"client":{"is_required":false,"name":"purchase_order"},"job":{"is_required":true,"name":"client_name"},"other":{"is_required":false,"name":"custom_value"}},"type":"object"},"Suggestions":{"description":"List of search suggestions","example":{"data":["cat scan","cats and dogs","cats playing","catsuit","cat silhouette","catskills","cats eyes","cat sitting","cat sleeping","cats eye"]},"properties":{"data":{"description":"Search suggestions","items":{"type":"string"},"type":"array"}},"type":"object"},"TestEcho":{"description":"Text to echo in the response","example":{"text":"Test string"},"properties":{"text":{"type":"string"}},"type":"object"},"TestValidate":{"description":"Validation results","example":{"header":{"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"},"query":{"id":123456,"tag":["Test string"]}},"properties":{"header":{"$ref":"#/components/schemas/TestValidateHeader","description":"Headers as included in the request"},"query":{"$ref":"#/components/schemas/TestValidateQuery","description":"Query as included in the request"}},"type":"object"},"TestValidateHeader":{"description":"Validation results","example":{"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"},"properties":{"user-agent":{"description":"User agent to expect in the response","type":"string"}},"type":"object"},"TestValidateQuery":{"description":"Validation results","example":{"id":123456,"tag":["string"]},"properties":{"id":{"description":"Integer ID that was passed in the request","type":"integer"},"tag":{"description":"List of tags that were passed in the request","items":{"type":"string"},"type":"array"}},"required":["id"],"type":"object"},"Thumbnail":{"description":"Image thumbnail information","example":{"height":100,"url":"https://thumb7.shutterstock.com/thumb_large/250738318/1572478477/stock-photo-cropped-image-of-woman-gardening-1572478477.jpg","width":150},"properties":{"height":{"description":"Height in pixels of the image thumbnail","type":"integer"},"url":{"description":"Direct URL to the image","type":"string"},"width":{"description":"Width in pixels of the image thumbnail","type":"integer"}},"required":["url","height","width"],"type":"object"},"UpdateCatalogCollection":{"example":{"cover_asset":{"id":"123"},"name":"My Collection","visibility":"public"},"properties":{"cover_asset":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"name":{"maxLength":100000,"minLength":1,"type":"string"},"visibility":{"enum":["private","public"],"type":"string"}},"type":"object"},"UpdatedMedia":{"description":"Information about a piece of updated media","example":{"id":"123456789","updated_time":"2025-04-15T13:52:09.818Z","updates":["addition","edit"]},"properties":{"id":{"description":"ID of the media","type":"string"},"updated_time":{"description":"Date that the media was updated","format":"date-time","type":"string"},"updates":{"description":"Types of updates that were made to the piece of media","items":{"type":"string"},"type":"array"}},"required":["id","updated_time","updates"],"type":"object"},"UpdatedMediaDataList":{"description":"List of updated media","example":{"data":[{"id":"123456789","updated_time":"2025-04-15T13:52:09.818Z","updates":["addition","edit"]}],"page":1,"per_page":5,"total_count":13},"properties":{"data":{"description":"Updated media items","items":{"$ref":"#/components/schemas/UpdatedMedia"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"Url":{"description":"URL object","example":{"url":"https://download.shutterstock.com/gatekeeper/[random-characters]/shutterstock_59656357.jpg"},"properties":{"url":{"description":"URL that can be used to download the unwatermarked, licensed asset","type":"string"}},"required":["url"],"type":"object"},"Urls":{"description":"List of URLs","example":{"urls":["string"]},"properties":{"urls":{"description":"URLs","items":{"type":"string"},"type":"array"}},"required":["urls"],"type":"object"},"UserDetails":{"description":"User details","example":{"contributor_id":"212","first_name":"John","full_name":"John Doe","id":"101782699","language":"es","last_name":"Doe","username":"jdoe"},"properties":{"contributor_id":{"description":"Unique internal identifier of the user, as a contributor","type":"string"},"customer_id":{"description":"Unique internal identifier of the user, as a purchaser","type":"string"},"email":{"description":"Email address of the user","type":"string"},"first_name":{"description":"First name of the user","type":"string"},"full_name":{"description":"Full name including first, middle, and last name of the user","type":"string"},"id":{"description":"Unique internal identifier for the user, not tied to contributor or purchasing customer","type":"string"},"is_premier":{"description":"True if the user has access to the Premier collection, false otherwise","type":"boolean"},"is_premier_parent":{"description":"True if the user has access to the Premier collection and also has child users","type":"boolean"},"language":{"description":"Main language of the user account","type":"string"},"last_name":{"description":"Last name of the user","type":"string"},"only_enhanced_license":{"description":"True if the user has an enterprise license, false otherwise","type":"boolean"},"only_sensitive_use":{"description":"True if the user has access to sensitive use only, false otherwise","type":"boolean"},"organization_id":{"description":"Unique internal identifier for the user's organization, specific to Premier users","type":"string"},"premier_permissions":{"description":"List of permissions allowed through the Premier client","items":{"type":"string"},"type":"array"},"username":{"description":"User name associated to the user","type":"string"}},"type":"object"},"Video":{"description":"Information about a video","example":{"added_date":"2025-04-15T13:52:09.818Z","aspect":1.778,"aspect_ratio":969,"assets":{"hd":{"display_name":"Original HD","file_size":110359552,"format":"avc1","fps":29.97,"height":1080,"is_licensable":true,"width":1920},"preview_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"preview_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"preview_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"sd":{"display_name":"Standard Definition MPEG","file_size":4577280,"format":"mov","fps":29.97,"height":480,"is_licensable":true,"width":852},"thumb_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"thumb_jpgs":{"urls":["https://ak.picdn.net/shutterstock/videos/1033184651/thumb/1.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/2.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/3.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/4.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/5.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/6.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/7.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/8.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/9.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/10.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/11.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"]},"thumb_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"thumb_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"web":{"display_name":"Low Resolution MPEG","file_size":1291264,"format":"mov","fps":29.97,"height":240,"is_licensable":true,"width":426}},"categories":[{"id":"12","name":"Nature"},{"id":"13","name":"People"}],"contributor":{"id":"4411978"},"description":"Camera follows hipster millennial young woman in orange jacket running up on top of mountain summit at sunset, jumps on top of rocks, raises arms into air, happy and drunk on life, youth and happiness","duration":14.081,"has_model_release":true,"has_property_release":false,"id":"1033184651","is_adult":false,"is_editorial":false,"keywords":["active","activity","adventure","arms","backpacker","carefree","celebrating","cliff","climate","cloud","discovery","escape","explore","extreme","free","freedom","girl","happy","high","hiker","hiking","hill","independent","inspiration","landscape","leisure","lifestyle","mountain","mountains","nature","outdoor","peak","person","rock","scenic","sky","sport","success","summer","summit","sun","sunset","top","tourism","travel","trekking","vacation","view","winning","woman"],"media_type":"video","models":[{"id":"33233810"},{"id":"25487168"}]},"properties":{"added_date":{"description":"Date this video was added to the Shutterstock library","format":"date","type":"string"},"affiliate_url":{"description":"Affiliate referral link; appears only for registered affiliate partners","format":"uri","type":"string"},"aspect":{"description":"Aspect ratio of this video in decimal format, such as 0.6667","type":"number"},"aspect_ratio":{"description":"Aspect ratio of the video as a ratio, such as 16:9","type":"string"},"assets":{"$ref":"#/components/schemas/VideoAssets"},"categories":{"description":"List of categories","items":{"$ref":"#/components/schemas/Category"},"type":"array"},"contributor":{"$ref":"#/components/schemas/Contributor"},"description":{"description":"Description of this video","type":"string"},"duration":{"description":"Duration of this video, in seconds","type":"number"},"has_model_release":{"description":"Whether or not this video has been released for use by the model appearing in it","type":"boolean"},"has_property_release":{"description":"Whether or not this video has received a release to show the landmark or property appearing in it","type":"boolean"},"id":{"description":"ID of the video","type":"string"},"is_adult":{"description":"Whether or not this video contains adult content","type":"boolean"},"is_editorial":{"description":"Whether or not this video is editorial content","type":"boolean"},"keywords":{"description":"Keywords associated with the content of this video","items":{"type":"string"},"type":"array"},"media_type":{"description":"Media type of this video, should always be \"video\"","type":"string"},"models":{"description":"List of models in this video","items":{"$ref":"#/components/schemas/Model"},"type":"array"},"url":{"description":"Link to video information page; included only for certain accounts","type":"string"}},"required":["id","media_type","contributor"],"type":"object"},"VideoAssets":{"description":"Video asset information","example":{"hd":{"display_name":"Original HD","file_size":110359552,"format":"avc1","fps":29.97,"height":1080,"is_licensable":true,"width":1920},"original_filename":"123.mp4","preview_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"preview_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"preview_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"sd":{"display_name":"Standard Definition MPEG","file_size":4577280,"format":"mov","fps":29.97,"height":480,"is_licensable":true,"width":852},"thumb_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"thumb_jpgs":{"urls":["https://ak.picdn.net/shutterstock/videos/1033184651/thumb/1.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/2.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/3.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/4.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/5.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/6.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/7.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/8.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/9.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/10.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/11.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"]},"thumb_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"thumb_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"web":{"display_name":"Low Resolution MPEG","file_size":1291264,"format":"mov","fps":29.97,"height":240,"is_licensable":true,"width":426}},"properties":{"4k":{"$ref":"#/components/schemas/VideoSizeDetails"},"hd":{"$ref":"#/components/schemas/VideoSizeDetails"},"preview_jpg":{"$ref":"#/components/schemas/Url"},"preview_mp4":{"$ref":"#/components/schemas/Url"},"preview_webm":{"$ref":"#/components/schemas/Url"},"sd":{"$ref":"#/components/schemas/VideoSizeDetails"},"thumb_jpg":{"$ref":"#/components/schemas/Url"},"thumb_jpgs":{"$ref":"#/components/schemas/Urls"},"thumb_mp4":{"$ref":"#/components/schemas/Url"},"thumb_webm":{"$ref":"#/components/schemas/Url"},"web":{"$ref":"#/components/schemas/VideoSizeDetails"}},"type":"object"},"VideoCollectionItemDataList":{"description":"List of items in a collection","example":{"data":[{"added_time":"2025-04-15T13:52:09.818Z","id":"76688182","media_type":"video"},{"added_time":"2025-04-15T13:52:09.818Z","id":"40005859","media_type":"video"}],"page":1,"per_page":100},"properties":{"data":{"description":"Assets in the collection","items":{"$ref":"#/components/schemas/CollectionItem"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"The current page of results","type":"integer"},"per_page":{"description":"The number of results per page","type":"integer"},"total_count":{"description":"The total number of results across all pages","type":"integer"}}},"VideoDataList":{"description":"List of videos","example":{"data":[{"added_date":"2025-04-15T13:52:09.818Z","aspect":1.778,"aspect_ratio":969,"assets":{"hd":{"display_name":"Original HD","file_size":110359552,"format":"avc1","fps":29.97,"height":1080,"is_licensable":true,"width":1920},"preview_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"preview_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"preview_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"sd":{"display_name":"Standard Definition MPEG","file_size":4577280,"format":"mov","fps":29.97,"height":480,"is_licensable":true,"width":852},"thumb_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"thumb_jpgs":{"urls":["https://ak.picdn.net/shutterstock/videos/1033184651/thumb/1.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/2.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/3.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/4.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/5.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/6.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/7.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/8.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/9.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/10.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/11.jpg","https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"]},"thumb_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"thumb_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"web":{"display_name":"Low Resolution MPEG","file_size":1291264,"format":"mov","fps":29.97,"height":240,"is_licensable":true,"width":426}},"categories":[{"id":"12","name":"Nature"},{"id":"13","name":"People"}],"contributor":{"id":"4411978"},"description":"Camera follows hipster millennial young woman in orange jacket running up on top of mountain summit at sunset, jumps on top of rocks, raises arms into air, happy and drunk on life, youth and happiness","duration":14.081,"has_model_release":true,"has_property_release":false,"id":"1033184651","is_adult":false,"is_editorial":false,"keywords":["active","activity","adventure","arms","backpacker","carefree","celebrating","cliff","climate","cloud","discovery","escape","explore","extreme","free","freedom","girl","happy","high","hiker","hiking","hill","independent","inspiration","landscape","leisure","lifestyle","mountain","mountains","nature","outdoor","peak","person","rock","scenic","sky","sport","success","summer","summit","sun","sunset","top","tourism","travel","trekking","vacation","view","winning","woman"],"media_type":"video","models":[{"id":"33233810"},{"id":"25487168"}]}],"page":1,"per_page":5,"total_count":25},"properties":{"data":{"description":"Videos","items":{"$ref":"#/components/schemas/Video"},"type":"array"},"errors":{"description":"Error list; appears only if there was an error","items":{"$ref":"#/components/schemas/Error"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}}},"VideoPreviewUrl":{"description":"Video preview information","example":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"properties":{"url":{"description":"Direct URL to the image","type":"string"}},"required":["url"],"type":"object"},"VideoSearchResults":{"description":"Video search results","example":{"data":[{"aspect":1.778,"aspect_ratio":969,"assets":{"preview_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"preview_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"preview_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/preview/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"},"thumb_jpg":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/12.jpg"},"thumb_mp4":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.mp4"},"thumb_webm":{"url":"https://ak.picdn.net/shutterstock/videos/1033184651/thumb/stock-footage-camera-follows-hipster-millennial-young-woman-in-orange-jacket-running-up-on-top-of-mountain-summit.webm"}},"contributor":{"id":"4411978"},"description":"Camera follows hipster millennial young woman in orange jacket running up on top of mountain summit at sunset, jumps on top of rocks, raises arms into air, happy and drunk on life, youth and happiness","duration":14.081,"has_model_release":true,"id":"1033184651","media_type":"video"}],"page":1,"per_page":5,"search_id":"749090bb-2967-4a20-b22e-c800dc845e10","total_count":123},"properties":{"data":{"description":"List of videos","items":{"$ref":"#/components/schemas/Video"},"type":"array"},"message":{"description":"Server-generated message, if any","type":"string"},"page":{"description":"Current page that is returned","type":"integer"},"per_page":{"description":"Number of results per page","type":"integer"},"search_id":{"description":"Unique identifier for the search request","type":"string"},"total_count":{"description":"Total count of all results across all pages","type":"integer"}},"required":["data","total_count","search_id"],"type":"object"},"VideoSizeDetails":{"description":"Video asset information","example":{"display_name":"Original HD","file_size":110359552,"format":"avc1","fps":29.97,"height":1080,"is_licensable":true,"width":1920},"properties":{"display_name":{"description":"Display name of this video size","type":"string"},"file_size":{"description":"File size (in bytes) of this video size","type":"integer"},"format":{"description":"Format of this video size","type":"string"},"fps":{"description":"Frames per second of this video size","type":"number"},"height":{"description":"Height of this video size","type":"integer"},"is_licensable":{"description":"Whether or not videos can be licensed in this video size","type":"boolean"},"width":{"description":"Width of this video size","type":"integer"}},"type":"object"}},"securitySchemes":{"basic":{"scheme":"basic","type":"http"},"customer_accessCode":{"flows":{"authorizationCode":{"authorizationUrl":"https://accounts.shutterstock.com/oauth/authorize","scopes":{"collections.edit":"Grant the ability to create new collections, edit a collection, and modify the contents of a collection","collections.view":"Grant read-only access to a collection and its contents.","licenses.create":"Grant the ability to download and license media on behalf of the user.","licenses.view":"Grant read-only access to a user's licenses.","purchases.view":"Grant read-only access to a user's purchase history.","user.view":"*Originally missing*"},"tokenUrl":"https://api.shutterstock.com/v2/oauth/access_token"}},"type":"oauth2","x-shutterstock-realm":"customer"}},"x-string-formats":{"asset-id":{"example":"18765466","format":"A Shutterstock asset ID that starts with a nonzero digit and has any number of other digits","pattern":"^[1-9]\\d*$"},"asset-upload-id":{"example":"U6ba16262e3bc2db470b8e3cfa8aaab25","format":"A Shutterstock upload ID consisting of the letter U followed by one or more other characters","pattern":"^U\\w+$"},"country-code-2":{"example":"US","format":"A two-character (ISO 3166 Alpha-2) country code","pattern":"^(?:[A-Z]{2}|[a-z]{2})$"},"country-code-3":{"example":"USA","format":"A three-character (ISO 3166 Alpha-3) country code","pattern":"^(?:[A-Z]{3}|[a-z]{3})$"},"date":{"example":"2025-04-15T13:52:09.819Z","format":"YYYY-MM-DD"},"date-time":{"example":"2025-04-15T13:52:09.819Z","format":"YYYY-MM-DDTHH:mm:ssZ"},"ipv4":{"example":"1.1.1.1","format":"A valid IPv4 address"},"negated-country-code-2":{"example":"NOT US","format":"A NOT followed by a two-character (ISO 3166 Alpha-2) country code","pattern":"^(NOT\\s)(?:[A-Z]{2}|[a-z]{2})$"},"uri":{"example":"https://wwww.shutterstock.com","format":"A valid URI"}}}}