Courier · Capability
Courier — Lists
Courier — Lists. 10 operations. Lead operation: Get all lists. Self-contained Naftiko capability covering one Courier business surface.
What You Can Do
GET
Listslist
— Get all lists
/v1/lists
GET
Listsget
— Get a list
/v1/lists/{list-id}
PUT
Listsupdate
— Update a list
/v1/lists/{list-id}
DELETE
Listsdelete
— Delete a list
/v1/lists/{list-id}
PUT
Listsrestore
— Restore a list
/v1/lists/{list-id}/restore
GET
Listsgetsubscribers
— Get the subscriptions for a list
/v1/lists/{list-id}/subscriptions
POST
Listsaddsubscribers
— Add subscribers to a list
/v1/lists/{list-id}/subscriptions
PUT
Listsupdatesubscribers
— Subscribe users to a list
/v1/lists/{list-id}/subscriptions
PUT
Listssubscribe
— Subscribe a single user profile to a list
/v1/lists/{list-id}/subscriptions/{user-id}
DELETE
Listsunsubscribe
— Unsubscribe a user profile from a list
/v1/lists/{list-id}/subscriptions/{user-id}
MCP Tools
get-all-lists
Get all lists
read-only
idempotent
get-list
Get a list
read-only
idempotent
update-list
Update a list
idempotent
delete-list
Delete a list
idempotent
restore-list
Restore a list
idempotent
get-subscriptions-list
Get the subscriptions for a list
read-only
idempotent
add-subscribers-list
Add subscribers to a list
subscribe-users-list
Subscribe users to a list
idempotent
subscribe-single-user-profile-list
Subscribe a single user profile to a list
idempotent
unsubscribe-user-profile-list
Unsubscribe a user profile from a list
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Courier — Lists
description: 'Courier — Lists. 10 operations. Lead operation: Get all lists. Self-contained Naftiko capability covering
one Courier business surface.'
tags:
- Courier
- Lists
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
COURIER_API_KEY: COURIER_API_KEY
capability:
consumes:
- type: http
namespace: courier-lists
baseUri: https://api.courier.com
description: Courier — Lists business capability. Self-contained, no shared references.
resources:
- name: lists
path: /lists
operations:
- name: listslist
method: GET
description: Get all lists
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: cursor
in: query
type: string
description: A unique identifier that allows for fetching the next page of lists.
- name: pattern
in: query
type: string
description: '"A pattern used to filter the list items returned. Pattern types supported: exact match on `list_id`
or a pattern of one or more pattern parts. you may replace '
- name: lists-list_id
path: /lists/{list_id}
operations:
- name: listsget
method: GET
description: Get a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: listsupdate
method: PUT
description: Update a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: listsdelete
method: DELETE
description: Delete a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: lists-list_id-restore
path: /lists/{list_id}/restore
operations:
- name: listsrestore
method: PUT
description: Restore a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: lists-list_id-subscriptions
path: /lists/{list_id}/subscriptions
operations:
- name: listsgetsubscribers
method: GET
description: Get the subscriptions for a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: cursor
in: query
type: string
description: A unique identifier that allows for fetching the next set of list subscriptions
- name: listsaddsubscribers
method: POST
description: Add subscribers to a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: listsupdatesubscribers
method: PUT
description: Subscribe users to a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: lists-list_id-subscriptions-user_id
path: /lists/{list_id}/subscriptions/{user_id}
operations:
- name: listssubscribe
method: PUT
description: Subscribe a single user profile to a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: user_id
in: path
type: string
description: A unique identifier representing the recipient associated with the list
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: listsunsubscribe
method: DELETE
description: Unsubscribe a user profile from a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: list_id
in: path
type: string
description: A unique identifier representing the list you wish to retrieve.
required: true
- name: user_id
in: path
type: string
description: A unique identifier representing the recipient associated with the list
required: true
authentication:
type: bearer
token: '{{env.COURIER_API_KEY}}'
exposes:
- type: rest
namespace: courier-lists-rest
port: 8080
description: REST adapter for Courier — Lists. One Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/lists
name: lists
description: REST surface for lists.
operations:
- method: GET
name: listslist
description: Get all lists
call: courier-lists.listslist
with:
cursor: rest.cursor
pattern: rest.pattern
outputParameters:
- type: object
mapping: $.
- path: /v1/lists/{list-id}
name: lists-list-id
description: REST surface for lists-list_id.
operations:
- method: GET
name: listsget
description: Get a list
call: courier-lists.listsget
with:
list_id: rest.list_id
outputParameters:
- type: object
mapping: $.
- method: PUT
name: listsupdate
description: Update a list
call: courier-lists.listsupdate
with:
list_id: rest.list_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: listsdelete
description: Delete a list
call: courier-lists.listsdelete
with:
list_id: rest.list_id
outputParameters:
- type: object
mapping: $.
- path: /v1/lists/{list-id}/restore
name: lists-list-id-restore
description: REST surface for lists-list_id-restore.
operations:
- method: PUT
name: listsrestore
description: Restore a list
call: courier-lists.listsrestore
with:
list_id: rest.list_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/lists/{list-id}/subscriptions
name: lists-list-id-subscriptions
description: REST surface for lists-list_id-subscriptions.
operations:
- method: GET
name: listsgetsubscribers
description: Get the subscriptions for a list
call: courier-lists.listsgetsubscribers
with:
list_id: rest.list_id
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- method: POST
name: listsaddsubscribers
description: Add subscribers to a list
call: courier-lists.listsaddsubscribers
with:
list_id: rest.list_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: PUT
name: listsupdatesubscribers
description: Subscribe users to a list
call: courier-lists.listsupdatesubscribers
with:
list_id: rest.list_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/lists/{list-id}/subscriptions/{user-id}
name: lists-list-id-subscriptions-user-id
description: REST surface for lists-list_id-subscriptions-user_id.
operations:
- method: PUT
name: listssubscribe
description: Subscribe a single user profile to a list
call: courier-lists.listssubscribe
with:
list_id: rest.list_id
user_id: rest.user_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: listsunsubscribe
description: Unsubscribe a user profile from a list
call: courier-lists.listsunsubscribe
with:
list_id: rest.list_id
user_id: rest.user_id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: courier-lists-mcp
port: 9090
transport: http
description: MCP adapter for Courier — Lists. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: get-all-lists
description: Get all lists
hints:
readOnly: true
destructive: false
idempotent: true
call: courier-lists.listslist
with:
cursor: tools.cursor
pattern: tools.pattern
outputParameters:
- type: object
mapping: $.
- name: get-list
description: Get a list
hints:
readOnly: true
destructive: false
idempotent: true
call: courier-lists.listsget
with:
list_id: tools.list_id
outputParameters:
- type: object
mapping: $.
- name: update-list
description: Update a list
hints:
readOnly: false
destructive: false
idempotent: true
call: courier-lists.listsupdate
with:
list_id: tools.list_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-list
description: Delete a list
hints:
readOnly: false
destructive: true
idempotent: true
call: courier-lists.listsdelete
with:
list_id: tools.list_id
outputParameters:
- type: object
mapping: $.
- name: restore-list
description: Restore a list
hints:
readOnly: false
destructive: false
idempotent: true
call: courier-lists.listsrestore
with:
list_id: tools.list_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-subscriptions-list
description: Get the subscriptions for a list
hints:
readOnly: true
destructive: false
idempotent: true
call: courier-lists.listsgetsubscribers
with:
list_id: tools.list_id
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: add-subscribers-list
description: Add subscribers to a list
hints:
readOnly: false
destructive: false
idempotent: false
call: courier-lists.listsaddsubscribers
with:
list_id: tools.list_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: subscribe-users-list
description: Subscribe users to a list
hints:
readOnly: false
destructive: false
idempotent: true
call: courier-lists.listsupdatesubscribers
with:
list_id: tools.list_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: subscribe-single-user-profile-list
description: Subscribe a single user profile to a list
hints:
readOnly: false
destructive: false
idempotent: true
call: courier-lists.listssubscribe
with:
list_id: tools.list_id
user_id: tools.user_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: unsubscribe-user-profile-list
description: Unsubscribe a user profile from a list
hints:
readOnly: false
destructive: true
idempotent: true
call: courier-lists.listsunsubscribe
with:
list_id: tools.list_id
user_id: tools.user_id
outputParameters:
- type: object
mapping: $.