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: $.