Shutterstock computer_vision API

The computer_vision API from Shutterstock — 5 operation(s) for computer_vision.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

shutterstock-computer-vision-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Shutterstock API Reference audio computer_vision API
  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. The API enables searching, browsing, licensing, and downloading images, videos, audio tracks, and sound effects. It also supports editorial content, computer vision features, collection management, and OAuth 2.0 authentication.
  version: 1.0.30
  contact:
    name: Shutterstock Developer Support
    url: https://www.shutterstock.com/developers/contact-us
  license:
    name: Shutterstock API Terms
    url: https://www.shutterstock.com/api/terms
servers:
- url: https://api.shutterstock.com
  description: Shutterstock API
tags:
- name: computer_vision
paths:
  /v2/cv/images:
    post:
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComputerVisionImageCreateResponse'
              examples:
                response:
                  value:
                    upload_id: Udb14e1c3540bdbf82b4b3fe12d3a44f2
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '413':
          description: Payload Too Large
        '415':
          description: Unsupported Media Type
      security:
      - basic: []
      - customer_accessCode: []
      tags:
      - computer_vision
      x-code-samples:
      - lang: shell
        source: 'curl -X POST ''https://api.shutterstock.com/v2/cv/images'' \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -H ''Content-Type: application/json'' \

          -d "{\"base64_image\":\"`base64 myImage.jpg`\"}"

          '
      - lang: javascript--nodejs
        source: "const sstk = require(\"shutterstock-api\");\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: 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"
      operationId: uploadImage
      summary: Upload images
      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.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageCreateRequest'
            examples:
              default:
                value:
                  base64_image: R0lGODlhgACAAPcAAEwiBLyaLOzNUNmWFNjOrNSuN7x6PPzqeOTMgfKSDMyuTPzwsdi2dHwuBPzbVu
        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
  /v2/cv/similar/images:
    get:
      parameters:
      - description: The asset ID or upload ID to find similar images for
        in: query
        name: asset_id
        required: true
        example: U6ba16262e3bc2db470b8e3cfa8aaab25
        schema:
          type: string
      - description: Show only images with the specified license
        in: query
        name: license
        schema:
          type: array
          items:
            enum:
            - commercial
            - editorial
            type: string
          default: commercial
      - description: Enable or disable safe search
        in: query
        name: safe
        schema:
          type: boolean
          default: true
      - description: Language for the keywords and categories in the response
        in: query
        name: language
        example: es
        schema:
          $ref: '#/components/schemas/Language'
      - description: Page number
        in: query
        name: page
        schema:
          type: integer
          minimum: 1
          default: 1
      - description: Number of results per page
        in: query
        name: per_page
        schema:
          type: integer
          minimum: 1
          maximum: 500
          default: 20
      - description: Amount of detail to render in the response
        in: query
        name: view
        schema:
          type: string
          enum:
          - minimal
          - full
          default: minimal
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageSearchResults'
              examples:
                response:
                  value:
                    page: 1
                    per_page: 1
                    total_count: 200
                    search_id: ''
                    data:
                    - id: '224429596'
                      aspect: 1
                      assets:
                        preview:
                          height: 450
                          url: https://image.shutterstock.com/display_pic_with_logo/302287/224429596/stock-vector-happy-halloween-vector-224429596.jpg
                          width: 450
                        small_thumb:
                          height: 100
                          url: https://thumb1.shutterstock.com/thumb_small/302287/224429596/stock-vector-happy-halloween-vector-224429596.jpg
                          width: 100
                        large_thumb:
                          height: 150
                          url: https://thumb1.shutterstock.com/thumb_large/302287/224429596/stock-vector-happy-halloween-vector-224429596.jpg
                          width: 150
                        huge_thumb:
                          height: 260
                          url: https://image.shutterstock.com/image-vector/happy-halloween-vector-260nw-224429596.jpg
                          width: 260
                        preview_1000:
                          url: https://ak.picdn.net/shutterstock/photos/224429596/watermark_1000/9b5c88b67f10298f7b5340f21dffc953/preview_1000-224429596.jpg
                          width: 1000
                          height: 1000
                        preview_1500:
                          url: https://image.shutterstock.com/z/stock-vector-happy-halloween-vector-224429596.jpg
                          width: 1500
                          height: 1500
                      contributor:
                        id: '302287'
                      description: Happy Halloween - vector
                      image_type: vector
                      media_type: image
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - basic: []
      - customer_accessCode: []
      tags:
      - computer_vision
      x-code-samples:
      - lang: shell
        source: 'RESPONSE=$(curl -X POST ''https://api.shutterstock.com/v2/cv/images'' \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -H ''Content-Type: application/json'' \

          -d "{\"base64_image\":\"`base64 myImage.jpg`\"}")


          echo "The next step requires the jq program."


          UPLOAD_ID=$(jq -r .upload_id <<< $RESPONSE)


          curl -X GET https://api.shutterstock.com/v2/cv/similar/images \

          -H "Accept: application/json" \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -G \

          --data-urlencode "asset_id=$UPLOAD_ID"

          '
      - lang: javascript--nodejs
        source: "const sstk = require(\"shutterstock-api\");\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: 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"
      operationId: getSimilarImages
      summary: List similar images
      description: This endpoint returns images that are visually similar to an image that you specify or upload.
  /v2/cv/similar/videos:
    get:
      parameters:
      - description: The asset ID or upload ID to find similar videos for
        in: query
        name: asset_id
        required: true
        example: U6ba16262e3bc2db470b8e3cfa8aaab25
        schema:
          type: string
      - description: Show only videos with the specified license
        in: query
        name: license
        schema:
          type: array
          items:
            enum:
            - commercial
            - editorial
            type: string
          default: commercial
      - description: Enable or disable safe search
        in: query
        name: safe
        schema:
          type: boolean
          default: true
      - description: Language for the keywords and categories in the response
        in: query
        name: language
        example: es
        schema:
          $ref: '#/components/schemas/Language'
      - description: Page number
        in: query
        name: page
        schema:
          type: integer
          minimum: 1
          default: 1
      - description: Number of results per page
        in: query
        name: per_page
        schema:
          type: integer
          minimum: 1
          maximum: 500
          default: 20
      - description: Amount of detail to render in the response
        in: query
        name: view
        schema:
          type: string
          enum:
          - minimal
          - full
          default: minimal
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoSearchResults'
              examples:
                response:
                  value:
                    page: 1
                    per_page: 1
                    total_count: 200
                    search_id: ''
                    data:
                    - media_type: video
                      id: '33248488'
                      description: 'The Concept of: Digitalization of Information Flow Moving Through Rack Servers in Data Center. Shot on RED EPIC-W 8K Helium Cinema Camera.'
                      aspect: 1.778
                      duration: 19
                      contributor:
                        id: '178456'
                      aspect_ratio: '16:9'
                      assets:
                        thumb_webm:
                          url: https://ak8.picdn.net/shutterstock/videos/33248488/thumb/stock-footage-the-concept-of-digitalization-of-information-flow-moving-through-rack-servers-in-data-center-shot.webm
                        thumb_mp4:
                          url: https://ak8.picdn.net/shutterstock/videos/33248488/thumb/stock-footage-the-concept-of-digitalization-of-information-flow-moving-through-rack-servers-in-data-center-shot.mp4
                        preview_webm:
                          url: https://ak8.picdn.net/shutterstock/videos/33248488/preview/stock-footage-the-concept-of-digitalization-of-information-flow-moving-through-rack-servers-in-data-center-shot.webm
                        preview_mp4:
                          url: https://ak8.picdn.net/shutterstock/videos/33248488/preview/stock-footage-the-concept-of-digitalization-of-information-flow-moving-through-rack-servers-in-data-center-shot.mp4
                        thumb_jpg:
                          url: https://ak8.picdn.net/shutterstock/videos/33248488/thumb/12.jpg
                        preview_jpg:
                          url: https://ak8.picdn.net/shutterstock/videos/33248488/thumb/12.jpg
                      url: https://www.shutterstock.com/video/clip-33248488
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - basic: []
      - customer_accessCode: []
      tags:
      - computer_vision
      x-code-samples:
      - lang: shell
        source: 'RESPONSE=$(curl -X POST ''https://api.shutterstock.com/v2/cv/images'' \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -H ''Content-Type: application/json'' \

          -d "{\"base64_image\":\"`base64 myImage.jpg`\"}")


          echo "The next step requires the jq program."


          UPLOAD_ID=$(jq -r .upload_id <<< $RESPONSE)


          curl -X GET https://api.shutterstock.com/v2/cv/similar/videos \

          -H "Accept: application/json" \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -G \

          --data-urlencode "asset_id=$UPLOAD_ID"

          '
      - lang: javascript--nodejs
        source: "const sstk = require(\"shutterstock-api\");\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: 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"
      operationId: getSimilarVideos
      summary: List similar videos
      description: This endpoint returns videos that are visually similar to an image that you specify or upload.
  /v2/cv/keywords:
    get:
      parameters:
      - description: The asset ID or upload ID to suggest keywords for
        in: query
        name: asset_id
        required: true
        example: U6ba16262e3bc2db470b8e3cfa8aaab25
        schema:
          oneOf:
          - $ref: '#/components/schemas/AssetUploadId'
          - $ref: '#/components/schemas/AssetId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeywordDataList'
              examples:
                response:
                  value:
                    data:
                    - nature
                    - wildlife
                    - animal
                    - cute
                    - bamboo
                    - panda
                    - china
                    - wild
                    - endangered
                    - black
                    - bear
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '415':
          description: Unsupported Media Type
      security:
      - basic: []
      - customer_accessCode: []
      tags:
      - computer_vision
      x-code-samples:
      - lang: shell
        source: 'RESPONSE=$(curl -X POST ''https://api.shutterstock.com/v2/cv/images'' \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -H ''Content-Type: application/json'' \

          -d "{\"base64_image\":\"`base64 myImage.jpg`\"}")


          echo "The next step requires the jq program."


          UPLOAD_ID=$(jq -r .upload_id <<< $RESPONSE)


          curl -X GET https://api.shutterstock.com/v2/cv/keywords \

          -H "Accept: application/json" \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -G \

          --data-urlencode "asset_id=$UPLOAD_ID"'
      - lang: javascript--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: 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);"
      operationId: getKeywords
      summary: List suggested keywords
      description: This endpoint returns a list of suggested keywords for a media item that you specify or upload.
  /v2/images:
    post:
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageCreateResponse'
              examples:
                response:
                  value:
                    id: Udb14e1c3540bdbf82b4b3fe12d3a44f2
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '413':
          description: Payload Too Large
      security:
      - basic: []
      - customer_accessCode: []
      tags:
      - computer_vision
      x-code-samples:
      - lang: shell
        source: 'curl -X POST ''https://api.shutterstock.com/v2/images'' \

          -H "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN" \

          -H ''Content-Type: application/json'' \

          -d "{\"base64_image\":\"`base64 myImage.jpg`\"}"

          '
      - lang: javascript--nodejs
        source: "const sstk = require(\"shutterstock-api\");\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: 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"
      operationId: uploadEphemeralImage
      summary: Upload ephemeral images
      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.
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageCreateRequest'
            examples:
              default:
                value:
                  base64_image: R0lGODlhgACAAPcAAEwiBLyaLOzNUNmWFNjOrNSuN7x6PPzqeOTMgfKSDMyuTPzwsdi2dHwuBPzbVu
        description: The image data in JPEG or PNG format
        required: true
components:
  schemas:
    ImageCreateResponse:
      description: Image upload information
      properties:
        id:
          type: string
      required:
      - id
      type: object
    VideoSizeDetails:
      description: Video asset information
      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
    Image:
      description: Information about an image
      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
          type: string
          format: uri
        aspect:
          description: Aspect ratio of the image
          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
        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
    Error:
      description: Error object
      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
    VideoSearchResults:
      description: Video search results
      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
        total_count:
          description: Total count of all results across all pages
          type: integer
        search_id:
          description: Unique identifier for the search request
          type: string
      required:
      - data
      - total_count
      - search_id
      type: object
    Urls:
      description: List of URLs
      properties:
        urls:
          description: URLs
          items:
            type: string
          type: array
      required:
      - urls
      type: object
    Video:
      description: Information about a video
      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
          type: string
          format: uri
        aspect:
          description: Aspect ratio of this video in decimal format
          type: number
        aspect_ratio:
          description: Aspect ratio of the video
          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: '#/compon

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shutterstock/refs/heads/main/openapi/shutterstock-computer-vision-api-openapi.yml