Replaces the fields of an existing template. The payload and its validation are
identical to POST /api/templates — including the merge-field placeholders
documented there, whose available values come from
GET /api/board/{boardId}/merge-fields. On top of the template permission, the
acting user must have access to the library folder the template sits in. A
template that does not exist — or belongs to another company — returns 404; an
archived one returns 403, since it is the caller’s own and
GET /api/templates/{id} still returns it.
PUT
/
api
/
templates
/
{id}
Update a template
curl --request PUT \ --url https://core-api.getaptly.com/api/templates/{id} \ --header 'Content-Type: application/json' \ --header 'x-token: <api-key>' \ --data '{ "companyId": "{{companyId}}", "userId": "{{userId}}", "name": "Move-in welcome", "description": "Sent to new residents on move-in day", "templateType": "email", "subject": "Welcome to your new home", "content": "<p>Welcome!</p>", "htmlBuilder": false}'
import requests
url = "https://core-api.getaptly.com/api/templates/{id}"
payload = {
"companyId": "{{companyId}}",
"userId": "{{userId}}",
"name": "Move-in welcome",
"description": "Sent to new residents on move-in day",
"templateType": "email",
"subject": "Welcome to your new home",
"content": "<p>Welcome!</p>",
"htmlBuilder": False
}
headers = {
"x-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'PUT',
headers: {'x-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '{{companyId}}',
userId: '{{userId}}',
name: 'Move-in welcome',
description: 'Sent to new residents on move-in day',
templateType: 'email',
subject: 'Welcome to your new home',
content: '<p>Welcome!</p>',
htmlBuilder: false
})
};
fetch('https://core-api.getaptly.com/api/templates/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
Email subject, or the file name for a pdf template — in which case filename-illegal characters are stripped. Merge placeholders work here too, and are shape-checked the same way.
Template body. Merge placeholders take the form {{value}} or {{value || fallback: text}}, where value is an item's value from GET /api/board/{boardId}/merge-fields — for example {{firstname}}, {{Locations["Rent"] || fallback: TBD}}. They are checked for shape — an unclosed {{, an empty field name or a malformed bracket reference is rejected. Whether each field exists is not checked: an unknown one renders as its fallback at merge time.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Aptly API","colors":{"primary":"#0066FF"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"aptly-10a57313","hasAudioNarration":false,"actualSubdomain":"aptly-10a57313","customDomains":["docs.getaptly.com"],"gitSource":{"type":"github","owner":"workturbo","repo":"core-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4dfc987cb31e1fa2cb0ab","collectionId":"1788173d-2862-4418-873a-da2b64e83176","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4dfc987cb31e1fa2cb0ab"},"feedback":{"agentFeedback":true},"entitlements":{},"buildId":"6ae4dfc987cb31e1fa2cb0ab","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":192},{"language":"default","tag":"Board","count":28},{"language":"default","tag":"Documentation","count":17},{"language":"default","tag":"Aptly Portal","count":14},{"language":"default","tag":"Contacts","count":10},{"language":"default","tag":"Cards","count":9},{"language":"default","tag":"Knowledge","count":8},{"language":"default","tag":"Getting Started","count":7},{"language":"default","tag":"Inboxes","count":7},{"language":"default","tag":"Context \u0026 Locations","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/templates/update-a-template","slug":"/api-reference/templates/update-a-template","pageMetadata":{"title":"Update a template","description":"Replaces the fields of an existing template. The payload and its validation are\nidentical to `POST /api/templates` — including the merge-field placeholders\ndocumented there, whose available `value`s come from\n`GET /api/board/{boardId}/merge-fields`. On top of the template permission, the\nacting user must have access to the library folder the template sits in. A\ntemplate that does not exist — or belongs to another company — returns 404; an\narchived one returns 403, since it is the caller's own and\n`GET /api/templates/{id}` still returns it.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/templates/{id}","href":"/api-reference/templates/update-a-template","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Replaces the fields of an existing template. The payload and its validation are\\nidentical to \", _jsx(_components.code, {\n children: \"POST /api/templates\"\n }), \" — including the merge-field placeholders\\ndocumented there, whose available \", _jsx(_components.code, {\n children: \"value\"\n }), \"s come from\\n\", _jsx(_components.code, {\n children: \"GET /api/board/{boardId}/merge-fields\"\n }), \". On top of the template permission, the\\nacting user must have access to the library folder the template sits in. A\\ntemplate that does not exist — or belongs to another company — returns 404; an\\narchived one returns 403, since it is the caller’s own and\\n\", _jsx(_components.code, {\n children: \"GET /api/templates/{id}\"\n }), \" still returns it.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a template","description":"Replaces the fields of an existing template. The payload and its validation are\nidentical to `POST /api/templates` — including the merge-field placeholders\ndocumented there, whose available `value`s come from\n`GET /api/board/{boardId}/merge-fields`. On top of the template permission, the\nacting user must have access to the library folder the template sits in. A\ntemplate that does not exist — or belongs to another company — returns 404; an\narchived one returns 403, since it is the caller's own and\n`GET /api/templates/{id}` still returns it.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/templates/{id}","href":"/api-reference/templates/update-a-template","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Update a template","description":"Replaces the fields of an existing template. The payload and its validation are\nidentical to `POST /api/templates` — including the merge-field placeholders\ndocumented there, whose available `value`s come from\n`GET /api/board/{boardId}/merge-fields`. On top of the template permission, the\nacting user must have access to the library folder the template sits in. A\ntemplate that does not exist — or belongs to another company — returns 404; an\narchived one returns 403, since it is the caller's own and\n`GET /api/templates/{id}` still returns it.\n","operationId":"editTemplate","tags":["Templates"],"security":["20e5396e-5d63-445e-8071-ac5d1a3d1147","1300de10-8746-498e-af39-5775035222d0","40139f3a-c23a-41a1-b267-e4bd5fa8fbb7"],"parameters":["2ff69054-9dd3-4682-9758-0721e9bf9b96"],"requestBody":"37d52d29-6f39-4361-a3df-15b8dde39fe5","responses":{"200":"7af664f3-32be-4e81-97cd-e02549bc5355","400":"01e341f4-62eb-471b-88d4-7c8da1a10ead","401":"70a0a919-4aff-420c-b9c6-32c7506af456","403":"b5dafee6-5b10-48b2-a67f-757407f1fab7","404":"946fdefe-b572-49a2-9832-e8000c807e60"},"method":"put","type":"path","servers":["07b42306-8584-4b68-93b8-f52adbaae2fe"],"path":"/api/templates/{id}","baseUrlOptions":["https://core-api.getaptly.com"],"title":"Update a template","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2ff69054-9dd3-4682-9758-0721e9bf9b96":{"name":"id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Template ID.","uniqueKey":"","typeLabel":"string"},"description":"Template ID."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","description","templateType","subject","content"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"description":{"type":"string","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"templateType":{"type":"string","enum":["sms","email","form","eSignature","pdf"],"description":"Template kind. `blockDocument` is not accepted — it is an internal type for document blocks, not a user-facing template.","isRequired":true,"uniqueKey":"templateType","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"Email subject, or the file name for a `pdf` template — in which case filename-illegal characters are stripped. Merge placeholders work here too, and are shape-checked the same way.","isRequired":true,"uniqueKey":"subject","typeLabel":"string"},"content":{"type":"string","description":"Template body. Merge placeholders take the form `{{value}}` or `{{value || fallback: text}}`, where `value` is an item's `value` from `GET /api/board/{boardId}/merge-fields` — for example `{{firstname}}`, `{{Locations[\"Rent\"] || fallback: TBD}}`. They are checked for shape — an unclosed `{{`, an empty field name or a malformed bracket reference is rejected. Whether each field exists is not checked: an unknown one renders as its fallback at merge time.","isRequired":true,"uniqueKey":"content","typeLabel":"string"},"companyId":{"type":"string","description":"Required with a partner token; resolved from an API key or delegate token.","uniqueKey":"companyId","typeLabel":"string"},"userId":{"type":"string","description":"The acting user. Required with an API key or partner token; a delegate token supplies its own.","uniqueKey":"userId","typeLabel":"string"},"htmlBuilder":{"type":"boolean","enum":[false],"default":false,"description":"Must be `false` or omitted. HTML-builder templates keep their markup in a builder-owned `builderData` format and can only be authored in the app.","uniqueKey":"htmlBuilder","typeLabel":"enum\u003cboolean>"},"builderData":{"type":"object","description":"Builder document, when one already exists.","uniqueKey":"builderData","typeLabel":"object"},"folderId":{"type":"string","description":"Library folder the template belongs to — must be an existing, non-archived folder in the company. Governs who may edit the template.","uniqueKey":"folderId","typeLabel":"string"},"aptletUuid":{"type":"string","description":"Board the template is scoped to. Must be an existing, non-archived board in the company.","uniqueKey":"aptletUuid","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"signature","typeLabel":"string"},"attachmentIds":{"type":"array","items":{"type":"string","uniqueKey":"attachmentIds.items.[INDEX]","typeLabel":"string"},"description":"Uploaded file ids to attach.","uniqueKey":"attachmentIds","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"email":{"title":"email","value":{"companyId":"{{companyId}}","userId":"{{userId}}","name":"Move-in welcome","description":"Sent to new residents on move-in day","templateType":"email","subject":"Welcome to your new home","content":"\u003cp>Welcome!\u003c/p>","htmlBuilder":false}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7af664f3-32be-4e81-97cd-e02549bc5355":{"description":"Template updated.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"_id":{"type":"string","description":"Template ID.","uniqueKey":"data._id","typeLabel":"string"},"companyId":{"type":"string","description":"Company the template belongs to.","uniqueKey":"data.companyId","typeLabel":"string"},"name":{"type":"string","description":"Template display name.","uniqueKey":"data.name","typeLabel":"string"},"templateType":{"type":"string","enum":["sms","email","form","eSignature","pdf","blockDocument"],"description":"Template category.","uniqueKey":"data.templateType","typeLabel":"enum\u003cstring>"},"archived":{"type":"boolean","uniqueKey":"data.archived","typeLabel":"boolean"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"createdBy":{"type":"string","description":"User ID of the creator.","uniqueKey":"data.createdBy","typeLabel":"string"},"updatedAt":{"type":"string","format":"date-time","uniqueKey":"data.updatedAt","typeLabel":"string\u003cdate-time>"}},"additionalProperties":{"description":"Additional properties depend on the templateType (e.g. `subject`, `content` for email templates).","uniqueKey":"data.additionalProperties","typeLabel":"any"},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"_id":"\u003cstring>","companyId":"\u003cstring>","name":"\u003cstring>","templateType":"sms","archived":true,"createdAt":"2023-11-07T05:31:56Z","createdBy":"\u003cstring>","updatedAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"01e341f4-62eb-471b-88d4-7c8da1a10ead":{"description":"Missing companyId, or an invalid payload.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"70a0a919-4aff-420c-b9c6-32c7506af456":{"description":"Invalid or missing credential.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"b5dafee6-5b10-48b2-a67f-757407f1fab7":{"description":"The acting user lacks the template permission or folder access.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"946fdefe-b572-49a2-9832-e8000c807e60":{"description":"Template not found.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"20e5396e-5d63-445e-8071-ac5d1a3d1147":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-token","scopes":[],"schemeName":"ApiKeyHeader"}},"1300de10-8746-498e-af39-5775035222d0":{"DelegateToken":{"type":"apiKey","in":"header","name":"Authorization","description":"Delegate token issued by the platform. Format: `DelegateToken \u003ctoken>`","scopes":[],"schemeName":"DelegateToken"}},"40139f3a-c23a-41a1-b267-e4bd5fa8fbb7":{"PartnerBearer":{"type":"http","scheme":"bearer","description":"Partner token. Format: `Authorization: Bearer \u003ctoken>`","scopes":[],"schemeName":"PartnerBearer"}}},"servers":{"07b42306-8584-4b68-93b8-f52adbaae2fe":{"url":"https://core-api.getaptly.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-token","scopes":[],"schemeName":"ApiKeyHeader"},"schema":{"title":"x-token","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyHeader","name":"x-token"}],"title":"ApiKeyHeader"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Delegate token issued by the platform. Format: `DelegateToken \u003ctoken>`","scopes":[],"schemeName":"DelegateToken"},"schema":{"title":"Authorization","type":"string","description":"Delegate token issued by the platform. Format: `DelegateToken \u003ctoken>`","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"DelegateToken","name":"Authorization"}],"title":"DelegateToken"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Partner token. Format: `Authorization: Bearer \u003ctoken>`","scopes":[],"schemeName":"PartnerBearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Partner token. Format: `Authorization: Bearer \u003ctoken>`","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"PartnerBearer","name":"Authorization"}],"title":"PartnerBearer"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"aptly-10a57313","siteName":"Aptly API","title":"Update a template - Aptly API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T18:20:14.812Z","originalFileLocation":"api-reference/templates/update-a-template.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Replaces the fields of an existing template. The payload and its validation are identical to POST /api/templates — including the merge-field placeholders documented there, whose available values come from GET /api/board/{boardId}/merge-fields. On top of the template permission, the acting user must have access to the library folder the template sits in. A template that does not exist — or belongs to another company — returns 404; an archived one returns 403, since it is the caller\u0026#x27;s own and GET /api/templates/{id} still returns it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Aptly API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a template - Aptly API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Replaces the fields of an existing template. The payload and its validation are identical to POST /api/templates — including the merge-field placeholders documented there, whose available values come from GET /api/board/{boardId}/merge-fields. On top of the template permission, the acting user must have access to the library folder the template sits in. A template that does not exist — or belongs to another company — returns 404; an archived one returns 403, since it is the caller\u0026#x27;s own and GET /api/templates/{id} still returns it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Aptly API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getaptly.com/api-reference/templates/update-a-template\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://aptly-10a57313.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+a+template\u0026amp;description=Replaces+the+fields+of+an+existing+template.+The+payload+and+its+validation+are%0Aidentical+to+%60POST+%2Fapi%2Ftemplates%60+%E2%80%94+including+the+merge-field+placeholders%0Adocu\u0026amp;theme=2df7969a14dd47f616338bb6\u0026amp;signature=ccc06cfb2aefdb5aa178d45d5af77389c72419fabee59709bb7cd51856746434\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a template - Aptly API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Replaces the fields of an existing template. The payload and its validation are identical to POST /api/templates — including the merge-field placeholders documented there, whose available values come from GET /api/board/{boardId}/merge-fields. On top of the template permission, the acting user must have access to the library folder the template sits in. A template that does not exist — or belongs to another company — returns 404; an archived one returns 403, since it is the caller\u0026#x27;s own and GET /api/templates/{id} still returns it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://aptly-10a57313.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+a+template\u0026amp;description=Replaces+the+fields+of+an+existing+template.+The+payload+and+its+validation+are%0Aidentical+to+%60POST+%2Fapi%2Ftemplates%60+%E2%80%94+including+the+merge-field+placeholders%0Adocu\u0026amp;theme=2df7969a14dd47f616338bb6\u0026amp;signature=ccc06cfb2aefdb5aa178d45d5af77389c72419fabee59709bb7cd51856746434\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/aptly-10a57313/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Aptly API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0066FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getaptly.com/api-reference/templates/update-a-template\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/templates/update-a-template.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getaptly.com/#organization\",\"name\":\"Aptly API\",\"url\":\"https://docs.getaptly.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getaptly.com#website\",\"name\":\"Aptly API\",\"url\":\"https://docs.getaptly.com\",\"publisher\":{\"@id\":\"https://docs.getaptly.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getaptly.com/api-reference/templates/update-a-template#webpage\",\"url\":\"https://docs.getaptly.com/api-reference/templates/update-a-template\",\"name\":\"Update a template\",\"description\":\"Replaces the fields of an existing template. The payload and its validation are identical to POST /api/templates — including the merge-field placeholders documented there, whose available values come from GET /api/board/{boardId}/merge-fields. On top of the template permission, the acting user must have access to the library folder the template sits in. A template that does not exist — or belongs to another company — returns 404; an archived one returns 403, since it is the caller's own and GET /api/templates/{id} still returns it.\",\"dateModified\":\"2026-10-30T18:20:14.812Z\",\"isPartOf\":{\"@id\":\"https://docs.getaptly.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getaptly.com/api-reference/templates/update-a-template#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getaptly.com/api-reference/templates/update-a-template#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.getaptly.com/api-reference/users/list-users\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Templates\",\"item\":\"https://docs.getaptly.com/api-reference/templates/list-templates\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update a template\",\"item\":\"https://docs.getaptly.com/api-reference/templates/update-a-template\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getaptly.com/api-reference/templates/update-a-template#apireference\",\"headline\":\"Update a template\",\"name\":\"Update a template\",\"description\":\"Replaces the fields of an existing template. The payload and its validation are identical to POST /api/templates — including the merge-field placeholders documented there, whose available values come from GET /api/board/{boardId}/merge-fields. On top of the template permission, the acting user must have access to the library folder the template sits in. A template that does not exist — or belongs to another company — returns 404; an archived one returns 403, since it is the caller's own and GET /api/templates/{id} still returns it.\",\"url\":\"https://docs.getaptly.com/api-reference/templates/update-a-template\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getaptly.com/api-reference/templates/update-a-template#webpage\"},\"dateModified\":\"2026-10-30T18:20:14.812Z\",\"publisher\":{\"@id\":\"https://docs.getaptly.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getaptly.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Aptly API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Aptly API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"group":"Users","pages":[{"title":"List users","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/users","href":"/api-reference/users/list-users"},{"title":"List a user's email inboxes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/users/{userId}/inboxes","href":"/api-reference/users/list-a-users-email-inboxes"}]},{"group":"Inboxes","pages":[{"title":"List inboxes you can query","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes","href":"/api-reference/inboxes/list-inboxes-you-can-query"},{"title":"List threads and messages on an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/messages","href":"/api-reference/inboxes/list-threads-and-messages-on-an-inbox"},{"title":"Conversation analytics for an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/analytics","href":"/api-reference/inboxes/conversation-analytics-for-an-inbox"},{"title":"Activity history for an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/history","href":"/api-reference/inboxes/activity-history-for-an-inbox"},{"title":"Volume and response-time trends for an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/trends","href":"/api-reference/inboxes/volume-and-response-time-trends-for-an-inbox"},{"title":"Volume health for an inbox against its own baseline","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/health","href":"/api-reference/inboxes/volume-health-for-an-inbox-against-its-own-baseline"},{"title":"List unsent drafts on an inbox","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/inboxes/{channelId}/drafts","href":"/api-reference/inboxes/list-unsent-drafts-on-an-inbox"}]},{"group":"Schema","pages":[{"title":"Get board schema","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/schema/{boardId}","href":"/api-reference/schema/get-board-schema"}]},{"group":"Boards","pages":[{"title":"List boards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/boards","href":"/api-reference/boards/list-boards"},{"title":"Create a board","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/boards","href":"/api-reference/boards/create-a-board"}]},{"group":"Cards","pages":[{"title":"List cards","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/list","href":"/api-reference/cards/list-cards"},{"title":"List cards (deprecated)","deprecated":true,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}","href":"/api-reference/cards/list-cards-deprecated"},{"title":"Create or update a card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}","href":"/api-reference/cards/create-or-update-a-card"},{"title":"Get a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/{cardId}","href":"/api-reference/cards/get-a-card"},{"title":"Archive a card","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}/{cardId}","href":"/api-reference/cards/archive-a-card"},{"title":"List comments on a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/{cardId}/comments","href":"/api-reference/cards/list-comments-on-a-card"},{"title":"List contacts linked to a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/{cardId}/contacts","href":"/api-reference/cards/list-contacts-linked-to-a-card"},{"title":"Add or update a comment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/{cardId}/comment","href":"/api-reference/cards/add-or-update-a-comment"},{"title":"Upload a file to a card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/{cardId}/file","href":"/api-reference/cards/upload-a-file-to-a-card"}]},{"group":"Board","pages":[{"title":"Archive a board","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}","href":"/api-reference/board/archive-a-board"},{"title":"List merge fields for a board","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/merge-fields","href":"/api-reference/board/list-merge-fields-for-a-board"},{"title":"List users who can open a board","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/users","href":"/api-reference/board/list-users-who-can-open-a-board"},{"title":"Add a tab view","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/tabViews","href":"/api-reference/board/add-a-tab-view"},{"title":"Add a tab view (legacy)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/tabView","href":"/api-reference/board/add-a-tab-view-legacy"},{"title":"Verify a delegate token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/verify-user","href":"/api-reference/board/verify-a-delegate-token"},{"title":"Set or update the board's webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/webhook","href":"/api-reference/board/set-or-update-the-boards-webhook"},{"title":"Remove the board's webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}/webhook","href":"/api-reference/board/remove-the-boards-webhook"},{"title":"Get full board configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration","href":"/api-reference/board/get-full-board-configuration"},{"title":"List board automations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/automations","href":"/api-reference/board/list-board-automations"},{"title":"Create an automation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/automations","href":"/api-reference/board/create-an-automation"},{"title":"List create-card rules","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/card-rules","href":"/api-reference/board/list-create-card-rules"},{"title":"Get board options","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/options","href":"/api-reference/board/get-board-options"},{"title":"List board fields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/fields","href":"/api-reference/board/list-board-fields"},{"title":"Add a field","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/fields","href":"/api-reference/board/add-a-field"},{"title":"Add a mirror field","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/mirror-fields","href":"/api-reference/board/add-a-mirror-field"},{"title":"Update a field","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/fields/{fieldUuid}","href":"/api-reference/board/update-a-field"},{"title":"Delete a field","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/board/{boardId}/configuration/fields/{fieldUuid}","href":"/api-reference/board/delete-a-field"},{"title":"Reorder fields","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/field-order","href":"/api-reference/board/reorder-fields"},{"title":"List board field groups","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/groups","href":"/api-reference/board/list-board-field-groups"},{"title":"Create a field group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/board/{boardId}/configuration/groups","href":"/api-reference/board/create-a-field-group"},{"title":"Update a field group","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/groups/{groupUuid}","href":"/api-reference/board/update-a-field-group"},{"title":"Get the create-card form order","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/start-card-order","href":"/api-reference/board/get-the-create-card-form-order"},{"title":"Set the create-card form order","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/board/{boardId}/configuration/start-card-order","href":"/api-reference/board/set-the-create-card-form-order"},{"title":"Get board access settings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/shares","href":"/api-reference/board/get-board-access-settings"},{"title":"Get board identity fields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/theme","href":"/api-reference/board/get-board-identity-fields"},{"title":"Update board identity fields","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/board/{boardId}/configuration/theme","href":"/api-reference/board/update-board-identity-fields"},{"title":"List board filters","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/board/{boardId}/configuration/filters","href":"/api-reference/board/list-board-filters"}]},{"group":"Company","pages":[{"title":"Get company info","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/company/info","href":"/api-reference/company/get-company-info"}]},{"group":"Contacts","pages":[{"title":"Get conversations for contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/conversations","href":"/api-reference/contacts/get-conversations-for-contacts"},{"title":"Get contact conversations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}/conversations","href":"/api-reference/contacts/get-contact-conversations"},{"title":"List contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Create or update a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts","href":"/api-reference/contacts/create-or-update-a-contact"},{"title":"Look up contacts by email","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/by-email","href":"/api-reference/contacts/look-up-contacts-by-email"},{"title":"Initiate contact email verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/verify-email","href":"/api-reference/contacts/initiate-contact-email-verification"},{"title":"Confirm contact email verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/verify-email/{requestId}/confirm","href":"/api-reference/contacts/confirm-contact-email-verification"},{"title":"Get a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}","href":"/api-reference/contacts/get-a-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/{contactId}","href":"/api-reference/contacts/update-a-contact"},{"title":"Get a contact's sentiment history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}/sentiment","href":"/api-reference/contacts/get-a-contacts-sentiment-history"}]},{"group":"Knowledge","pages":[{"title":"Create a knowledge document","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/knowledge/create","href":"/api-reference/knowledge/create-a-knowledge-document"},{"title":"List knowledge documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/list","href":"/api-reference/knowledge/list-knowledge-documents"},{"title":"Get the knowledge document tree","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/tree","href":"/api-reference/knowledge/get-the-knowledge-document-tree"},{"title":"List a knowledge document's direct children","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}/children","href":"/api-reference/knowledge/list-a-knowledge-documents-direct-children"},{"title":"List saved knowledge document versions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}/history","href":"/api-reference/knowledge/list-saved-knowledge-document-versions"},{"title":"Read a saved knowledge document version","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}/history/{versionId}","href":"/api-reference/knowledge/read-a-saved-knowledge-document-version"},{"title":"Get a knowledge document","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/knowledge/{id}","href":"/api-reference/knowledge/get-a-knowledge-document"},{"title":"Update a knowledge document","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/knowledge/{id}","href":"/api-reference/knowledge/update-a-knowledge-document"}]},{"group":"Email","pages":[{"title":"Create an email draft","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/email/create-draft","href":"/api-reference/email/create-an-email-draft"},{"title":"Send an email","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/email/send","href":"/api-reference/email/send-an-email"}]},{"group":"App","pages":[{"title":"Verify a delegate token (keyless)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/app/verify","href":"/api-reference/app/verify-a-delegate-token-keyless"},{"title":"Get credential info","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/app/me","href":"/api-reference/app/get-credential-info"}]},{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/templates","href":"/api-reference/templates/list-templates"},{"title":"Create a template","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/templates","href":"/api-reference/templates/create-a-template"},{"title":"Get a template","description":"Returns a single template by its ID. The template must belong to the authenticated company.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/templates/{id}","href":"/api-reference/templates/get-a-template"},{"title":"Update a template","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/templates/{id}","href":"/api-reference/templates/update-a-template"}]},{"group":"Tasks","pages":[{"title":"Search tasks","description":"Query tasks for the authenticated company. All body fields are optional filters.\nDate-range filters (`dueAt`, `checkedAt`, `updatedAt`) take an object of\n`{ startDate, endDate }` — either bound may be supplied independently. Set\n`useCount: true` to return `{ count }` instead of `{ tasks }`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tasks/search","href":"/api-reference/tasks/search-tasks"},{"title":"Create a task","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tasks","href":"/api-reference/tasks/create-a-task"},{"title":"Update many tasks","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tasks/bulk-update","href":"/api-reference/tasks/update-many-tasks"},{"title":"Get a task by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tasks/{taskId}","href":"/api-reference/tasks/get-a-task-by-id"},{"title":"Update a task","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/tasks/{taskId}","href":"/api-reference/tasks/update-a-task"}]},{"group":"RoutingGroups","pages":[{"title":"List routing groups","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/routing-groups","href":"/api-reference/routinggroups/list-routing-groups"},{"title":"Create a routing group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/routing-groups/create","href":"/api-reference/routinggroups/create-a-routing-group"},{"title":"Update a routing group","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/routing-groups/{id}","href":"/api-reference/routinggroups/update-a-routing-group"},{"title":"Archive a routing group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/routing-groups/{id}/archive","href":"/api-reference/routinggroups/archive-a-routing-group"}]},{"group":"Files","pages":[{"title":"Get a presigned URL for a direct file upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/files/upload-url","href":"/api-reference/files/get-a-presigned-url-for-a-direct-file-upload"},{"title":"Finalize a direct file upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/files/upload-complete","href":"/api-reference/files/finalize-a-direct-file-upload"}]},{"group":"WebForms","pages":[{"title":"Submit a web form","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/web-forms/{formId}","href":"/api-reference/webforms/submit-a-web-form"}]},{"group":"Tours","pages":[{"title":"List tour feedback","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tours/feedback","href":"/api-reference/tours/list-tour-feedback"},{"title":"Get one showing's tour feedback","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tours/{showingId}/feedback","href":"/api-reference/tours/get-one-showings-tour-feedback"}]},{"group":"Docs","pages":[{"title":"Fetch this OpenAPI spec","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/docs/openapi","href":"/api-reference/docs/fetch-this-openapi-spec"}]}]}]},{"tab":"Aptly Portal","icon":"door-closed","pages":[{"title":"Aptly Portal","href":"/portal/introduction"}]}]},"basePath":"","title":"Update a template - Aptly API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}