Skip to main content
This page documents the tenant notification template REST API: create, update, list, read, version, and publish operations scoped to a tenant. For a guided walkthrough with code, see How to Use the Courier Create API.
These endpoints apply to Design Studio (new editor) templates backed by Elemental. They are not for Classic Designer-only flows.

Base URL and authentication

All paths are rooted at https://api.courier.com. Send your API key in the Authorization header as Bearer <token>. For browser-embedded Courier Create, use a JWT with appropriate tenant template scopes instead of the workspace key.

Endpoints

Courier Create operations are tagged Courier Create in the API Reference tab. Each row links to full schemas, status codes, and SDK snippets.
MethodPathPurposeAPI Reference
PUT/tenants/{tenant_id}/templates/{template_id}Create or replace a template (201 if new, 200 if updated)Create or Update a Tenant Template
POST/tenants/{tenant_id}/templates/{template_id}/publishPublish a version (latest or specific version in body)Publish a Tenant Template
GET/tenants/{tenant_id}/templatesList templates (paginated)List Templates in Tenant
GET/tenants/{tenant_id}/templates/{template_id}Get the current template for the tenantGet a Template in Tenant
GET/tenants/{tenant_id}/templates/{template_id}/versions/{version}Get latest, published, or a version such as v2Get a Specific Template Version

PUT: create or replace

Request body (PutTenantTemplateRequest):
FieldTypeRequiredDescription
templateobjectYesTenantTemplateInput (see below)
publishedbooleanNoDefault false. If true, save and publish in one step
template object (TenantTemplateInput):
FieldTypeRequiredDescription
contentElementalYesElementalContent: version plus elements array
routingobjectNoMessageRouting; multi-channel routing
channelsobjectNoMessageChannels; per-channel config
providersobjectNoMessageProviders; provider overrides

POST: publish

Request body (optional): version string. Defaults to latest (publish the newest draft). The template must already exist for the tenant.

GET: list templates

Query parameters:
ParameterDescription
limitPage size (default 20, max 100)
cursorOpaque cursor from the previous response

GET: template version

Path parameter version accepts latest, published, or a concrete version identifier (for example v1, v2).

Common responses

StatusMeaning
200Successful read or update
201Template created (PUT)
400Validation error
404Tenant, template, or version not found
413Template payload too large

What’s Next

How to Use the Courier Create API

Draft, update, publish, and verify with code

Design Studio overview

Editing experience in the UI

Elemental

Build template.content

Courier Create authentication

JWT scopes for embedded template editing