Courier · Capability
Courier — Courier Create
Courier — Courier Create. 5 operations. Lead operation: List Templates in Tenant. Self-contained Naftiko capability covering one Courier business surface.
What You Can Do
GET
Tenantsgettemplatelistbytenant
— List Templates in Tenant
/v1/tenants/{tenant-id}/templates
GET
Tenantsgettemplatebytenant
— Get a Template in Tenant
/v1/tenants/{tenant-id}/templates/{template-id}
PUT
Tenantsreplacetemplate
— Create or Update a Tenant Template
/v1/tenants/{tenant-id}/templates/{template-id}
POST
Tenantspublishtemplate
— Publish a Tenant Template
/v1/tenants/{tenant-id}/templates/{template-id}/publish
GET
Tenantsgettemplateversion
— Get a Specific Template Version
/v1/tenants/{tenant-id}/templates/{template-id}/versions/{version}
MCP Tools
list-templates-tenant
List Templates in Tenant
read-only
idempotent
get-template-tenant
Get a Template in Tenant
read-only
idempotent
create-update-tenant-template
Create or Update a Tenant Template
idempotent
publish-tenant-template
Publish a Tenant Template
get-specific-template-version
Get a Specific Template Version
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Courier — Courier Create
description: 'Courier — Courier Create. 5 operations. Lead operation: List Templates in Tenant. Self-contained Naftiko capability
covering one Courier business surface.'
tags:
- Courier
- Courier Create
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
COURIER_API_KEY: COURIER_API_KEY
capability:
consumes:
- type: http
namespace: courier-courier-create
baseUri: https://api.courier.com
description: Courier — Courier Create business capability. Self-contained, no shared references.
resources:
- name: tenants-tenant_id-templates
path: /tenants/{tenant_id}/templates
operations:
- name: tenantsgettemplatelistbytenant
method: GET
description: List Templates in Tenant
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tenant_id
in: path
type: string
description: Id of the tenant for which to retrieve the templates.
required: true
- name: limit
in: query
type: integer
description: The number of templates to return (defaults to 20, maximum value of 100)
- name: cursor
in: query
type: string
description: Continue the pagination with the next cursor
- name: tenants-tenant_id-templates-template_id
path: /tenants/{tenant_id}/templates/{template_id}
operations:
- name: tenantsgettemplatebytenant
method: GET
description: Get a Template in Tenant
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tenant_id
in: path
type: string
description: Id of the tenant for which to retrieve the template.
required: true
- name: template_id
in: path
type: string
description: Id of the template to be retrieved.
required: true
- name: tenantsreplacetemplate
method: PUT
description: Create or Update a Tenant Template
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tenant_id
in: path
type: string
description: Id of the tenant for which to create or update the template.
required: true
- name: template_id
in: path
type: string
description: Id of the template to be created or updated.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: tenants-tenant_id-templates-template_id-publish
path: /tenants/{tenant_id}/templates/{template_id}/publish
operations:
- name: tenantspublishtemplate
method: POST
description: Publish a Tenant Template
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tenant_id
in: path
type: string
description: Id of the tenant that owns the template.
required: true
- name: template_id
in: path
type: string
description: Id of the template to be published.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: tenants-tenant_id-templates-template_id-versions-version
path: /tenants/{tenant_id}/templates/{template_id}/versions/{version}
operations:
- name: tenantsgettemplateversion
method: GET
description: Get a Specific Template Version
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tenant_id
in: path
type: string
description: Id of the tenant for which to retrieve the template.
required: true
- name: template_id
in: path
type: string
description: Id of the template to be retrieved.
required: true
- name: version
in: path
type: string
description: Version of the template to retrieve. Accepts "latest", "published", or a specific version string (e.g.,
"v1", "v2").
required: true
authentication:
type: bearer
token: '{{env.COURIER_API_KEY}}'
exposes:
- type: rest
namespace: courier-courier-create-rest
port: 8080
description: REST adapter for Courier — Courier Create. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/tenants/{tenant-id}/templates
name: tenants-tenant-id-templates
description: REST surface for tenants-tenant_id-templates.
operations:
- method: GET
name: tenantsgettemplatelistbytenant
description: List Templates in Tenant
call: courier-courier-create.tenantsgettemplatelistbytenant
with:
tenant_id: rest.tenant_id
limit: rest.limit
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- path: /v1/tenants/{tenant-id}/templates/{template-id}
name: tenants-tenant-id-templates-template-id
description: REST surface for tenants-tenant_id-templates-template_id.
operations:
- method: GET
name: tenantsgettemplatebytenant
description: Get a Template in Tenant
call: courier-courier-create.tenantsgettemplatebytenant
with:
tenant_id: rest.tenant_id
template_id: rest.template_id
outputParameters:
- type: object
mapping: $.
- method: PUT
name: tenantsreplacetemplate
description: Create or Update a Tenant Template
call: courier-courier-create.tenantsreplacetemplate
with:
tenant_id: rest.tenant_id
template_id: rest.template_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/tenants/{tenant-id}/templates/{template-id}/publish
name: tenants-tenant-id-templates-template-id-publish
description: REST surface for tenants-tenant_id-templates-template_id-publish.
operations:
- method: POST
name: tenantspublishtemplate
description: Publish a Tenant Template
call: courier-courier-create.tenantspublishtemplate
with:
tenant_id: rest.tenant_id
template_id: rest.template_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/tenants/{tenant-id}/templates/{template-id}/versions/{version}
name: tenants-tenant-id-templates-template-id-versions-version
description: REST surface for tenants-tenant_id-templates-template_id-versions-version.
operations:
- method: GET
name: tenantsgettemplateversion
description: Get a Specific Template Version
call: courier-courier-create.tenantsgettemplateversion
with:
tenant_id: rest.tenant_id
template_id: rest.template_id
version: rest.version
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: courier-courier-create-mcp
port: 9090
transport: http
description: MCP adapter for Courier — Courier Create. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-templates-tenant
description: List Templates in Tenant
hints:
readOnly: true
destructive: false
idempotent: true
call: courier-courier-create.tenantsgettemplatelistbytenant
with:
tenant_id: tools.tenant_id
limit: tools.limit
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: get-template-tenant
description: Get a Template in Tenant
hints:
readOnly: true
destructive: false
idempotent: true
call: courier-courier-create.tenantsgettemplatebytenant
with:
tenant_id: tools.tenant_id
template_id: tools.template_id
outputParameters:
- type: object
mapping: $.
- name: create-update-tenant-template
description: Create or Update a Tenant Template
hints:
readOnly: false
destructive: false
idempotent: true
call: courier-courier-create.tenantsreplacetemplate
with:
tenant_id: tools.tenant_id
template_id: tools.template_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: publish-tenant-template
description: Publish a Tenant Template
hints:
readOnly: false
destructive: false
idempotent: false
call: courier-courier-create.tenantspublishtemplate
with:
tenant_id: tools.tenant_id
template_id: tools.template_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-specific-template-version
description: Get a Specific Template Version
hints:
readOnly: true
destructive: false
idempotent: true
call: courier-courier-create.tenantsgettemplateversion
with:
tenant_id: tools.tenant_id
template_id: tools.template_id
version: tools.version
outputParameters:
- type: object
mapping: $.