Dynalinks
Page templates

Save the page template draft

PATCH
/page_template
Manage the page template shown on link preview pages. Requires page-template access, enabled per project by Dynalinks. Experimental: the request and response shapes may still change.

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.

Authorization

headerAuthorization<token>

Format: Authorization: Token {api_key}

Request Body

application/json
  1. body
body?string

Liquid and HTML for the page body, at most 65,536 bytes (UTF-8, so fewer characters if you use non-ASCII text). Must include {% store_buttons %} at the top level. Omit to keep the current value; send an empty string to clear it. null is rejected.

css?string

Plain CSS for the page, at most 32,768 bytes. Omit to keep the current value; send an empty string to clear it. null is rejected.

Response Body

Draft saved

application/json
  1. response
id?string

UUID of the page template

Formatuuid
body?string

Body of the draft

css?string

CSS of the draft

unpublished_changes?boolean

Whether the draft differs from the live version

live_version?|null

The version links currently show, or null if nothing is published

created_at?string
Formatdate-time
updated_at?string
Formatdate-time
Example Request
curl -X PATCH 'https://dynalinks.app/api/v1/page_template' \  -H 'Content-Type: application/json' \  -d '{  "body": "<div class=\"page\">{{ link.title }}</div>\n{% store_buttons %}",  "css": ".page { color: #111; }"}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "body": "string",  "css": "string",  "unpublished_changes": true,  "live_version": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "published_at": "2019-08-24T14:15:22Z",    "live": true,    "body": "string",    "css": "string"  },  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}