Pexels · Capability

Pexels API — Videos

Pexels API — Videos. 3 operations. Lead operation: Popular Videos. Self-contained Naftiko capability covering one Pexels business surface.

Run with Naftiko PexelsVideos

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

pexels-videos.yaml Raw ↑
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: $.