Courier · Capability

Courier — Sent Messages

Courier — Sent Messages. 6 operations. Lead operation: List messages. Self-contained Naftiko capability covering one Courier business surface.

Run with Naftiko CourierSent Messages

What You Can Do

GET
Messageslist — List messages
/v1/messages
GET
Messagesget — Get message
/v1/messages/{message-id}
POST
Messagescancel — Cancel message
/v1/messages/{message-id}/cancel
GET
Messagesgethistory — Get message history
/v1/messages/{message-id}/history
GET
Messagesgetcontent — Get message content
/v1/messages/{message-id}/output
PUT
Messagesarchive — Archive message
/v1/requests/{request-id}/archive

MCP Tools

list-messages

List messages

read-only idempotent
get-message

Get message

read-only idempotent
cancel-message

Cancel message

get-message-history

Get message history

read-only idempotent
get-message-content

Get message content

read-only idempotent
archive-message

Archive message

idempotent

Capability Spec

courier-sent-messages.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Courier — Sent Messages
  description: 'Courier — Sent Messages. 6 operations. Lead operation: List messages. Self-contained Naftiko capability covering
    one Courier business surface.'
  tags:
  - Courier
  - Sent Messages
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    COURIER_API_KEY: COURIER_API_KEY
capability:
  consumes:
  - type: http
    namespace: courier-sent-messages
    baseUri: https://api.courier.com
    description: Courier — Sent Messages business capability. Self-contained, no shared references.
    resources:
    - name: messages
      path: /messages
      operations:
      - name: messageslist
        method: GET
        description: List messages
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: archived
          in: query
          type: boolean
          description: A boolean value that indicates whether archived messages should be included in the response.
        - name: cursor
          in: query
          type: string
          description: A unique identifier that allows for fetching the next set of messages.
        - name: event
          in: query
          type: string
          description: A unique identifier representing the event that was used to send the event.
        - name: list
          in: query
          type: string
          description: A unique identifier representing the list the message was sent to.
        - name: messageId
          in: query
          type: string
          description: A unique identifier representing the message_id returned from either /send or /send/list.
        - name: notification
          in: query
          type: string
          description: A unique identifier representing the notification that was used to send the event.
        - name: provider
          in: query
          type: array
          description: The key assocated to the provider you want to filter on. E.g., sendgrid, inbox, twilio, slack, msteams,
            etc. Allows multiple values to be set in query parameter
        - name: recipient
          in: query
          type: string
          description: A unique identifier representing the recipient associated with the requested profile.
        - name: status
          in: query
          type: array
          description: An indicator of the current status of the message. Allows multiple values to be set in query parameters.
        - name: tag
          in: query
          type: array
          description: A tag placed in the metadata.tags during a notification send. Allows multiple values to be set in query
            parameters.
        - name: tags
          in: query
          type: string
          description: A comma delimited list of 'tags'. Messages will be returned if they match any of the tags passed in.
        - name: tenant_id
          in: query
          type: string
          description: Messages sent with the context of a Tenant
        - name: enqueued_after
          in: query
          type: string
          description: The enqueued datetime of a message to filter out messages received before.
        - name: traceId
          in: query
          type: string
          description: The unique identifier used to trace the requests
    - name: messages-message_id
      path: /messages/{message_id}
      operations:
      - name: messagesget
        method: GET
        description: Get message
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: message_id
          in: path
          type: string
          description: A unique identifier associated with the message you wish to retrieve (results from a send).
          required: true
    - name: messages-message_id-cancel
      path: /messages/{message_id}/cancel
      operations:
      - name: messagescancel
        method: POST
        description: Cancel message
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: message_id
          in: path
          type: string
          description: A unique identifier representing the message ID
          required: true
    - name: messages-message_id-history
      path: /messages/{message_id}/history
      operations:
      - name: messagesgethistory
        method: GET
        description: Get message history
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: message_id
          in: path
          type: string
          description: A unique identifier representing the message ID
          required: true
        - name: type
          in: query
          type: string
          description: A supported Message History type that will filter the events returned.
    - name: messages-message_id-output
      path: /messages/{message_id}/output
      operations:
      - name: messagesgetcontent
        method: GET
        description: Get message content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: message_id
          in: path
          type: string
          description: A unique identifier associated with the message you wish to retrieve (results from a send).
          required: true
    - name: requests-request_id-archive
      path: /requests/{request_id}/archive
      operations:
      - name: messagesarchive
        method: PUT
        description: Archive message
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: request_id
          in: path
          type: string
          description: A unique identifier representing the request ID
          required: true
    authentication:
      type: bearer
      token: '{{env.COURIER_API_KEY}}'
  exposes:
  - type: rest
    namespace: courier-sent-messages-rest
    port: 8080
    description: REST adapter for Courier — Sent Messages. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/messages
      name: messages
      description: REST surface for messages.
      operations:
      - method: GET
        name: messageslist
        description: List messages
        call: courier-sent-messages.messageslist
        with:
          archived: rest.archived
          cursor: rest.cursor
          event: rest.event
          list: rest.list
          messageId: rest.messageId
          notification: rest.notification
          provider: rest.provider
          recipient: rest.recipient
          status: rest.status
          tag: rest.tag
          tags: rest.tags
          tenant_id: rest.tenant_id
          enqueued_after: rest.enqueued_after
          traceId: rest.traceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/messages/{message-id}
      name: messages-message-id
      description: REST surface for messages-message_id.
      operations:
      - method: GET
        name: messagesget
        description: Get message
        call: courier-sent-messages.messagesget
        with:
          message_id: rest.message_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/messages/{message-id}/cancel
      name: messages-message-id-cancel
      description: REST surface for messages-message_id-cancel.
      operations:
      - method: POST
        name: messagescancel
        description: Cancel message
        call: courier-sent-messages.messagescancel
        with:
          message_id: rest.message_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/messages/{message-id}/history
      name: messages-message-id-history
      description: REST surface for messages-message_id-history.
      operations:
      - method: GET
        name: messagesgethistory
        description: Get message history
        call: courier-sent-messages.messagesgethistory
        with:
          message_id: rest.message_id
          type: rest.type
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/messages/{message-id}/output
      name: messages-message-id-output
      description: REST surface for messages-message_id-output.
      operations:
      - method: GET
        name: messagesgetcontent
        description: Get message content
        call: courier-sent-messages.messagesgetcontent
        with:
          message_id: rest.message_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/requests/{request-id}/archive
      name: requests-request-id-archive
      description: REST surface for requests-request_id-archive.
      operations:
      - method: PUT
        name: messagesarchive
        description: Archive message
        call: courier-sent-messages.messagesarchive
        with:
          request_id: rest.request_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: courier-sent-messages-mcp
    port: 9090
    transport: http
    description: MCP adapter for Courier — Sent Messages. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-messages
      description: List messages
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-sent-messages.messageslist
      with:
        archived: tools.archived
        cursor: tools.cursor
        event: tools.event
        list: tools.list
        messageId: tools.messageId
        notification: tools.notification
        provider: tools.provider
        recipient: tools.recipient
        status: tools.status
        tag: tools.tag
        tags: tools.tags
        tenant_id: tools.tenant_id
        enqueued_after: tools.enqueued_after
        traceId: tools.traceId
      outputParameters:
      - type: object
        mapping: $.
    - name: get-message
      description: Get message
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-sent-messages.messagesget
      with:
        message_id: tools.message_id
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-message
      description: Cancel message
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: courier-sent-messages.messagescancel
      with:
        message_id: tools.message_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-message-history
      description: Get message history
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-sent-messages.messagesgethistory
      with:
        message_id: tools.message_id
        type: tools.type
      outputParameters:
      - type: object
        mapping: $.
    - name: get-message-content
      description: Get message content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: courier-sent-messages.messagesgetcontent
      with:
        message_id: tools.message_id
      outputParameters:
      - type: object
        mapping: $.
    - name: archive-message
      description: Archive message
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: courier-sent-messages.messagesarchive
      with:
        request_id: tools.request_id
      outputParameters:
      - type: object
        mapping: $.