Get the page template
Returns the project's page template: the draft and the live version links currently show.
Requirements: a Pro plan, page templates enabled for the project, and an API key of a project
owner or manager with the page_templates.show scope.
Authorization<token>Format: Authorization: Token {api_key}
Page template found
application/json- response
id?stringUUID of the page template
uuidbody?stringBody of the draft
css?stringCSS of the draft
unpublished_changes?booleanWhether the draft differs from the live version
live_version?|nullThe version links currently show, or null if nothing is published
created_at?stringdate-timeupdated_at?stringdate-timecurl -X GET 'https://dynalinks.app/api/v1/page_template'{ "id": "0199e2a8-6f3b-7c1e-9a4d-2b8f6c1d3e5a", "body": "<div class=\"page\">{{ link.title }}</div>\n{% store_buttons %}", "css": ".page { color: #111; }", "unpublished_changes": true, "live_version": { "id": "0199e2a9-1a2b-7c3d-8e4f-5a6b7c8d9e0f", "published_at": "2026-10-12T09:30:00.000Z", "live": true, "body": "<div>{{ link.title }}</div>\n{% store_buttons %}", "css": "" }, "created_at": "2026-10-10T08:00:00.000Z", "updated_at": "2026-10-12T10:00:00.000Z"}Verify custom domain for a project GET
Verifies the custom domain configuration for a project by checking DNS records
Save the page template draft PATCH
Saves the draft. Creates the page template on the first save (201). Saving does not change the live page; publish the draft for that. Fields you omit keep their current value. The draft is validated: Liquid syntax, the required top-level `{% store_buttons %}` tag, the allowed HTML and CSS, the page's Content Security Policy, and the size limits (body 65,536 bytes, CSS 32,768 bytes). Problems are returned with the field and line they are on. Saving, publishing and previewing share a limit of 60 requests per minute per API key. **Requirements**: a Pro plan, page templates enabled for the project, and an API key of a project owner or manager with the `page_templates.update` scope.