Reolink · Capability

Reolink Camera HTTP API — Video

Reolink Camera HTTP API — Video. 8 operations. Lead operation: Get image settings. Self-contained Naftiko capability covering one Reolink business surface.

Run with Naftiko ReolinkVideo

What You Can Do

POST
Getimage — Get image settings
/v1/cgi-bin/api-cgi-cmd-getimage-token-token
POST
Getisp — Get ISP settings
/v1/cgi-bin/api-cgi-cmd-getisp-token-token
POST
Getmask — Get privacy mask settings
/v1/cgi-bin/api-cgi-cmd-getmask-token-token
POST
Getosd — Get on-screen display settings
/v1/cgi-bin/api-cgi-cmd-getosd-token-token
POST
Setimage — Set image settings
/v1/cgi-bin/api-cgi-cmd-setimage-token-token
POST
Setmask — Set privacy mask settings
/v1/cgi-bin/api-cgi-cmd-setmask-token-token
POST
Setosd — Set on-screen display settings
/v1/cgi-bin/api-cgi-cmd-setosd-token-token
POST
Snap — Capture snapshot
/v1/cgi-bin/api-cgi-cmd-snap-token-token

MCP Tools

get-image-settings

Get image settings

read-only
get-isp-settings

Get ISP settings

read-only
get-privacy-mask-settings

Get privacy mask settings

read-only
get-screen-display-settings

Get on-screen display settings

read-only
set-image-settings

Set image settings

set-privacy-mask-settings

Set privacy mask settings

set-screen-display-settings

Set on-screen display settings

capture-snapshot

Capture snapshot

Capability Spec

camera-video.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Reolink Camera HTTP API — Video
  description: 'Reolink Camera HTTP API — Video. 8 operations. Lead operation: Get image settings. Self-contained Naftiko
    capability covering one Reolink business surface.'
  tags:
  - Reolink
  - Video
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    REOLINK_API_KEY: REOLINK_API_KEY
capability:
  consumes:
  - type: http
    namespace: camera-video
    baseUri: https://{camera_ip}
    description: Reolink Camera HTTP API — Video business capability. Self-contained, no shared references.
    resources:
    - name: cgi-bin-api.cgi?cmd=GetImage&token={token}
      path: /cgi-bin/api.cgi?cmd=GetImage&token={token}
      operations:
      - name: getimage
        method: POST
        description: Get image settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=GetIsp&token={token}
      path: /cgi-bin/api.cgi?cmd=GetIsp&token={token}
      operations:
      - name: getisp
        method: POST
        description: Get ISP settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=GetMask&token={token}
      path: /cgi-bin/api.cgi?cmd=GetMask&token={token}
      operations:
      - name: getmask
        method: POST
        description: Get privacy mask settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=GetOsd&token={token}
      path: /cgi-bin/api.cgi?cmd=GetOsd&token={token}
      operations:
      - name: getosd
        method: POST
        description: Get on-screen display settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=SetImage&token={token}
      path: /cgi-bin/api.cgi?cmd=SetImage&token={token}
      operations:
      - name: setimage
        method: POST
        description: Set image settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=SetMask&token={token}
      path: /cgi-bin/api.cgi?cmd=SetMask&token={token}
      operations:
      - name: setmask
        method: POST
        description: Set privacy mask settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=SetOsd&token={token}
      path: /cgi-bin/api.cgi?cmd=SetOsd&token={token}
      operations:
      - name: setosd
        method: POST
        description: Set on-screen display settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: cgi-bin-api.cgi?cmd=Snap&token={token}
      path: /cgi-bin/api.cgi?cmd=Snap&token={token}
      operations:
      - name: snap
        method: POST
        description: Capture snapshot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: token
      value: '{{env.REOLINK_API_KEY}}'
      placement: query
  exposes:
  - type: rest
    namespace: camera-video-rest
    port: 8080
    description: REST adapter for Reolink Camera HTTP API — Video. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/cgi-bin/api-cgi-cmd-getimage-token-token
      name: cgi-bin-api-cgi-cmd-getimage-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=GetImage&token={token}.
      operations:
      - method: POST
        name: getimage
        description: Get image settings
        call: camera-video.getimage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-getisp-token-token
      name: cgi-bin-api-cgi-cmd-getisp-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=GetIsp&token={token}.
      operations:
      - method: POST
        name: getisp
        description: Get ISP settings
        call: camera-video.getisp
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-getmask-token-token
      name: cgi-bin-api-cgi-cmd-getmask-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=GetMask&token={token}.
      operations:
      - method: POST
        name: getmask
        description: Get privacy mask settings
        call: camera-video.getmask
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-getosd-token-token
      name: cgi-bin-api-cgi-cmd-getosd-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=GetOsd&token={token}.
      operations:
      - method: POST
        name: getosd
        description: Get on-screen display settings
        call: camera-video.getosd
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-setimage-token-token
      name: cgi-bin-api-cgi-cmd-setimage-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=SetImage&token={token}.
      operations:
      - method: POST
        name: setimage
        description: Set image settings
        call: camera-video.setimage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-setmask-token-token
      name: cgi-bin-api-cgi-cmd-setmask-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=SetMask&token={token}.
      operations:
      - method: POST
        name: setmask
        description: Set privacy mask settings
        call: camera-video.setmask
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-setosd-token-token
      name: cgi-bin-api-cgi-cmd-setosd-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=SetOsd&token={token}.
      operations:
      - method: POST
        name: setosd
        description: Set on-screen display settings
        call: camera-video.setosd
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/cgi-bin/api-cgi-cmd-snap-token-token
      name: cgi-bin-api-cgi-cmd-snap-token-token
      description: REST surface for cgi-bin-api.cgi?cmd=Snap&token={token}.
      operations:
      - method: POST
        name: snap
        description: Capture snapshot
        call: camera-video.snap
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: camera-video-mcp
    port: 9090
    transport: http
    description: MCP adapter for Reolink Camera HTTP API — Video. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-image-settings
      description: Get image settings
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: camera-video.getimage
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-isp-settings
      description: Get ISP settings
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: camera-video.getisp
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-privacy-mask-settings
      description: Get privacy mask settings
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: camera-video.getmask
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-screen-display-settings
      description: Get on-screen display settings
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: camera-video.getosd
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: set-image-settings
      description: Set image settings
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: camera-video.setimage
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: set-privacy-mask-settings
      description: Set privacy mask settings
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: camera-video.setmask
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: set-screen-display-settings
      description: Set on-screen display settings
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: camera-video.setosd
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: capture-snapshot
      description: Capture snapshot
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: camera-video.snap
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.