POST
https://api.craftkit.dev/v1/embed/catalogsname creates the next version and marks it
current; the previous version is archived, never deleted. Sessions reference a catalog by name via
catalogRef.
Authorization
string
required
Bearer ck_live_… — a project API key for a project with embed enabled.Body
string
required
Catalog name. Lowercase letters, numbers, and hyphens (
^[a-z0-9][a-z0-9-]*$, ≤120 chars).
Reusing an existing name publishes the next version.object
required
The full catalog payload.
namespaces[].fields and loops[].itemFields) is:
string
required
Dot-path key (
customer.name). Pattern ^[a-zA-Z_][a-zA-Z0-9_.]*$, ≤160 chars.string
required
Display name in the picker (1–160 chars).
string
required
One of
text, longtext, number, currency, date, datetime, boolean, image, url, email, select.boolean
default:"false"
Client-side hint; form-fill blocks submit if left blank. Server-side enforcement still uses the template’s variable definition.
{ value, label }[]
Fixed choices for a
select field — value is stored/validated, label is display text. Required (non-empty, unique values) when dataType is select; ignored for every other type.string
Formatting hint (
currency:EUR, date:DD/MM/YYYY), ≤60 chars.string
Helper text shown under the field, ≤280 chars.
scalar
Dummy value for the live preview / input placeholder.
A
select catalog field mirrors the template select variable — the picker offers its options
and the resolved template validates the chosen value at render time (a value outside the options
fails with invalid_input_data). Example:Response
201 when the version is published.
string
Catalog row UUID for the new version.
string
The catalog name you passed.
number
Monotonically increasing version number within this name.
Errors
cURL
201