Official Sinch API skills for AI coding agents — SMS, Voice, Verification, Numbers, Mailgun email, and more.
69
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Summary — not the spec. This file orients you and links to the authoritative
developers.sinch.comdoc; it may lag, omit fields, or simplify nesting. Do not copy field names, nesting, encodings, or enums from here into shipped code without confirming them in the linked doc. See "Source of Truth" in this skill's SKILL.md.
← Back to Conversation API SKILL.md
Manages omni-channel templates — pre-defined message formats with dynamic parameters, multiple languages, and channel-specific overrides (e.g., WhatsApp-approved templates).
Use V2 exclusively — V1 reached end-of-life on January 31, 2026.
Sections: SDK Reference | When to Use | Base URLs | API Endpoints | Key Concepts | Template Structure | Creating Templates | Updating Templates | Translation Types | Channel-Specific | Common Pitfalls | Links
Templates use a separate base URL (template.api.sinch.com). Region-locked — templates can only be used by apps in the same region.
| Region | Base URL |
|---|---|
| US | https://us.template.api.sinch.com |
| EU | https://eu.template.api.sinch.com |
| BR | https://br.template.api.sinch.com |
All endpoints prefixed with /v2/projects/{project_id}.
| Method | Path | Description |
|---|---|---|
| GET | /templates | List all templates |
| POST | /templates | Create a template |
| GET | /templates/{template_id} | Get a template |
| PUT | /templates/{template_id} | Update (include version) |
| DELETE | /templates/{template_id} | Delete a template |
| GET | /templates/{template_id}/translations | List translations |
| Concept | Description |
|---|---|
| Omni-channel template | Uses Conversation API generic message format. Works across all channels. |
| Channel-specific template | Stored by the channel itself (e.g., WhatsApp-approved). Referenced, not managed here. |
| Translation | Language-specific version keyed by BCP-47 code (e.g., en-US, fr). |
| Variable | Dynamic placeholder (${name}). Defined with key and preview_value. |
| Channel template override | Per-channel override replacing omni-channel template for that channel. |
{
"id": "01F8MECHZX3TBDSZ7XRADM79XE",
"description": "Order confirmation template",
"version": 1,
"default_translation": "en-US",
"translations": [
{
"language_code": "en-US",
"version": "1",
"variables": [
{ "key": "customer_name", "preview_value": "Jane Doe" },
{ "key": "order_number", "preview_value": "ORD-12345" }
],
"text_message": {
"text": "Hi ${customer_name}, your order ${order_number} has been confirmed!"
}
}
]
}(Summary only — confirm exact names/encoding/enums against the authoritative Templates V2 API doc before implementing.)
POST /v2/projects/{project_id}/templates — see Templates V2 API for full request/response details.
Key patterns:
text_message in a translation with ${variable} placeholderschannel_template_overrides.WHATSAPP.template_reference pointing to an approved Meta template, with parameter_mappings linking channel-specific keys to omni-channel variable keys. On WhatsApp: uses the approved channel-specific template. On all other channels: uses the generic message. (Summary only — confirm exact names/encoding/enums against the authoritative Templates V2 API doc before implementing.)language_code valuesPUT /v2/projects/{project_id}/templates/{template_id} — include current version (optimistic concurrency). PUT fully replaces the template.
Each translation supports one of: text_message, card_message, carousel_message, choice_message, location_message, media_message, template_message, list_message. (Summary only — confirm exact names/encoding/enums against the authoritative Templates V2 API doc before implementing.)
Plus: channel_template_overrides, variables, language_code, version.
| Channel | Template Type | Management |
|---|---|---|
| WhatsApp Message Templates | Created via Dashboard/Provisioning API, approved by Meta | |
| KakaoTalk | AlimTalk Templates | Registered by Sinch, approved by KakaoTalk |
| WeChat Templates | Pre-defined by WeChat, added via admin portal |
Reference these via channel_template_overrides, but cannot create/modify them here.
/v2/projects/...) exclusively.version. Concurrent updates fail.channel_template_overrides field.${key_name} syntax. Key must match variables array.parameter_mappings maps channel-specific keys to omni-channel variable keys.scripts
skills
sinch-10dlc
references
sinch-authentication
sinch-cli
sinch-conversation-api
sinch-elastic-sip-trunking
references
sinch-fax-api
sinch-functions
sinch-functions-dotnet
sinch-functions-node
sinch-imported-numbers-hosting-orders
references
sinch-in-app-calling
sinch-mailgun
references
sinch-mailgun-inspect
references
sinch-mailgun-optimize
references
sinch-mailgun-validate
sinch-mms
sinch-number-lookup-api
sinch-number-order-api
sinch-numbers-api
sinch-porting-api
sinch-provisioning-api
sinch-rcs
sinch-sdks
sinch-sms
scripts
sinch-verification-api
sinch-voice-api
sinch-whatsapp