Courier · Capability

Courier — Notification Templates

Courier — Notification Templates. 14 operations. Lead operation: List Notification Templates. Self-contained Naftiko capability covering one Courier business surface.

Run with Naftiko CourierNotification Templates

What You Can Do

GET
Notificationslist — List Notification Templates
/v1/notifications
POST
Notificationscreate — Create Notification Template
/v1/notifications
GET
Notificationsretrieve — Get Notification Template
/v1/notifications/{id}
PUT
Notificationsreplace — Replace Notification Template
/v1/notifications/{id}
DELETE
Notificationsarchive — Archive Notification Template
/v1/notifications/{id}
GET
Notificationsgetcontent — Get Notification Content
/v1/notifications/{id}/content
PUT
Notificationsputcontent — Put Notification Content
/v1/notifications/{id}/content
PUT
Notificationsputelement — Put Notification Element
/v1/notifications/{id}/elements/{elementid}
PUT
Notificationsputlocale — Put Notification Locale
/v1/notifications/{id}/locales/{localeid}
POST
Notificationspublish — Publish Notification Template
/v1/notifications/{id}/publish
GET
Notificationslistversions — List Notification Template Versions
/v1/notifications/{id}/versions
GET
Notificationsgetsubmissionchecks — Get Submission Checks
/v1/notifications/{id}/{submissionid}/checks
PUT
Notificationsreplacesubmissionchecks — Replace Submission Checks
/v1/notifications/{id}/{submissionid}/checks
DELETE
Notificationscancelsubmission — Cancel Submission
/v1/notifications/{id}/{submissionid}/checks

MCP Tools

list-notification-templates

List Notification Templates

read-only idempotent
create-notification-template

Create Notification Template

get-notification-template

Get Notification Template

read-only idempotent
replace-notification-template

Replace Notification Template

idempotent
archive-notification-template

Archive Notification Template

idempotent
get-notification-content

Get Notification Content

read-only idempotent
put-notification-content

Put Notification Content

idempotent
put-notification-element

Put Notification Element

idempotent
put-notification-locale

Put Notification Locale

idempotent
publish-notification-template

Publish Notification Template

list-notification-template-versions

List Notification Template Versions

read-only idempotent
get-submission-checks

Get Submission Checks

read-only idempotent
replace-submission-checks

Replace Submission Checks

idempotent
cancel-submission

Cancel Submission

idempotent

Capability Spec

