Templates
Discover published workflow templates programmatically — browse the catalog without receiving the underlying graph.
Templates are published workflows from the community library. This endpoint lets agents and integrations browse the catalog token-efficiently: you get the metadata and the input interface, never the workflow graph itself (nodes, edges, and node configuration stay private to the creator).
List Templates
GET /api/v1/templates
Returns published templates. Requires authentication with the workflows:read scope (implied by workflows:execute and workflows:write).
The catalog is cached server-side for up to 60 seconds, so a just-published template can take a minute to appear. Catalogs beyond 500 templates are truncated to the 500 most recently updated.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
q |
string |
Case-insensitive search over title and description (the whole value as one phrase) |
query |
string |
Case-insensitive search over title, description and tags. Every word has to match, in any field. The same search MCP list_templates runs |
icp |
string |
Who the template is for (see Facets). Repeatable or comma-separated; several values match ANY of them. An unknown value returns 400 |
style |
string |
The look of the output (see Facets). Same rules as icp |
purpose |
string |
The job it does (see Facets). Same rules as icp |
format |
string |
Aspect ratio of the output (see Facets). Same rules as icp |
output |
string |
Kind of file it returns (see Facets). Same rules as icp |
tag |
string |
Filter by category tag (e.g. video, anime) |
capability |
string |
Filter by what the graph contains (e.g. video-assembler). Repeatable or comma-separated; multiple values mean ALL of them. An unknown value returns 400 |
sort |
string |
recent (default, most recently updated), popular (most viewed) or quality (ranked by a smoothed first-result score, ties in the curated order; the order MCP list_templates uses) |
limit |
number |
Page size. Default 20, max 50 |
offset |
number |
Number of results to skip. Default 0 |
Request
curl "https://www.wireflow.ai/api/v1/templates?tag=video&sort=popular&limit=10" \
-H "Authorization: Bearer sk-your-api-key"
# Templates that really do assemble a finished video, whatever they are tagged:
curl "https://www.wireflow.ai/api/v1/templates?capability=video-assembler" \
-H "Authorization: Bearer sk-your-api-key"
# A vertical launch video for a founder, best-performing first:
curl "https://www.wireflow.ai/api/v1/templates?icp=founder&purpose=launch&format=9x16&sort=quality" \
-H "Authorization: Bearer sk-your-api-key"
Response 200 OK
{
"data": [
{
"id": "cm1abc123",
"publishedSlug": "anime-reel-factory",
"title": "Anime Reel Factory",
"description": "Turns a prompt into a 3-act anime reel",
"tags": ["video", "anime"],
"coverImage": "https://cdn.wireflow.ai/poster.jpg",
"exampleOutputs": [
{
"label": "Final reel",
"type": "video",
"url": "https://cdn.wireflow.ai/renders/reel-final.mp4"
}
],
"views": 420,
"likeCount": 12,
"duplicates": 33,
"updatedAt": "2026-07-01T00:00:00.000Z",
"author": {
"displayName": "Michael",
"handle": "michael",
"avatarUrl": "https://cdn.wireflow.ai/a.png"
},
"inputInterface": [
{
"nodeId": "node-prompt",
"nodeType": "input:text",
"label": "Story prompt",
"inputType": "text"
}
],
"capabilities": ["video-assembler", "image-generation", "paid-nodes"],
"facets": {
"icp": ["founder"],
"purpose": ["launch"],
"format": ["9x16"],
"output": ["video"]
},
"picks": 41,
"copies": 63,
"firstResultRate": 0.585
}
],
"pagination": { "total": 1, "limit": 10, "offset": 0, "hasMore": false }
}
Fields
tags— the template's category tags (the internaltemplatemarker tag is stripped).exampleOutputs— sample media the template has produced, resolved server-side to{ label, type, url }entries (typeisimage,video, oraudio). Empty array when no examples are available.inputInterface— the template's user-facing inputs, projected from the graph's input nodes. Only the node id, node type, label, and expected input kind (text,image,url, …) are exposed.author— the creator's public profile fields only (same as community pages).capabilities: what the template's graph actually contains, derived from its nodes on every request. Use this, nottags, when correctness matters: a category is prose the author typed, and it frequently disagrees with the graph.facets: the template's controlled facet tags, parsed fromtags(see Facets). A facet the template has no tag for is absent.picks,copies,firstResultRate: measured over the last 180 days, refreshed nightly.pickscounts gallery copies, one per user;copiesadds onboarding and every other way in.firstResultRateis the raw share of picks whose user got a finished run within 7 days, and appears only once a template has 20 picks.sort=qualityranks by a smoothed, recency-weighted version of it, so the order can differ from sorting on the raw field. A template with no data has none of the three; a missing field means unknown, not zero.
Facets
| Facet | Values |
|---|---|
icp |
founder, marketing, agency, freelancer, creator, ecommerce, developer, hobbyist |
style |
hype-launch, product-film, ugc, talking-head, founder-doc, explainer, motion-graphics, kinetic-type, cinematic, before-after, viral-recast, static-ad, carousel, thumbnail, ai-character, presenter, slideshow, utility |
purpose |
launch, ad, announcement, explainer, social-growth, brand-assets, sales, internal, fun |
format |
9x16, 16x9, 1x1, 4x5, mixed |
output |
video, image, carousel, audio, text |
Values in one facet are OR (icp=founder,creator matches either); different facets are AND.
Capabilities
| Value | Meaning |
|---|---|
video-assembler |
Contains a video:remotion node that assembles and renders a finished video |
video-generation |
Contains an AI video model (generated shots, avatar, lipsync) |
image-generation |
Contains an AI image model that produces a new image |
llm |
Contains an LLM node that writes or reasons about text |
iterator |
Contains an iterator, so the graph fans out over a list |
paid-nodes |
Contains at least one node that spends credits when it runs |
connected-account |
Needs a connected account or API key (Drive, Discord, Notion, social publishing) |
Capabilities describe the KINDS of node present. They never expose node ids, ordering, counts, or configuration, so they say what a template can do without revealing how it does it. A node marked skipped is excluded, since it never runs.
What is never returned
The workflow graph is the creator's IP. The response never includes nodes, edges, node config/params/prompt values, secrets, or the author's email. Discovery is read-only: to use a template, duplicate it from its public page in the app, or run it directly with Execute Templates if the author has enabled API execution.