Whenever a backwards-incompatible change is introduced we release a new dated
API version. Use an Accept header to specify the version used when making API
calls:
curl --request GET \
--url https://api.dyspatch.io/templates \
--header 'Authorization: Bearer EXAMPLEAPIKEYXXXXXXXX12345678' \
--header 'Accept: application/vnd.dyspatch.2026.01+json'
The latest version is 2026-01.
Earlier versions of the API can be accessed by clicking a title below.
New Added duplicate draft endpoints for all template types:
POST /drafts/{draftId}/duplicatePOST /sms/drafts/{draftId}/duplicatePOST /push/drafts/{draftId}/duplicatePOST /voice/drafts/{draftId}/duplicatePOST /liveactivity/drafts/{draftId}/duplicateNew Added archive draft endpoints for all template types:
DELETE /drafts/{draftId}DELETE /sms/drafts/{draftId}DELETE /push/drafts/{draftId}DELETE /voice/drafts/{draftId}DELETE /liveactivity/drafts/{draftId}New Added lock for translation draft endpoints for all template types:
PUT /drafts/{draftId}/lockForTranslationPUT /sms/drafts/{draftId}/lockForTranslationPUT /push/drafts/{draftId}/lockForTranslationPUT /voice/drafts/{draftId}/lockForTranslationPUT /liveactivity/drafts/{draftId}/lockForTranslationNew Added unlock for translation draft endpoints for all template types:
DELETE /drafts/{draftId}/lockForTranslationDELETE /sms/drafts/{draftId}/lockForTranslationDELETE /push/drafts/{draftId}/lockForTranslationDELETE /voice/drafts/{draftId}/lockForTranslationDELETE /liveactivity/drafts/{draftId}/lockForTranslationvariables key in the compiled portion of the response data./templates/{templateId}/drafts/{draftId}/localizations/{localizationId}/localizations/{localizationId}/drafts/{draftId}/sms/templates/{templateId}/sms/drafts/{draftId}/sms/localizations/{localizationId}/sms/localizations/{localizationId}/drafts/{draftId}/push/templates/{templateId}/push/drafts/{draftId}/push/localizations/{localizationId}/push/localizations/{localizationId}/drafts/{draftId}/voice/templates/{templateId}/voice/drafts/{draftId}/voice/localizations/{localizationId}/voice/localizations/{localizationId}/drafts/{draftId}/liveactivity/templates/{templateId}/liveactivity/drafts/{draftId}/liveactivity/localizations/{localizationId}/liveactivity/localizations/{localizationId}/drafts/{draftId}/tags/tags/{tagId}/tags/create/tags/update/{tagId}/tags/delete/{tagId}/tags/assign/{resourceId}/tags/unassign/{resourceId}/liveactivity/templates/liveactivity/templates/{templateId}//liveactivity/render/template/{templateId}//liveactivity/render/template/{templateId}/{languageId}//liveactivity/drafts/liveactivity/drafts/{draftId}/publishRequest/liveactivity/drafts/{draftId}/liveactivity/drafts/{draftId}/localizations/liveactivity/drafts/{draftId}/localizations/{languageId}/liveactivity/drafts/{draftId}/localizations/{languageId}/liveactivity/drafts/{draftId}/localizations/{languageId}/translations/liveactivity/drafts/{draftId}/localizationKeys/liveactivity/localizations/{localizationId}/liveactivity/localizations/{localizationId}/drafts/{draftId}themeId as an optional parameter for the following endpoints:/templates/{templateId}/render/template/{templateId}/render/template/{templateId}/{languageId}/drafts/{draftId}/localizations/{localizationId}/localizations/{localizationId}/drafts/{draftId}/drafts/{draftId}/publish/approve/drafts/{draftId}/publish/approveAll/drafts/{draftId}/publish/reject/sms/drafts/{draftId}/publish/approve/sms/drafts/{draftId}/publish/approveAll/sms/drafts/{draftId}/publish/reject/push/drafts/{draftId}/publish/approve/push/drafts/{draftId}/publish/approveAll/push/drafts/{draftId}/publish/reject/voice/drafts/{draftId}/publish/approve/voice/drafts/{draftId}/publish/approveAll/voice/drafts/{draftId}/publish/reject/push/templates/push/templates/{templateId}//push/render/template/{templateId}//push/render/template/{templateId}/{languageId}//push/drafts/push/drafts/{draftId}/publishRequest/push/drafts/{draftId}/push/drafts/{draftId}/localizations/push/drafts/{draftId}/localizations/{languageId}/push/drafts/{draftId}/localizations/{languageId}/push/drafts/{draftId}/localizations/{languageId}/translations/push/drafts/{draftId}/localizationKeys/push/localizations/{localizationId}/push/localizations/{localizationId}/drafts/{draftId}/voice/templates/voice/templates/{templateId}//voice/render/template/{templateId}//voice/render/template/{templateId}/{languageId}//voice/drafts/voice/drafts/{draftId}/publishRequest/voice/drafts/{draftId}/voice/drafts/{draftId}/localizations/voice/drafts/{draftId}/localizations/{languageId}/voice/drafts/{draftId}/localizations/{languageId}/voice/drafts/{draftId}/localizations/{languageId}/translations/voice/drafts/{draftId}/localizationKeys/voice/localizations/{localizationId}/voice/localizations/{localizationId}/drafts/{draftId}updatedAt field to localizations for the following endpoints:/templates/templates/{templateId}/drafts/drafts/{draftId/}/drafts/{draftId}/localizations/sms/templates/sms/templates/{templateId}/sms/drafts/sms/drafts/{draftId/}/sms/drafts/{draftId}/localizations/blocks/{blockId}/localizations/render/template/{templateId}/{languageId}/sms/templates/sms/templates/sms/templates/sms/templates/sms/drafts/sms/drafts/{draftId}/publishRequest/sms/drafts/{draftId}/sms/drafts/{draftId}/localizations/sms/drafts/{draftId}/localizations/{languageId}/sms/drafts/{draftId}/localizations/{languageId}/sms/drafts/{draftId}/localizations/{languageId}/translations/sms/drafts/{draftId}/localizationKeys/sms/localizations/{localizationId}/sms/localizations/{localizationId}/drafts/{draftId}/drafts/{draftId} and /drafts updateddesignApprovedDate is now included in the draft responses./blocks/{blockId}/localizations./blocks/{blockId}/localizationKeys./blocks/{blockId}/localizations/{languageId}./blocks/{blockId}/localizations/{languageId}/translations./render/template/{templateId}./blocks/ and /blocks/{blockId}./workspaces and /workspaces/{folderId}./drafts/{draftId} and /drafts updatedtemplateName is now included in the draft responses.status is now included in the draft response and reflects the status of the draft (IN_PROGRESS, LOCKED_FOR_TRANSLATION,
PENDING_APPROVAL)path and workspaceId are included in the draft responses, refecting where the draft fits in the folder hierarchy./templates/{templateId} and /templates updatedpublishedDraftId is included in the template responses and reflects the id of the currently published draft.path and workspaceId are included in the template responses, refecting where the template fits in the folder hierarchy.ampHtml parameter to all compiled objects to support
AMP
output./localizations/:draftId/localizations/:localizationId to
return the value for a localization ID at a particular draft./drafts/{draftId} and /templates/{templateID}language field has been renamed to languages and returns an array of
languages.localization has been renamed to id./localizations/... endpoints for localization management./drafts/... endpoints./drafts/{draftId}/publishRequest.