Shutterstock · Capability

Shutterstock API Reference — editorial_video

Shutterstock API Reference — editorial_video. 4 operations. Lead operation: List editorial video categories. Self-contained Naftiko capability covering one Shutterstock business surface.

Run with Naftiko Shutterstockeditorial_video

What You Can Do

GET
Geteditorialcategories — List editorial video categories
/v1/v2/editorial/videos/categories
POST
Licenseeditorialvideo — License editorial video content
/v1/v2/editorial/videos/licenses
GET
Editorialvideossearch — Search editorial video content
/v1/v2/editorial/videos/search
GET
Editorialvideosdetails — Get editorial video content details
/v1/v2/editorial/videos/{id}

MCP Tools

list-editorial-video-categories

List editorial video categories

read-only idempotent
license-editorial-video-content

License editorial video content

search-editorial-video-content

Search editorial video content

read-only idempotent
get-editorial-video-content-details

Get editorial video content details

read-only idempotent

Capability Spec

shutterstock-editorial-video.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Shutterstock API Reference — editorial_video
  description: 'Shutterstock API Reference — editorial_video. 4 operations. Lead operation: List editorial video categories.
    Self-contained Naftiko capability covering one Shutterstock business surface.'
  tags:
  - Shutterstock
  - editorial_video
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SHUTTERSTOCK_API_KEY: SHUTTERSTOCK_API_KEY
capability:
  consumes:
  - type: http
    namespace: shutterstock-editorial-video
    baseUri: https://api.shutterstock.com
    description: Shutterstock API Reference — editorial_video business capability. Self-contained, no shared references.
    resources:
    - name: v2-editorial-videos-categories
      path: /v2/editorial/videos/categories
      operations:
      - name: geteditorialcategories
        method: GET
        description: List editorial video categories
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-editorial-videos-licenses
      path: /v2/editorial/videos/licenses
      operations:
      - name: licenseeditorialvideo
        method: POST
        description: License editorial video content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v2-editorial-videos-search
      path: /v2/editorial/videos/search
      operations:
      - name: editorialvideossearch
        method: GET
        description: Search editorial video content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
          description: One or more search terms separated by spaces
        - name: sort
          in: query
          type: string
          description: Sort by
        - name: category
          in: query
          type: string
          description: Show editorial video content within a certain editorial category; specify by category name
        - name: country
          in: query
          type: string
          description: Show only editorial video content that is available for distribution in a certain country
          required: true
        - name: supplier_code
          in: query
          type: array
          description: Show only editorial video content from certain suppliers
        - name: date_start
          in: query
          type: string
          description: Show only editorial video content generated on or after a specific date
        - name: date_end
          in: query
          type: string
          description: Show only editorial video content generated on or before a specific date
        - name: resolution
          in: query
          type: string
          description: Show only editorial video content with specific resolution
        - name: fps
          in: query
          type: number
          description: Show only editorial video content generated with specific frames per second
        - name: per_page
          in: query
          type: integer
          description: Number of results per page
        - name: cursor
          in: query
          type: string
          description: The cursor of the page with which to start fetching results; this cursor is returned from previous
            requests
    - name: v2-editorial-videos-id
      path: /v2/editorial/videos/{id}
      operations:
      - name: editorialvideosdetails
        method: GET
        description: Get editorial video content details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Editorial ID
          required: true
        - name: country
          in: query
          type: string
          description: Returns only if the content is available for distribution in a certain country
          required: true
    authentication:
      type: bearer
      token: '{{env.SHUTTERSTOCK_API_KEY}}'
  exposes:
  - type: rest
    namespace: shutterstock-editorial-video-rest
    port: 8080
    description: REST adapter for Shutterstock API Reference — editorial_video. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/v2/editorial/videos/categories
      name: v2-editorial-videos-categories
      description: REST surface for v2-editorial-videos-categories.
      operations:
      - method: GET
        name: geteditorialcategories
        description: List editorial video categories
        call: shutterstock-editorial-video.geteditorialcategories
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/editorial/videos/licenses
      name: v2-editorial-videos-licenses
      description: REST surface for v2-editorial-videos-licenses.
      operations:
      - method: POST
        name: licenseeditorialvideo
        description: License editorial video content
        call: shutterstock-editorial-video.licenseeditorialvideo
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/editorial/videos/search
      name: v2-editorial-videos-search
      description: REST surface for v2-editorial-videos-search.
      operations:
      - method: GET
        name: editorialvideossearch
        description: Search editorial video content
        call: shutterstock-editorial-video.editorialvideossearch
        with:
          query: rest.query
          sort: rest.sort
          category: rest.category
          country: rest.country
          supplier_code: rest.supplier_code
          date_start: rest.date_start
          date_end: rest.date_end
          resolution: rest.resolution
          fps: rest.fps
          per_page: rest.per_page
          cursor: rest.cursor
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/editorial/videos/{id}
      name: v2-editorial-videos-id
      description: REST surface for v2-editorial-videos-id.
      operations:
      - method: GET
        name: editorialvideosdetails
        description: Get editorial video content details
        call: shutterstock-editorial-video.editorialvideosdetails
        with:
          id: rest.id
          country: rest.country
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: shutterstock-editorial-video-mcp
    port: 9090
    transport: http
    description: MCP adapter for Shutterstock API Reference — editorial_video. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: list-editorial-video-categories
      description: List editorial video categories
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: shutterstock-editorial-video.geteditorialcategories
      outputParameters:
      - type: object
        mapping: $.
    - name: license-editorial-video-content
      description: License editorial video content
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: shutterstock-editorial-video.licenseeditorialvideo
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: search-editorial-video-content
      description: Search editorial video content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: shutterstock-editorial-video.editorialvideossearch
      with:
        query: tools.query
        sort: tools.sort
        category: tools.category
        country: tools.country
        supplier_code: tools.supplier_code
        date_start: tools.date_start
        date_end: tools.date_end
        resolution: tools.resolution
        fps: tools.fps
        per_page: tools.per_page
        cursor: tools.cursor
      outputParameters:
      - type: object
        mapping: $.
    - name: get-editorial-video-content-details
      description: Get editorial video content details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: shutterstock-editorial-video.editorialvideosdetails
      with:
        id: tools.id
        country: tools.country
      outputParameters:
      - type: object
        mapping: $.