Get the node catalog
curl --request GET \
--url https://inference.studio.lyzr.ai/api/node-typesimport requests
url = "https://inference.studio.lyzr.ai/api/node-types"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://inference.studio.lyzr.ai/api/node-types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://inference.studio.lyzr.ai/api/node-types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://inference.studio.lyzr.ai/api/node-types"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://inference.studio.lyzr.ai/api/node-types")
.asString();require 'uri'
require 'net/http'
url = URI("https://inference.studio.lyzr.ai/api/node-types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"version": "v1-e7ba67a4e172",
"engine": "<string>",
"profile": "full",
"nodes": [
{
"type": "lyzr-nodes-base.lyzr.decide",
"label": "Decide",
"category": "AI",
"description": "<string>",
"version": 123,
"parameters": {},
"inputs": {},
"outputs": [
{}
],
"outputKind": "<string>",
"outputFields": [
{
"name": "<string>",
"type": "<string>"
}
],
"retryable": true,
"examples": [
"<unknown>"
],
"gotchas": [
"<string>"
]
}
]
}Workflow Definition
Get Node Catalog
Returns every node type with its parameter JSON Schema, input and output rules, the fields it emits downstream, whether it supports retry, examples, and gotchas. No API key is needed. The response carries an ETag and is cacheable for five minutes; send If-None-Match to get 304 Not Modified.
GET
/
node-types
Get the node catalog
curl --request GET \
--url https://inference.studio.lyzr.ai/api/node-typesimport requests
url = "https://inference.studio.lyzr.ai/api/node-types"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://inference.studio.lyzr.ai/api/node-types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://inference.studio.lyzr.ai/api/node-types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://inference.studio.lyzr.ai/api/node-types"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://inference.studio.lyzr.ai/api/node-types")
.asString();require 'uri'
require 'net/http'
url = URI("https://inference.studio.lyzr.ai/api/node-types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"version": "v1-e7ba67a4e172",
"engine": "<string>",
"profile": "full",
"nodes": [
{
"type": "lyzr-nodes-base.lyzr.decide",
"label": "Decide",
"category": "AI",
"description": "<string>",
"version": 123,
"parameters": {},
"inputs": {},
"outputs": [
{}
],
"outputKind": "<string>",
"outputFields": [
{
"name": "<string>",
"type": "<string>"
}
],
"retryable": true,
"examples": [
"<unknown>"
],
"gotchas": [
"<string>"
]
}
]
}The node catalog is the machine-readable contract behind the node types reference. Use the
authoring profile to check workflows the way a save does, and the strict profile when you generate workflows with a model that uses structured output.Headers
An ETag from a previous response.
Query Parameters
Which parameter schema to return. full is the resolved parameter shape. authoring also accepts expression strings and null or empty strings for optional fields, and is what saved workflows are validated against. strict is the subset every LLM structured-output implementation accepts, for generating workflows with a model.
Available options:
full, authoring, strict