List page template versions
Lists the kept published versions (up to 20), newest first, marking the live one. Bodies and CSS are left out; get a single version for them.
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}
The versions
application/json- response
versions?array<>curl -X GET 'https://dynalinks.app/api/v1/page_template/versions'{ "versions": [ { "id": "0199e2a9-1a2b-7c3d-8e4f-5a6b7c8d9e0f", "published_at": "2026-10-12T09:30:00.000Z", "live": true }, { "id": "0199e1f0-3c4d-7e5f-9a0b-1c2d3e4f5a6b", "published_at": "2026-10-11T14:00:00.000Z", "live": false } ]}Preview the page template POST
Renders the full link page as HTML, without saving anything. Renders the posted `body` and `css`; whatever is omitted comes from the saved draft (or the starter template if the saved draft is empty or the project has no page template). The page is rendered for a sample link, unless you pass `link_id`. The preview never redirects and never collects a fingerprint. Asset URLs in the HTML are absolute, so it can be shown in a webview or a `srcdoc` iframe. The HTML includes our page scripts, so show it in a sandboxed iframe (`<iframe sandbox="allow-scripts" srcdoc="...">`) to keep them out of your own origin. The request body is optional. When you send one, send `Content-Type: application/json`. 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.show` scope. Previewing with `link_id` also needs the `links.show` scope.
Get a page template version GET
Returns one published version with its body and CSS. **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.