/notifications/...), use the Templates API.
Base URL and authentication
All paths are rooted athttps://api.courier.com. Send your API key in the Authorization header as Bearer <token>. For browser-embedded Courier Create, use a JWT with the right tenant template scopes instead of the workspace key; see Courier Create authentication.
Endpoint guide
The sections below describe Courier Create routes in the API Reference. Each one links to the matching operation for schemas, query parameters, and status codes.List templates
GET /tenants/{tenant_id}/templates returns a paginated list of templates for one tenant. Use limit and cursor from the response to walk pages (default page size 20, max 100).
Create or replace
PUT /tenants/{tenant_id}/templates/{template_id} creates a template when the ID is new (201) or updates it in place when it already exists (200). Notification content uses Elemental (ElementalContentSchema). Build the same JSON you would use with the Elemental overview: a version, an elements array, plus routing or channel data when you need it.
Request body (PutTenantTemplateRequest):
template object (TenantTemplateInput):
Get current template
GET /tenants/{tenant_id}/templates/{template_id} returns the current template for that tenant and ID. Use it when you need the latest merged view without requesting a specific version string.
Get a specific version
GET /tenants/{tenant_id}/templates/{template_id}/versions/{version} returns one version of the template. The version path segment accepts latest, published, or a concrete identifier such as v1 or v2.
Publish
POST /tenants/{tenant_id}/templates/{template_id}/publish publishes a draft so it becomes what recipients resolve when sending. The optional request body can include a version string; it defaults to latest (publish the newest draft). The template must already exist for the tenant.
Common responses
Each Courier Create operation documents its ownresponses in openapi-specs/openapi.documented.yml in the mintlify-docs repo (paths under /tenants/{tenant_id}/templates). Typical codes:
Tenant templates vs workspace templates
These routes are tenant-scoped: paths start with/tenants/{tenant_id}/templates/... and isolate template data per tenant. For the workspace catalog (/notifications/...) shared across the account, use the Templates API.