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.2025.09+json'
The latest version is 2025-09.
Earlier versions of the API can be accessed by clicking a title below.
variables 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.