surface

Discover nodes and templates.

Discover current node schemas and owned template endpoints, preserve their identifiers, follow opaque cursors, and build requests from the returned contract.

Written for
Developers discovering operations and application-ready workflows.
Interactive API reference Explore endpoints, request schemas and responses. Opens in a new tab

Discover current operations before constructing a graph or application. Node types and templates are account-dependent; a label from an old example is not a stable substitute for the schema the server returns.

All routes here are relative to /api/v1.

Carry identity from search to execution

Use the exact runnable identity and schema returned by discovery.

Search helps find candidates; details establish their callable identity and current input schema. A display name or category is not a substitute for the returned identifier. Read required inputs, types and defaults before building a request. Recheck discovery when availability changes instead of guessing an older name.

Resize Image illustrates exact inputImage and outputImage pin names. Two independently named instances use scale factors 0.5 and 0.25; those instance IDs are distinct from the operation type returned by discovery. The interface is an excerpt, not its complete schema.

Search node types

Use GET /node-types with node_types:read. Supported query fields include search, limit, opaque cursor, and optional comma-separated fields. The default limit is 50 and maximum is 200. Keep the returned type identifier, including any path segments.

Read GET /node-types/{node_type} for detailed pins, widgets, defaults, requirements, and help. Use exact pin identifiers in connections and run inputs. The display title is not the type, and a type is not a graph instance ID.

Discover application-ready templates

Use GET /templates with templates:read. Search by text and use hasEndpoint=true when looking for active workflow endpoints. This REST list describes the caller's owned templates; do not assume it is the entire community catalog. Follow the returned cursor instead of constructing one.

Read GET /templates/{template_id}/endpoints, then GET /templates/{template_id}/endpoints/{endpoint_id}/docs. The generated contract describes API field names, required/default values, file input shapes, and owner/external routes. It does not disclose an endpoint's secret key.

Keep discovery and execution separate

Node type: discover the current operation and its exact pins. Instance: assign a stable node ID when placing that type in a graph. Template endpoint: read exposed API field names and the generated request contract. Discovery does not run work, reveal endpoint secrets, or guarantee provider access. Cursors are opaque and signed thumbnail URLs should not receive REST secrets.

Build from the returned contract

Preserve schema identifiers and the request shape for the operation you mean to call. A thumbnail URL has its own access mechanism: do not attach your REST bearer secret to signed media URLs. A discoverable type or template may still need configured providers, inputs, capabilities, or permission to execute.

See Projects and graph documents for editing, Workflow API endpoints for application fields, and Runs, progress and cancellation for execution.

Last reviewed against Kaitoi on 24 October 2026. View this page as Markdown

Type at least two characters.