Pexels · Capability
Pexels API — Videos
Pexels API — Videos. 3 operations. Lead operation: Popular Videos. Self-contained Naftiko capability covering one Pexels business surface.
What You Can Do
GET
Getpopularvideos
— Popular Videos
/v1/videos/popular
GET
Searchvideos
— Search Videos
/v1/videos/search
GET
Getvideo
— Get Video
/v1/videos/videos/{id}
MCP Tools
popular-videos
Popular Videos
read-only
idempotent
search-videos
Search Videos
read-only
idempotent
get-video
Get Video
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Pexels API — Videos
description: 'Pexels API — Videos. 3 operations. Lead operation: Popular Videos. Self-contained Naftiko capability covering
one Pexels business surface.'
tags:
- Pexels
- Videos
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
PEXELS_API_KEY: PEXELS_API_KEY
capability:
consumes:
- type: http
namespace: pexels-videos
baseUri: https://api.pexels.com/v1
description: Pexels API — Videos business capability. Self-contained, no shared references.
resources:
- name: videos-popular
path: /videos/popular
operations:
- name: getpopularvideos
method: GET
description: Popular Videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: min_width
in: query
type: integer
- name: min_height
in: query
type: integer
- name: min_duration
in: query
type: integer
- name: max_duration
in: query
type: integer
- name: page
in: query
type: integer
- name: per_page
in: query
type: integer
- name: videos-search
path: /videos/search
operations:
- name: searchvideos
method: GET
description: Search Videos
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: query
in: query
type: string
required: true
- name: orientation
in: query
type: string
- name: size
in: query
type: string
- name: locale
in: query
type: string
- name: page
in: query
type: integer
- name: per_page
in: query
type: integer
- name: videos-videos-id
path: /videos/videos/{id}
operations:
- name: getvideo
method: GET
description: Get Video
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
required: true
authentication:
type: apikey
key: Authorization
value: '{{env.PEXELS_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: pexels-videos-rest
port: 8080
description: REST adapter for Pexels API — Videos. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/videos/popular
name: videos-popular
description: REST surface for videos-popular.
operations:
- method: GET
name: getpopularvideos
description: Popular Videos
call: pexels-videos.getpopularvideos
with:
min_width: rest.min_width
min_height: rest.min_height
min_duration: rest.min_duration
max_duration: rest.max_duration
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- path: /v1/videos/search
name: videos-search
description: REST surface for videos-search.
operations:
- method: GET
name: searchvideos
description: Search Videos
call: pexels-videos.searchvideos
with:
query: rest.query
orientation: rest.orientation
size: rest.size
locale: rest.locale
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- path: /v1/videos/videos/{id}
name: videos-videos-id
description: REST surface for videos-videos-id.
operations:
- method: GET
name: getvideo
description: Get Video
call: pexels-videos.getvideo
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: pexels-videos-mcp
port: 9090
transport: http
description: MCP adapter for Pexels API — Videos. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: popular-videos
description: Popular Videos
hints:
readOnly: true
destructive: false
idempotent: true
call: pexels-videos.getpopularvideos
with:
min_width: tools.min_width
min_height: tools.min_height
min_duration: tools.min_duration
max_duration: tools.max_duration
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.
- name: search-videos
description: Search Videos
hints:
readOnly: true
destructive: false
idempotent: true
call: pexels-videos.searchvideos
with:
query: tools.query
orientation: tools.orientation
size: tools.size
locale: tools.locale
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.
- name: get-video
description: Get Video
hints:
readOnly: true
destructive: false
idempotent: true
call: pexels-videos.getvideo
with:
id: tools.id
outputParameters:
- type: object
mapping: $.