Find a template & its fields

Every render needs a templateId and a values map keyed by that template's variables. This guide is the hop between "I have a key" and "I can render": browse the catalog, pick an id, then read the fields it accepts.

Built-in (tmpl_) vs owned (wtpl_) ids

There are two kinds of template id, and they render through the exact same engine:

  • tmpl_… — a curated built-in template from the shared Lemtika catalog.
  • wtpl_… — a workspace-owned copy you forked from a built-in and can edit (see Brand profile for how brand values flow in, and the Templates API for forking). A wtpl_… is accepted anywhere a tmpl_… is.

1. Browse the catalog

GET /v1/catalog lists the active built-in templates. Narrow with optional query facets: category, subCategory, market (global | vietnam), q (name substring), and sort=newest.

curl -sS "https://api.lemtika.com/v1/catalog?category=social-marketing&q=launch" \
  -H "Authorization: Bearer $LEMTIKA_API_KEY"

Each list item carries the id you render with, plus its available ratios:

[
  {
    "id": "tmpl_og_card",
    "name": "Launch Headline",
    "category": "social-marketing",
    "subCategory": "branded-post",
    "market": "global",
    "thumbnail": "https://… (short-lived signed URL)",
    "ratios": ["square", "portrait", "story", "landscape", "og"]
  }
]

2. Read the fields it accepts

GET /v1/catalog/{id} returns the full detail, including the variables array — the keys you populate in values:

curl -sS "https://api.lemtika.com/v1/catalog/tmpl_og_card" \
  -H "Authorization: Bearer $LEMTIKA_API_KEY"
{
  "id": "tmpl_og_card",
  "name": "Launch Headline",
  "dimensions": { "width": 1200, "height": 630 },
  "aspect": "Landscape (1.91:1)",
  "format": "png",
  "ratios": ["square", "portrait", "story", "landscape", "og"],
  "variables": [
    { "name": "headline", "type": "text", "label": "Headline", "bindsTo": null },
    { "name": "metric", "type": "text", "label": "Metric" },
    { "name": "logo", "type": "image", "bindsTo": "brand.logo" }
  ]
}

Each variable's name is a key in values; type is one of text, longText, colour, image, number, date, enum, or list. A variable with a bindsTo brand role (e.g. brand.logo) is pre-filled from your brand profile — you can override it, or leave it out.

3. Render it

curl -sS -X POST "https://api.lemtika.com/v1/render" \
  -H "Authorization: Bearer $LEMTIKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "templateId": "tmpl_og_card", "values": { "headline": "Launch day", "metric": "10k users" } }' \
  -o render.png

To browse the taxonomy spine (categories + sub-categories), call GET /v1/catalog/taxonomy.