API Snap · Capability

API Snap — Images

API Snap — Images. 3 operations. Lead operation: Generate Placeholder Image. Self-contained Naftiko capability covering one Api Snap business surface.

Run with Naftiko Api SnapImages

What You Can Do

GET
Generateplaceholderimage — Generate Placeholder Image
/v1/api/placeholder
GET
Generateqrcode — Generate QR Code
/v1/api/qr
POST
Resizeimage — Resize and Convert Images
/v1/api/resize

MCP Tools

generate-placeholder-image

Generate Placeholder Image

read-only idempotent
generate-qr-code

Generate QR Code

read-only idempotent
resize-and-convert-images

Resize and Convert Images

Capability Spec

api-snap-images.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: API Snap — Images
  description: 'API Snap — Images. 3 operations. Lead operation: Generate Placeholder Image. Self-contained Naftiko capability
    covering one Api Snap business surface.'
  tags:
  - Api Snap
  - Images
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    API_SNAP_API_KEY: API_SNAP_API_KEY
capability:
  consumes:
  - type: http
    namespace: api-snap-images
    baseUri: https://api-snap.com
    description: API Snap — Images business capability. Self-contained, no shared references.
    resources:
    - name: api-placeholder
      path: /api/placeholder
      operations:
      - name: generateplaceholderimage
        method: GET
        description: Generate Placeholder Image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: w
          in: query
          type: integer
          description: Image width in pixels (1–2000).
        - name: h
          in: query
          type: integer
          description: Image height in pixels (1–2000).
        - name: bg
          in: query
          type: string
          description: Background color as a hex string without the `#` prefix.
        - name: fg
          in: query
          type: string
          description: Text/foreground color as a hex string without the `#` prefix.
        - name: text
          in: query
          type: string
          description: Label text to display on the image. Defaults to the dimensions (e.g. `300x200`).
    - name: api-qr
      path: /api/qr
      operations:
      - name: generateqrcode
        method: GET
        description: Generate QR Code
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: data
          in: query
          type: string
          description: The text or URL to encode in the QR code. Also accepted as `url`.
          required: true
        - name: size
          in: query
          type: integer
          description: Width/height of the QR code in pixels (max 1000).
        - name: format
          in: query
          type: string
          description: Output format.
        - name: dark
          in: query
          type: string
          description: Hex color for dark (foreground) modules.
        - name: light
          in: query
          type: string
          description: Hex color for light (background) modules.
    - name: api-resize
      path: /api/resize
      operations:
      - name: resizeimage
        method: POST
        description: Resize and Convert Images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.API_SNAP_API_KEY}}'
  exposes:
  - type: rest
    namespace: api-snap-images-rest
    port: 8080
    description: REST adapter for API Snap — Images. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/api/placeholder
      name: api-placeholder
      description: REST surface for api-placeholder.
      operations:
      - method: GET
        name: generateplaceholderimage
        description: Generate Placeholder Image
        call: api-snap-images.generateplaceholderimage
        with:
          w: rest.w
          h: rest.h
          bg: rest.bg
          fg: rest.fg
          text: rest.text
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/qr
      name: api-qr
      description: REST surface for api-qr.
      operations:
      - method: GET
        name: generateqrcode
        description: Generate QR Code
        call: api-snap-images.generateqrcode
        with:
          data: rest.data
          size: rest.size
          format: rest.format
          dark: rest.dark
          light: rest.light
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/resize
      name: api-resize
      description: REST surface for api-resize.
      operations:
      - method: POST
        name: resizeimage
        description: Resize and Convert Images
        call: api-snap-images.resizeimage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: api-snap-images-mcp
    port: 9090
    transport: http
    description: MCP adapter for API Snap — Images. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: generate-placeholder-image
      description: Generate Placeholder Image
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: api-snap-images.generateplaceholderimage
      with:
        w: tools.w
        h: tools.h
        bg: tools.bg
        fg: tools.fg
        text: tools.text
      outputParameters:
      - type: object
        mapping: $.
    - name: generate-qr-code
      description: Generate QR Code
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: api-snap-images.generateqrcode
      with:
        data: tools.data
        size: tools.size
        format: tools.format
        dark: tools.dark
        light: tools.light
      outputParameters:
      - type: object
        mapping: $.
    - name: resize-and-convert-images
      description: Resize and Convert Images
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: api-snap-images.resizeimage
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.