Retrieve a template
GET /v1/workflows/templates/
definition and a sample_input you can run it with unchanged.Authorizations
API key in format: Bearer inf_***
Path Parameters
Template slug, as returned in the list. Max 120 characters — a longer one is answered 404 without a lookup.
"weekly-report"
Response
The template. Carries either definition/sample_input/inputs, or unavailable — never both.
Stable identifier, and the path segment for the detail route. Max 120 characters.
"weekly-report"
Display title. Max 200 characters.
"Weekly report"
Catalog description. Always a string — the column is NOT NULL.
"Summarise a week of notes and render a PDF."
Catalog category, or null when the template is uncategorised. The category filter matches this exactly.
"reporting"
Free-form tags. The tag filter matches a template whose array CONTAINS the given tag.
The step types the template's definition uses, denormalised at seed time for filtering and display.
Preview image URL, or null when the template has none.
null
ISO-8601 creation timestamp. The list is ordered by this, OLDEST first.
"2026-02-11T08:00:00.000Z"
The template's workflow definition, ready to send as the definition of a run. Unmodelled here — its shape is the Zod schema in schemas/pipeline-definition.schema.ts. Validated when the template was seeded, not on this read. Absent when unavailable is present.
An example input object for this template. {} when the template declares none. Absent when unavailable is present.
The declared run inputs read out of definition.inputs. [] for a legacy template that predates the input contract. Absent when unavailable is present.
Present only when the template is hidden. Its presence is what tells you definition was withheld deliberately rather than being missing.