posts

Create design from template

Fill a template into an on-brand, rendered design.

Give a template_id (from search_templates) plus the copy for each text field, your brand colors, logo, and any images for FILLER slots. We render the design server-side and return its image URLs. Renders synchronously — expect a few seconds. Send an Idempotency-Key header to make retries safe.

Errors: 400 invalid_value: The business_id is not a valid UUID. 400 missing_field: Copy was not provided for one or more required text fields, or an image was not provided for a required FILLER slot. 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, this business is not in your org, or the template is private to another business. 404 resource_not_found: No business or template with that ID exists. 422 invalid_request: Copy exceeded a text field's max_characters, or a FILLER image could not be read. 429 rate_limit_exceeded: You sent too many requests this minute.

post/api/businesses/{business_id}/designs

Request

  • Base URL: https://api.mymarky.ai
  • URL: https://api.mymarky.ai/api/businesses/{business_id}/designs
  • Auth: HTTP bearer

Path parameters

business_idstring required

A UUID identifier.

Headers

Idempotency-Keystring nullable

Optional. Send a unique value (e.g. a UUID) to make this create request safe to retry. A repeat with the same key returns the original response instead of creating a duplicate. Cached for 24h, scoped to your org. Reusing a key with a different body returns 422.

Marky-Version'2026-04-08' | '2026-07-17' | '2026-08-02' | '2026-08-04' | '2026-08-06'
Example:2026-08-06

Opt into a dated API version. Omit to stay on the floor (2026-04-08) forever — unpinned clients never break. Pin to a newer date (e.g. 2026-08-06) to receive the newest response shapes. Unknown values fall back to the floor. See https://docs.mymarky.ai for the versioning model.

Request body

template_idstring required

Template to fill (from search_templates / list_templates).

text_contentobject

Map of text-field id → copy. Provide every required (non-STATIC) field.

palettestring[]

Brand colors as hex strings, e.g. ['#0A0A0A','#FFFFFF'].

logo_urlstring nullable

Brand logo image URL.

filler_mediaobject

Map of image-slot id → image to place in it.

header_fontobject nullable

Optional header font as {family, url}.

body_fontobject nullable

Optional body font as {family, url}.

logo_background_colorstring nullable

Solid color behind the logo, if any.

ratiostring nullable

Resize the design to this aspect ratio, e.g. '4:5' or '1:1'.

Response

Successful Response

design_idstring required

Id of the saved design.

template_idstring nullable

Template the design was filled from (null if unknown).

business_idstring required

Business the design belongs to.

image_urlsstring[]

Rendered page image URLs (one per page). To post this design, call create_post with this design_id — the media is taken from the design automatically.

widthinteger required

Design width in px.

heightinteger required

Design height in px.

page_countinteger required

Number of pages in the design.

edit_urlstring required

Open the design in the editor to view or tweak it — a link you can hand the user.

Changes

No recorded changes to this operation across all 1 revision of this API.