courier-notification-templates.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Courier — Notification Templates
  description: 'Courier — Notification Templates. 14 operations. Lead operation: List Notification Templates. Self-contained
    Naftiko capability covering one Courier business surface.'
  tags:
  - Courier
  - Notification Templates
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    COURIER_API_KEY: COURIER_API_KEY
capability:
  consumes:
  - type: http
    namespace: courier-notification-templates
    baseUri: https://api.courier.com
    description: Courier — Notification Templates business capability. Self-contained, no shared references.
    resources:
    - name: notifications
      path: /notifications
      operations:
      - name: notificationslist
        method: GET
        description: List Notification Templates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: cursor
          in: query
          type: string
          description: Opaque pagination cursor from a previous response. Omit for the first page.
        - name: notes
          in: query
          type: boolean
          description: Include template notes in the response. Only applies to legacy templates.
        - name: event_id
          in: query
          type: string
          description: Filter to templates linked to this event map ID.
      - name: notificationscreate
        method: POST
        description: Create Notification Template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: notifications-id
      path: /notifications/{id}
      operations:
      - name: notificationsretrieve
        method: GET
        description: Get Notification Template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Template ID (nt_ prefix).
          required: true
        - name: version
          in: query
          type: string
          description: Version to retrieve. One of "draft", "published", or a version string like "v001". Defaults to "published".
      - name: notificationsreplace
        method: PUT
        description: Replace Notification Template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Template ID (nt_ prefix).
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: notificationsarchive
        method: DELETE
        description: Archive Notification Template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Template ID (nt_ prefix).
          required: true
    - name: notifications-id-content
      path: /notifications/{id}/content
      operations:
      - name: notificationsgetcontent
        method: GET
        description: Get Notification Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID (`nt_` prefix).
          required: true
        - name: version
          in: query
          type: string
          description: Accepts `draft`, `published`, or a version string (e.g., `v001`). Defaults to `published`.
      - name: notificationsputcontent
        method: PUT
        description: Put Notification Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID (`nt_` prefix).
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: notifications-id-elements-elementId
      path: /notifications/{id}/elements/{elementId}
      operations:
      - name: notificationsputelement
        method: PUT
        description: Put Notification Element
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID (`nt_` prefix).
          required: true
        - name: elementId
          in: path
          type: string
          description: Element ID within the template.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: notifications-id-locales-localeId
      path: /notifications/{id}/locales/{localeId}
      operations:
      - name: notificationsputlocale
        method: PUT
        description: Put Notification Locale
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID (`nt_` prefix).
          required: true
        - name: localeId
          in: path
          type: string
          description: Locale code (e.g., `es`, `fr`, `pt-BR`).
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: notifications-id-publish
      path: /notifications/{id}/publish
      operations:
      - name: notificationspublish
        method: POST
        description: Publish Notification Template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Template ID (nt_ prefix).
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: notifications-id-versions
      path: /notifications/{id}/versions
      operations:
      - name: notificationslistversions
        method: GET
        description: List Notification Template Versions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Template ID (nt_ prefix).
          required: true
        - name: cursor
          in: query
          type: string
          description: Opaque pagination cursor from a previous response. Omit for the first page.
        - name: limit
          in: query
          type: integer
          description: Maximum number of versions to return per page. Default 10, max 10.
    - name: notifications-id-submissionId-checks
      path: /notifications/{id}/{submissionId}/checks
      operations:
      - name: notificationsgetsubmissionchecks
        method: GET
        description: Get Submission Checks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID.
          required: true
        - name: submissionId
          in: path
          type: string
          description: Submission ID.
          required: true
      - name: notificationsreplacesubmissionchecks
        method: PUT
        description: Replace Submission Checks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID.
          required: true
        - name: submissionId
          in: path
          type: string
          description: Submission ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: notificationscancelsubmission
        method: DELETE
        description: Cancel Submission
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Notification template ID.
          required: true
        - name: submissionId
          in: path
          type: string
          description: Submission ID.
          required: true
    authentication:
      type: bearer
      token: '{{env.COURIER_API_KEY}}'
  exposes:
  - type: rest
    namespace: courier-notification-templates-rest
    port: 8080
    description: REST adapter for Courier — Notification Templates. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/notifications
      name: notifications
      description: REST surface for notifications.
      operations:
      - method: GET
        name: notificationslist
        description: List Notification Templates
        call: courier-notification-templates.notificationslist
        with:
          cursor: rest.cursor
          notes: rest.notes
          event_id: rest.event_id
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: notificationscreate
        description: Create Notification Template
        call: courier-notification-templates.notificationscreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}
      name: notifications-id
      description: REST surface for notifications-id.
      operations:
      - method: GET
        name: notificationsretrieve
        description: Get Notification Template
        call: courier-notification-templates.notificationsretrieve
        with:
          id: rest.id
          version: rest.version
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: notificationsreplace
        description: Replace Notification Template
        call: courier-notification-templates.notificationsreplace
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: notificationsarchive
        description: Archive Notification Template
        call: courier-notification-templates.notificationsarchive
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}/content
      name: notifications-id-content
      description: REST surface for notifications-id-content.
      operations:
      - method: GET
        name: notificationsgetcontent
        description: Get Notification Content
        call: courier-notification-templates.notificationsgetcontent
        with:
          id: rest.id
          version: rest.version
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: notificationsputcontent
        description: Put Notification Content
        call: courier-notification-templates.notificationsputcontent
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}/elements/{elementid}
      name: notifications-id-elements-elementid
      description: REST surface for notifications-id-elements-elementId.
      operations:
      - method: PUT
        name: notificationsputelement
        description: Put Notification Element
        call: courier-notification-templates.notificationsputelement
        with:
          id: rest.id
          elementId: rest.elementId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}/locales/{localeid}
      name: notifications-id-locales-localeid
      description: REST surface for notifications-id-locales-localeId.
      operations:
      - method: PUT
        name: notificationsputlocale
        description: Put Notification Locale
        call: courier-notification-templates.notificationsputlocale
        with:
          id: rest.id
          localeId: rest.localeId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}/publish
      name: notifications-id-publish
      description: REST surface for notifications-id-publish.
      operations:
      - method: POST
        name: notificationspublish
        description: Publish Notification Template
        call: courier-notification-templates.notificationspublish
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}/versions
      name: notifications-id-versions
      description: REST surface for notifications-id-versions.
      operations:
      - method: GET
        name: notificationslistversions
        description: List Notification Template Versions
        call: courier-notification-templates.notificationslistversions
        with:
          id: rest.id
          cursor: rest.cursor
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/notifications/{id}/{submissionid}/checks
      name: notifications-id-submissionid-checks
      description: REST surface for notifications-id-submissionId-checks.
      operations:
      - method: GET
        name: notificationsgetsubmissionchecks
        description: Get Submission Checks
        call: courier-notification-templates.notificationsgetsubmissionchecks
        with:
          id: rest.id
          submissionId: rest.submissionId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: notificationsreplacesubmissionchecks
        description: Replace Submission Checks
        call: courier-notification-templates.notificationsreplacesubmissionchecks
        with:
          id: rest.id
          submissionId: rest.submissionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: notificationscancelsubmission
        description: Cancel Submission
        call: courier-notification-templates.notificationscancelsubmission
        with:
          id: rest.id
          submissionId: rest.submissionId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: courier-notification-templates-mcp
    port: 9090
    transport: http
    description: MCP adapter for Courier — Notification Templates. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-notification-templates
      description: List Notification Templates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationslist
      with:
        cursor: tools.cursor
        notes: tools.notes
        event_id: tools.event_id
      outputParameters:
      - type: object
        mapping: $.
    - name: create-notification-template
      description: Create Notification Template
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: courier-notification-templates.notificationscreate
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-notification-template
      description: Get Notification Template
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsretrieve
      with:
        id: tools.id
        version: tools.version
      outputParameters:
      - type: object
        mapping: $.
    - name: replace-notification-template
      description: Replace Notification Template
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsreplace
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: archive-notification-template
      description: Archive Notification Template
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: courier-notification-templates.notificationsarchive
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-notification-content
      description: Get Notification Content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsgetcontent
      with:
        id: tools.id
        version: tools.version
      outputParameters:
      - type: object
        mapping: $.
    - name: put-notification-content
      description: Put Notification Content
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsputcontent
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: put-notification-element
      description: Put Notification Element
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsputelement
      with:
        id: tools.id
        elementId: tools.elementId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: put-notification-locale
      description: Put Notification Locale
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsputlocale
      with:
        id: tools.id
        localeId: tools.localeId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: publish-notification-template
      description: Publish Notification Template
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: courier-notification-templates.notificationspublish
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-notification-template-versions
      description: List Notification Template Versions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationslistversions
      with:
        id: tools.id
        cursor: tools.cursor
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: get-submission-checks
      description: Get Submission Checks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsgetsubmissionchecks
      with:
        id: tools.id
        submissionId: tools.submissionId
      outputParameters:
      - type: object
        mapping: $.
    - name: replace-submission-checks
      description: Replace Submission Checks
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: courier-notification-templates.notificationsreplacesubmissionchecks
      with:
        id: tools.id
        submissionId: tools.submissionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-submission
      description: Cancel Submission
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: courier-notification-templates.notificationscancelsubmission
      with:
        id: tools.id
        submissionId: tools.submissionId
      outputParameters:
      - type: object
        mapping: $.