Iterable · Capability

Iterable REST API — Catalogs

Iterable REST API — Catalogs. 5 operations. Lead operation: Get a catalog. Self-contained Naftiko capability covering one Iterable business surface.

Run with Naftiko IterableCatalogs

What You Can Do

GET
Getcatalog — Get a catalog
/v1/catalogs/{catalogname}
DELETE
Deletecatalog — Delete a catalog
/v1/catalogs/{catalogname}
GET
Listcatalogitems — List items in a catalog
/v1/catalogs/{catalogname}/items
PUT
Createorreplacecatalogitem — Create or replace a catalog item
/v1/catalogs/{catalogname}/items/{itemid}
DELETE
Deletecatalogitem — Delete a catalog item
/v1/catalogs/{catalogname}/items/{itemid}

MCP Tools

get-catalog

Get a catalog

read-only idempotent
delete-catalog

Delete a catalog

idempotent
list-items-catalog

List items in a catalog

read-only idempotent
create-replace-catalog-item

Create or replace a catalog item

idempotent
delete-catalog-item

Delete a catalog item

idempotent

Capability Spec

rest-catalogs.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Iterable REST API — Catalogs
  description: 'Iterable REST API — Catalogs. 5 operations. Lead operation: Get a catalog. Self-contained Naftiko capability
    covering one Iterable business surface.'
  tags:
  - Iterable
  - Catalogs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ITERABLE_API_KEY: ITERABLE_API_KEY
capability:
  consumes:
  - type: http
    namespace: rest-catalogs
    baseUri: https://api.iterable.com/api
    description: Iterable REST API — Catalogs business capability. Self-contained, no shared references.
    resources:
    - name: catalogs-catalogName
      path: /catalogs/{catalogName}
      operations:
      - name: getcatalog
        method: GET
        description: Get a catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletecatalog
        method: DELETE
        description: Delete a catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: catalogs-catalogName-items
      path: /catalogs/{catalogName}/items
      operations:
      - name: listcatalogitems
        method: GET
        description: List items in a catalog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number for pagination
        - name: pageSize
          in: query
          type: integer
          description: Number of items per page
    - name: catalogs-catalogName-items-itemId
      path: /catalogs/{catalogName}/items/{itemId}
      operations:
      - name: createorreplacecatalogitem
        method: PUT
        description: Create or replace a catalog item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: itemId
          in: path
          type: string
          description: The unique identifier for the catalog item
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletecatalogitem
        method: DELETE
        description: Delete a catalog item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: itemId
          in: path
          type: string
          description: The unique identifier for the catalog item
          required: true
    authentication:
      type: apikey
      key: Api-Key
      value: '{{env.ITERABLE_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: rest-catalogs-rest
    port: 8080
    description: REST adapter for Iterable REST API — Catalogs. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/catalogs/{catalogname}
      name: catalogs-catalogname
      description: REST surface for catalogs-catalogName.
      operations:
      - method: GET
        name: getcatalog
        description: Get a catalog
        call: rest-catalogs.getcatalog
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletecatalog
        description: Delete a catalog
        call: rest-catalogs.deletecatalog
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/catalogs/{catalogname}/items
      name: catalogs-catalogname-items
      description: REST surface for catalogs-catalogName-items.
      operations:
      - method: GET
        name: listcatalogitems
        description: List items in a catalog
        call: rest-catalogs.listcatalogitems
        with:
          page: rest.page
          pageSize: rest.pageSize
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/catalogs/{catalogname}/items/{itemid}
      name: catalogs-catalogname-items-itemid
      description: REST surface for catalogs-catalogName-items-itemId.
      operations:
      - method: PUT
        name: createorreplacecatalogitem
        description: Create or replace a catalog item
        call: rest-catalogs.createorreplacecatalogitem
        with:
          itemId: rest.itemId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletecatalogitem
        description: Delete a catalog item
        call: rest-catalogs.deletecatalogitem
        with:
          itemId: rest.itemId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: rest-catalogs-mcp
    port: 9090
    transport: http
    description: MCP adapter for Iterable REST API — Catalogs. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-catalog
      description: Get a catalog
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalogs.getcatalog
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-catalog
      description: Delete a catalog
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: rest-catalogs.deletecatalog
      outputParameters:
      - type: object
        mapping: $.
    - name: list-items-catalog
      description: List items in a catalog
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rest-catalogs.listcatalogitems
      with:
        page: tools.page
        pageSize: tools.pageSize
      outputParameters:
      - type: object
        mapping: $.
    - name: create-replace-catalog-item
      description: Create or replace a catalog item
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: rest-catalogs.createorreplacecatalogitem
      with:
        itemId: tools.itemId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-catalog-item
      description: Delete a catalog item
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: rest-catalogs.deletecatalogitem
      with:
        itemId: tools.itemId
      outputParameters:
      - type: object
        mapping: $.