Get a flow
Read a flow’s nodes, the fields its input nodes take, and how the nodes connect.
GET
/
v1
/
flows
/
{flow_id}
cURL
curl https://api.qxlabs.com/v1/flows/c71a5f0e1d2b4a7e9a513f6f0d2b8e10 \
-H "Authorization: Bearer <YOUR_QX_API_KEY>"import requests
headers = {"Authorization": "Bearer <YOUR_QX_API_KEY>"}
flow = requests.get("https://api.qxlabs.com/v1/flows/c71a5f0e1d2b4a7e9a513f6f0d2b8e10", headers=headers).json()
for node in flow["nodes"]:
if node["fields"]:
print(node["node_id"], list(node["fields"]))
const headers = { Authorization: "Bearer <YOUR_QX_API_KEY>" };
const response = await fetch("https://api.qxlabs.com/v1/flows/c71a5f0e1d2b4a7e9a513f6f0d2b8e10", { headers });
const flow = await response.json();
for (const node of flow.nodes) {
if (node.fields) console.log(node.node_id, Object.keys(node.fields));
}
{
"flow_id": "c71a5f0e1d2b4a7e9a513f6f0d2b8e10",
"name": "Lead enrichment",
"description": "Researches a company and writes a summary",
"nodes": [
{
"node_id": "UserInputNodex7q2m9ka4",
"type": "UserInputNode",
"label": "Company details",
"batch": false,
"fields": {
"Company Name": {
"type": "text",
"required": true,
"description": null,
"choices": null,
"default_value": null
},
"Size": {
"type": "dropdown",
"required": false,
"description": null,
"choices": [
"1-50",
"51-500",
"500+"
],
"default_value": "1-50"
}
}
},
{
"node_id": "LLMNodek3x9m2pqa1",
"type": "LLMNode",
"label": "Write summary",
"batch": false,
"fields": null
}
],
"edges": [
{
"source": "UserInputNodex7q2m9ka4",
"target": "LLMNodek3x9m2pqa1"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Read rate limit exceeded for flows endpoints"
}Authorizations
Your QX API key. The X-API-Key header works too
Path Parameters
The flow's ID, as shown in its URL in the app
⌘I
cURL
curl https://api.qxlabs.com/v1/flows/c71a5f0e1d2b4a7e9a513f6f0d2b8e10 \
-H "Authorization: Bearer <YOUR_QX_API_KEY>"import requests
headers = {"Authorization": "Bearer <YOUR_QX_API_KEY>"}
flow = requests.get("https://api.qxlabs.com/v1/flows/c71a5f0e1d2b4a7e9a513f6f0d2b8e10", headers=headers).json()
for node in flow["nodes"]:
if node["fields"]:
print(node["node_id"], list(node["fields"]))
const headers = { Authorization: "Bearer <YOUR_QX_API_KEY>" };
const response = await fetch("https://api.qxlabs.com/v1/flows/c71a5f0e1d2b4a7e9a513f6f0d2b8e10", { headers });
const flow = await response.json();
for (const node of flow.nodes) {
if (node.fields) console.log(node.node_id, Object.keys(node.fields));
}
{
"flow_id": "c71a5f0e1d2b4a7e9a513f6f0d2b8e10",
"name": "Lead enrichment",
"description": "Researches a company and writes a summary",
"nodes": [
{
"node_id": "UserInputNodex7q2m9ka4",
"type": "UserInputNode",
"label": "Company details",
"batch": false,
"fields": {
"Company Name": {
"type": "text",
"required": true,
"description": null,
"choices": null,
"default_value": null
},
"Size": {
"type": "dropdown",
"required": false,
"description": null,
"choices": [
"1-50",
"51-500",
"500+"
],
"default_value": "1-50"
}
}
},
{
"node_id": "LLMNodek3x9m2pqa1",
"type": "LLMNode",
"label": "Write summary",
"batch": false,
"fields": null
}
],
"edges": [
{
"source": "UserInputNodex7q2m9ka4",
"target": "LLMNodek3x9m2pqa1"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Read rate limit exceeded for flows endpoints"
}