Memesio · Capability

Memesio API Contracts — memes

Memesio API Contracts — memes. 6 operations. Lead operation: List Hosted Memes with Canonical Share Metadata. Self-contained Naftiko capability covering one Memesio business surface.

Run with Naftiko Memesiomemes

What You Can Do

GET
Get — List Hosted Memes with Canonical Share Metadata
/v1/api/memes
POST
Post — Store a Rendered Meme and Return Canonical Share/Image URLS
/v1/api/memes
GET
Get — Read One Meme by Opaque Slug, Public Slug, or Source Slug
/v1/api/memes/{slug}
DELETE
Delete — Delete One Signed-in Account-Owned Meme and Purge Public Access Paths
/v1/api/memes/{slug}
POST
Post — Render a Hosted Meme from a Stored Template Using Anonymous or Keyed Caption Input
/v1/api/v1/memes/caption-template
POST
Post — Upload an Image, Place Top or Bottom Caption Boxes, and Store the Hosted Meme
/v1/api/v1/memes/caption-upload

MCP Tools

list-hosted-memes-canonical-share

List Hosted Memes with Canonical Share Metadata

read-only idempotent
store-rendered-meme-and-return

Store a Rendered Meme and Return Canonical Share/Image URLS

read-one-meme-opaque-slug

Read One Meme by Opaque Slug, Public Slug, or Source Slug

read-only idempotent
delete-one-signed-account-owned

Delete One Signed-in Account-Owned Meme and Purge Public Access Paths

idempotent
render-hosted-meme-stored-template

Render a Hosted Meme from a Stored Template Using Anonymous or Keyed Caption Input

upload-image-place-top-bottom

Upload an Image, Place Top or Bottom Caption Boxes, and Store the Hosted Meme

Capability Spec

memesio-memes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Memesio API Contracts — memes
  description: 'Memesio API Contracts — memes. 6 operations. Lead operation: List Hosted Memes with Canonical Share Metadata.
    Self-contained Naftiko capability covering one Memesio business surface.'
  tags:
  - Memesio
  - memes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MEMESIO_API_KEY: MEMESIO_API_KEY
capability:
  consumes:
  - type: http
    namespace: memesio-memes
    baseUri: ''
    description: Memesio API Contracts — memes business capability. Self-contained, no shared references.
    resources:
    - name: api-memes
      path: /api/memes
      operations:
      - name: get
        method: GET
        description: List Hosted Memes with Canonical Share Metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
        - name: templateSlug
          in: query
          type: string
        - name: visibility
          in: query
          type: string
        - name: ownerToken
          in: query
          type: string
        - name: officialOnly
          in: query
          type: boolean
        - name: excludeTemplateClones
          in: query
          type: boolean
        - name: includeNsfw
          in: query
          type: boolean
        - name: page
          in: query
          type: integer
        - name: pageSize
          in: query
          type: integer
      - name: post
        method: POST
        description: Store a Rendered Meme and Return Canonical Share/Image URLS
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-memes-slug
      path: /api/memes/{slug}
      operations:
      - name: get
        method: GET
        description: Read One Meme by Opaque Slug, Public Slug, or Source Slug
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: slug
          in: path
          type: string
          required: true
        - name: ownerToken
          in: query
          type: string
      - name: delete
        method: DELETE
        description: Delete One Signed-in Account-Owned Meme and Purge Public Access Paths
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: slug
          in: path
          type: string
          required: true
    - name: api-v1-memes-caption-template
      path: /api/v1/memes/caption-template
      operations:
      - name: post
        method: POST
        description: Render a Hosted Meme from a Stored Template Using Anonymous or Keyed Caption Input
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v1-memes-caption-upload
      path: /api/v1/memes/caption-upload
      operations:
      - name: post
        method: POST
        description: Upload an Image, Place Top or Bottom Caption Boxes, and Store the Hosted Meme
        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: x-developer-api-key
      value: '{{env.MEMESIO_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: memesio-memes-rest
    port: 8080
    description: REST adapter for Memesio API Contracts — memes. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/api/memes
      name: api-memes
      description: REST surface for api-memes.
      operations:
      - method: GET
        name: get
        description: List Hosted Memes with Canonical Share Metadata
        call: memesio-memes.get
        with:
          query: rest.query
          templateSlug: rest.templateSlug
          visibility: rest.visibility
          ownerToken: rest.ownerToken
          officialOnly: rest.officialOnly
          excludeTemplateClones: rest.excludeTemplateClones
          includeNsfw: rest.includeNsfw
          page: rest.page
          pageSize: rest.pageSize
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: post
        description: Store a Rendered Meme and Return Canonical Share/Image URLS
        call: memesio-memes.post
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/memes/{slug}
      name: api-memes-slug
      description: REST surface for api-memes-slug.
      operations:
      - method: GET
        name: get
        description: Read One Meme by Opaque Slug, Public Slug, or Source Slug
        call: memesio-memes.get
        with:
          slug: rest.slug
          ownerToken: rest.ownerToken
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: delete
        description: Delete One Signed-in Account-Owned Meme and Purge Public Access Paths
        call: memesio-memes.delete
        with:
          slug: rest.slug
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/memes/caption-template
      name: api-v1-memes-caption-template
      description: REST surface for api-v1-memes-caption-template.
      operations:
      - method: POST
        name: post
        description: Render a Hosted Meme from a Stored Template Using Anonymous or Keyed Caption Input
        call: memesio-memes.post
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/memes/caption-upload
      name: api-v1-memes-caption-upload
      description: REST surface for api-v1-memes-caption-upload.
      operations:
      - method: POST
        name: post
        description: Upload an Image, Place Top or Bottom Caption Boxes, and Store the Hosted Meme
        call: memesio-memes.post
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: memesio-memes-mcp
    port: 9090
    transport: http
    description: MCP adapter for Memesio API Contracts — memes. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: list-hosted-memes-canonical-share
      description: List Hosted Memes with Canonical Share Metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: memesio-memes.get
      with:
        query: tools.query
        templateSlug: tools.templateSlug
        visibility: tools.visibility
        ownerToken: tools.ownerToken
        officialOnly: tools.officialOnly
        excludeTemplateClones: tools.excludeTemplateClones
        includeNsfw: tools.includeNsfw
        page: tools.page
        pageSize: tools.pageSize
      outputParameters:
      - type: object
        mapping: $.
    - name: store-rendered-meme-and-return
      description: Store a Rendered Meme and Return Canonical Share/Image URLS
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: memesio-memes.post
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: read-one-meme-opaque-slug
      description: Read One Meme by Opaque Slug, Public Slug, or Source Slug
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: memesio-memes.get
      with:
        slug: tools.slug
        ownerToken: tools.ownerToken
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-one-signed-account-owned
      description: Delete One Signed-in Account-Owned Meme and Purge Public Access Paths
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: memesio-memes.delete
      with:
        slug: tools.slug
      outputParameters:
      - type: object
        mapping: $.
    - name: render-hosted-meme-stored-template
      description: Render a Hosted Meme from a Stored Template Using Anonymous or Keyed Caption Input
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: memesio-memes.post
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-image-place-top-bottom
      description: Upload an Image, Place Top or Bottom Caption Boxes, and Store the Hosted Meme
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: memesio-memes.post
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.