Shutterstock · Agentic Access

Shutterstock Agentic Access

x-agentic-access generated

Shutterstock exposes 95 API operations that an AI agent could call, of which 28 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 67 read and 28 write.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

ImagesMediaPhotosStock ImagesVideosAudioLicensingCreative Content
Operations: 95 Acting: 28 Human-in-the-loop: 0 Method: generated

By consequence

read 67 write 28

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/shutterstock-openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 95
  by_action_class:
    connected: 67
    acting: 28
  by_consequence:
    read: 67
    write: 28
  human_in_the_loop_required: 0
operations:
- path: /v2/images/search
  method: get
  operationId: searchImages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/search/suggestions
  method: get
  operationId: getImageSuggestions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/search/suggestions
  method: post
  operationId: postImageEntities
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/{id}
  method: get
  operationId: getImage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/categories
  method: get
  operationId: getImageCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/{id}/similar
  method: get
  operationId: getSimilarImages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/licenses
  method: post
  operationId: licenseImages
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.create
    - purchases.view
    - user.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/licenses
  method: get
  operationId: getImageLicenseList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - licenses.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/licenses/{id}/downloads
  method: post
  operationId: downloadImage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/recommendations
  method: get
  operationId: getImageRecommendations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/collections
  method: post
  operationId: createLightbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/collections
  method: get
  operationId: getLightboxList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/collections/{id}
  method: get
  operationId: getLightbox
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/collections/{id}
  method: post
  operationId: renameLightbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/collections/{id}
  method: delete
  operationId: deleteLightbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/collections/{id}/items
  method: post
  operationId: addLightboxItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/collections/{id}/items
  method: get
  operationId: getLightboxItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/collections/{id}/items
  method: delete
  operationId: deleteLightboxItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/images/collections/featured
  method: get
  operationId: getFeaturedLightboxList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/collections/featured/{id}
  method: get
  operationId: getFeaturedLightbox
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/collections/featured/{id}/items
  method: get
  operationId: getFeaturedLightboxItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images/updated
  method: get
  operationId: getUpdatedImages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/search
  method: get
  operationId: searchVideos
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/search/suggestions
  method: get
  operationId: getVideoSuggestions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos
  method: get
  operationId: getVideoList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/{id}
  method: get
  operationId: getVideo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/licenses
  method: post
  operationId: licenseVideos
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.create
    - purchases.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/licenses
  method: get
  operationId: getVideoLicenseList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - licenses.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/licenses/{id}/downloads
  method: post
  operationId: downloadVideos
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/collections
  method: post
  operationId: createClipbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/collections
  method: get
  operationId: getClipboxList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/collections/{id}
  method: get
  operationId: getClipbox
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/collections/{id}
  method: post
  operationId: renameClipbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/collections/{id}
  method: delete
  operationId: deleteClipbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/categories
  method: get
  operationId: getVideoCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/collections/{id}/items
  method: post
  operationId: addClipboxItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/collections/{id}/items
  method: get
  operationId: getClipboxItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/collections/{id}/items
  method: delete
  operationId: deleteClipboxItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/videos/{id}/similar
  method: get
  operationId: getSimilarVideos
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/videos/updated
  method: get
  operationId: getUpdatedVideos
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/search
  method: get
  operationId: searchAudio
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/genres
  method: get
  operationId: getGenres
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/instruments
  method: get
  operationId: getInstruments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/moods
  method: get
  operationId: getMoods
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio
  method: get
  operationId: getTrackList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/{id}
  method: get
  operationId: getTrack
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/licenses
  method: post
  operationId: licenseTrack
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/audio/licenses
  method: get
  operationId: getAudioLicenseList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - licenses.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/licenses/{id}/downloads
  method: post
  operationId: downloadTracks
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/audio/collections
  method: post
  operationId: createSoundbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/audio/collections
  method: get
  operationId: getSoundboxList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/collections/{id}
  method: get
  operationId: getSoundbox
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/collections/{id}
  method: post
  operationId: renameSoundbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/audio/collections/{id}
  method: delete
  operationId: deleteSoundbox
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/audio/collections/{id}/items
  method: post
  operationId: addSoundboxItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/audio/collections/{id}/items
  method: get
  operationId: getSoundboxItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - collections.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/audio/collections/{id}/items
  method: delete
  operationId: deleteSoundboxItems
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - collections.edit
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/editorial/images/search
  method: get
  operationId: searchEditorialImages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/images/categories
  method: get
  operationId: getEditorialImageCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/images/{id}
  method: get
  operationId: getEditorialImageDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/images/licenses
  method: get
  operationId: getEditorialImageLicenseList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - licenses.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/images/licenses
  method: post
  operationId: licenseEditorialImages
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.create
    - purchases.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/editorial/images/livefeeds
  method: get
  operationId: getEditorialLivefeedImagesList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/images/livefeeds/{id}
  method: get
  operationId: getEditorialImageLivefeed
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/images/livefeeds/{id}/items
  method: get
  operationId: getEditorialLivefeedImageItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/videos/search
  method: get
  operationId: editorialVideosSearch
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/videos/categories
  method: get
  operationId: getEditorialCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/videos/{id}
  method: get
  operationId: editorialVideosDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/videos/licenses
  method: post
  operationId: licenseEditorialVideo
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.create
    - purchases.view
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/cv/images
  method: post
  operationId: uploadImage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/cv/similar/images
  method: get
  operationId: getSimilarImages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/cv/similar/videos
  method: get
  operationId: getSimilarVideos
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/cv/keywords
  method: get
  operationId: getKeywords
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images
  method: get
  operationId: getImageList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/images
  method: post
  operationId: uploadEphemeralImage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/contributors
  method: get
  operationId: getContributorList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/contributors/{contributor_id}
  method: get
  operationId: getContributor
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/contributors/{contributor_id}/collections
  method: get
  operationId: getContributorCollectionsList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/contributors/{contributor_id}/collections/{id}
  method: get
  operationId: getContributorCollections
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/contributors/{contributor_id}/collections/{id}/items
  method: get
  operationId: getContributorCollectionItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/user
  method: get
  operationId: getUser
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - user.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/user/access_token
  method: get
  operationId: getAccessToken
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/user/subscriptions
  method: get
  operationId: getUserSubsciptionList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - purchases.view
    token:
      max-ttl: 3600
    audit: none
- path: /v2/test
  method: get
  operationId: echo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/test/validate
  method: get
  operationId: validate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/oauth/authorize
  method: get
  operationId: authorize
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/oauth/access_token
  method: post
  operationId: createAccessToken
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/editorial/{id}
  method: get
  operationId: getEditorialImage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/licenses
  method: post
  operationId: licenseEditorialImage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - licenses.create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v2/editorial/livefeeds
  method: get
  operationId: getEditorialLivefeedList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/livefeeds/{id}
  method: get
  operationId: getEditorialLivefeed
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/livefeeds/{id}/items
  method: get
  operationId: getEditorialLivefeedItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/search
  method: get
  operationId: searchEditorial
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/categories
  method: get
  operationId: getEditorialCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/editorial/updated
  method: get
  operationId: getUpdatedImages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none