Courier · Capability
Courier — Sent Messages
Courier — Sent Messages. 6 operations. Lead operation: List messages. Self-contained Naftiko capability covering one Courier business surface.
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
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: $.