Download OpenAPI specification:
FlowDrop is a visual workflow editor for AI applications and data processing pipelines. This API provides comprehensive endpoints for managing workflows, node types, pipeline execution, and port configuration.
API endpoints require Drupal authentication. Use Bearer token or session-based authentication.
All errors return a consistent format with success flag, error message, and optional details.
Check if the FlowDrop API is running and responsive. This endpoint is at the root level following industry conventions for Kubernetes liveness/readiness probes and load balancer health checks.
{- "status": "healthy",
- "timestamp": "2019-08-24T14:15:22Z",
- "version": "1.0.0",
- "service": "FlowDrop API",
- "uptime": 3600
}Retrieve public system configuration settings
{- "success": true,
- "data": {
- "version": "1.0.0",
- "features": {
- "property1": true,
- "property2": true
}, - "limits": {
- "maxWorkflowNodes": 0,
- "maxConcurrentExecutions": 0
}
}, - "message": "string",
- "error": "string"
}Retrieve all available node processors with optional filtering by category, search query, and pagination. Supports filtering by node category (models, data_processing, input_output, etc.) and search queries.
| category | string (NodeCategory) Example: category=processing Filter by node category |
| search | string <= 100 characters Search node types by name, description, or tags |
| limit | integer [ 1 .. 1000 ] Default: 100 Maximum number of results (1-1000) |
| offset | integer >= 0 Default: 0 Number of results to skip for pagination |
{- "success": true,
- "data": [
- {
- "id": "openai_chat_executor",
- "name": "OpenAI Chat",
- "description": "Chat completion using OpenAI's GPT models",
- "category": "ai",
- "version": "1.0.0",
- "icon": "mdi:chat",
- "color": "#10a37f",
- "type": "default",
- "supportedTypes": [
- "default",
- "simple"
], - "inputs": [
- {
- "id": "data",
- "name": "Input Data",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Input data for the node"
}
], - "outputs": [
- {
- "id": "response",
- "name": "Response",
- "type": "output",
- "dataType": "string",
- "description": "The OpenAI response"
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "model": {
- "type": "string",
- "title": "Model",
- "default": "gpt-4o-mini",
- "enum": [
- "gpt-4o-mini",
- "gpt-5",
- "gpt-4.1"
]
}, - "temperature": {
- "type": "number",
- "title": "Temperature",
- "default": 0.7,
- "minimum": 0,
- "maximum": 2
}, - "maxTokens": {
- "type": "integer",
- "title": "Max Tokens",
- "default": 1000,
- "minimum": 1,
- "maximum": 4096
}, - "apiKey": {
- "type": "string",
- "title": "API Key",
- "format": "hidden"
}
}
}, - "tags": [
- "openai",
- "gpt",
- "chat",
- "ai"
]
}
], - "message": "Found 1 node types"
}Retrieve detailed metadata for a specific node type by its unique identifier
| id required | string Example: calculator Node type unique identifier |
{- "success": true,
- "data": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": "string",
- "title": "string",
- "description": "string"
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": "string",
- "title": "string",
- "description": "string"
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "message": "string",
- "error": "string"
}Retrieve the complete port configuration system including available data types, compatibility rules, and default settings. This configuration determines how nodes can be connected in workflows based on port data types.
{- "success": true,
- "data": {
- "version": "1.0.0",
- "defaultDataType": "mixed",
- "dataTypes": [
- {
- "id": "string",
- "name": "String",
- "description": "Text data type",
- "color": "#3b82f6",
- "category": "primitive",
- "aliases": [
- "text",
- "str"
], - "enabled": true
}, - {
- "id": "number",
- "name": "Number",
- "description": "Numeric data type",
- "color": "#10b981",
- "category": "primitive",
- "enabled": true
}, - {
- "id": "mixed",
- "name": "Mixed",
- "description": "Any data type",
- "color": "#6b7280",
- "category": "special",
- "enabled": true
}
], - "compatibilityRules": [
- {
- "from": "string",
- "to": "mixed",
- "description": "Strings can connect to mixed ports"
}, - {
- "from": "number",
- "to": "mixed",
- "description": "Numbers can connect to mixed ports"
}, - {
- "from": "mixed",
- "to": "string",
- "description": "Mixed can connect to string with conversion"
}
]
}, - "message": "Port configuration loaded successfully"
}Retrieve all available category definitions including display labels, icons, colors, and ordering. Categories determine how nodes are organized in the sidebar.
Built-in categories are always available as defaults. This endpoint allows overriding built-in category metadata and defining custom categories.
{- "success": true,
- "data": [
- {
- "name": "triggers",
- "label": "Triggers",
- "icon": "mdi:lightning-bolt",
- "color": "var(--fd-node-cyan)",
- "weight": 0
}, - {
- "name": "inputs",
- "label": "Inputs",
- "icon": "mdi:arrow-down-circle",
- "color": "var(--fd-node-emerald)",
- "weight": 1
}, - {
- "name": "ml",
- "label": "Machine Learning",
- "icon": "mdi:brain",
- "color": "var(--fd-node-purple)",
- "description": "Custom ML processing nodes",
- "weight": 20
}
], - "message": "Categories loaded successfully"
}Retrieve all workflows with optional search filtering and pagination. Returns workflow metadata including nodes, edges, and execution history.
| search | string <= 100 characters Search workflows by name or description |
| tags | string Filter by tags (comma-separated) |
| limit | integer [ 1 .. 100 ] Default: 50 Maximum number of workflows to return |
| offset | integer >= 0 Default: 0 Number of workflows to skip |
| sort | string Default: "updated_at" Enum: "created_at" "updated_at" "name" Sort field |
| order | string Default: "desc" Enum: "asc" "desc" Sort direction |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": null,
- "title": null,
- "description": null,
- "default": null,
- "enum": [ ],
- "oneOf": [ ],
- "multiple": null,
- "minimum": null,
- "maximum": null,
- "step": null,
- "minLength": null,
- "maxLength": null,
- "pattern": null,
- "placeholder": null,
- "format": null,
- "variables": null,
- "x-display-order": null,
- "items": null,
- "minItems": null,
- "maxItems": null,
- "properties": { },
- "autocomplete": null
}, - "property2": {
- "type": null,
- "title": null,
- "description": null,
- "default": null,
- "enum": [ ],
- "oneOf": [ ],
- "multiple": null,
- "minimum": null,
- "maximum": null,
- "step": null,
- "minLength": null,
- "maxLength": null,
- "pattern": null,
- "placeholder": null,
- "format": null,
- "variables": null,
- "x-display-order": null,
- "items": null,
- "minItems": null,
- "maxItems": null,
- "properties": { },
- "autocomplete": null
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}
], - "message": "string",
- "error": "string"
}Create a new workflow with the provided name, description, nodes, and edges. The workflow will be assigned a unique UUID and metadata will be automatically generated.
| name required | string [ 1 .. 200 ] characters Workflow name |
| description | string <= 1000 characters Workflow description |
Array of objects (WorkflowNode) | |
Array of objects (WorkflowEdge) | |
| tags | Array of strings <= 20 items [ items <= 50 characters ] |
{- "name": "My First Workflow",
- "description": "A simple workflow for testing",
- "nodes": [ ],
- "edges": [ ]
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}, - "message": "string",
- "error": "string"
}Retrieve a specific workflow with all its nodes, edges, and metadata
| id required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 Workflow UUID |
{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}, - "message": "string",
- "error": "string"
}Update an existing workflow. All fields are optional - only provided fields will be updated. The updatedAt timestamp will be automatically set to the current time.
| id required | string <uuid> Workflow UUID |
| name | string [ 1 .. 200 ] characters Workflow name |
| description | string <= 1000 characters Workflow description |
Array of objects (WorkflowNode) | |
Array of objects (WorkflowEdge) | |
object |
{- "name": "string",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "tags": [
- "string"
], - "author": "string"
}
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}, - "message": "string",
- "error": "string"
}Permanently delete a workflow and all associated data including execution history
| id required | string <uuid> Workflow UUID |
{- "success": true,
- "message": "Workflow deleted successfully"
}Create a new pipeline and start execution in one call. This is a convenience endpoint that combines pipeline creation with immediate execution. Returns the pipeline ID and initial status for tracking.
| id required | string <uuid> Workflow UUID |
object Input values for specific nodes | |
object |
{- "inputs": { },
- "options": {
- "timeout": 0,
- "maxSteps": 0
}
}{- "success": true,
- "data": {
- "execution_id": "02ca5b65-a269-4c45-8d4a-0c74ff3ae670",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "estimated_completion": "2019-08-24T14:15:22Z"
}, - "message": "string",
- "error": "string"
}Retrieve execution history across all workflows. Supports filtering by workflow, status, and date range.
| workflow_id | string <uuid> Filter by workflow UUID |
| status | string Enum: "pending" "running" "completed" "failed" "cancelled" Filter by execution status |
| limit | integer [ 1 .. 100 ] Default: 50 Maximum number of results |
| offset | integer >= 0 Default: 0 Number of results to skip |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "workflow_id": "string",
- "status": "string",
- "created": "2019-08-24T14:15:22Z",
- "updated": "2019-08-24T14:15:22Z"
}
], - "message": "string",
- "error": "string"
}Retrieve the current status and details of a specific execution. This is an alias for the pipeline detail endpoint.
| id required | string <uuid> Execution/Pipeline UUID |
{- "status": "pending",
- "jobs": [
- {
- "id": "string",
- "node_id": "string",
- "status": "idle",
- "execution_count": 0,
- "started": "2019-08-24T14:15:22Z",
- "completed": "2019-08-24T14:15:22Z",
- "execution_time": 0,
- "error_message": "string"
}
], - "node_statuses": {
- "property1": {
- "status": "idle",
- "last_executed": "2019-08-24T14:15:22Z",
- "execution_time": 0,
- "error": "string"
}, - "property2": {
- "status": "idle",
- "last_executed": "2019-08-24T14:15:22Z",
- "execution_time": 0,
- "error": "string"
}
}, - "job_status_summary": {
- "total": 0,
- "pending": 0,
- "running": 0,
- "completed": 0,
- "failed": 0,
- "cancelled": 0
}
}Cancel a running execution. Only executions in 'pending' or 'running' status can be cancelled.
| id required | string <uuid> Execution/Pipeline UUID |
{- "success": true,
- "message": "Execution cancelled successfully"
}Retrieve detailed execution logs for a specific execution
| id required | string <uuid> Execution/Pipeline UUID |
| level | string Enum: "debug" "info" "warning" "error" Filter by log level |
| node_id | string Filter by node ID |
{- "success": true,
- "data": [
- {
- "timestamp": "2019-08-24T14:15:22Z",
- "level": "debug",
- "message": "string",
- "node_id": "string",
- "context": { }
}
], - "message": "string"
}Get all pipeline executions for a specific workflow
| workflow_id required | string Workflow ID or machine name |
| status | string Enum: "pending" "running" "completed" "failed" "cancelled" Filter by pipeline status |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "workflow_id": "string",
- "status": "string",
- "created": "2019-08-24T14:15:22Z",
- "updated": "2019-08-24T14:15:22Z"
}
], - "message": "string",
- "error": "string"
}Retrieve detailed information about a pipeline execution including:
| id required | string <uuid> Pipeline UUID |
{- "status": "running",
- "jobs": [
- {
- "id": "job-1",
- "node_id": "node-1",
- "status": "completed",
- "execution_count": 5,
- "started": "2024-01-20T10:00:00Z",
- "completed": "2024-01-20T10:00:05Z",
- "execution_time": 5000
}, - {
- "id": "job-2",
- "node_id": "node-2",
- "status": "running",
- "execution_count": 3,
- "started": "2024-01-20T10:00:05Z"
}
], - "node_statuses": {
- "node-1": {
- "status": "completed",
- "last_executed": "2024-01-20T10:00:05Z",
- "execution_time": 5000
}, - "node-2": {
- "status": "running",
- "last_executed": "2024-01-20T10:00:05Z"
}
}, - "job_status_summary": {
- "total": 5,
- "pending": 0,
- "running": 1,
- "completed": 3,
- "failed": 1,
- "cancelled": 0
}
}Retrieve only the current status of a pipeline (lightweight endpoint). Use this for polling when you only need the status, not full details.
| id required | string <uuid> Pipeline UUID |
{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "progress": 100,
- "updated": "2019-08-24T14:15:22Z"
}, - "message": "string",
- "error": "string"
}Start execution of a pipeline
| id required | string <uuid> Pipeline UUID |
object Input values for specific nodes | |
object |
{- "inputs": { },
- "options": {
- "timeout": 0,
- "maxSteps": 0
}
}{- "success": true,
- "data": {
- "pipeline_id": "ec036e81-7903-4e4d-bbfa-ac8516341cf0",
- "status": "pending",
- "message": "string"
}, - "message": "string",
- "error": "string"
}Retrieve detailed execution logs for a pipeline
| id required | string <uuid> Pipeline UUID |
| level | string Enum: "debug" "info" "warning" "error" Filter by log level |
{- "success": true,
- "data": [
- {
- "timestamp": "2019-08-24T14:15:22Z",
- "level": "debug",
- "message": "string",
- "node_id": "string",
- "context": { }
}
]
}Retrieve all playground sessions associated with a workflow. Sessions are used to test and interact with workflows in an isolated environment.
| id required | string <uuid> Workflow UUID |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of sessions to return |
| offset | integer >= 0 Default: 0 Number of sessions to skip |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "workflowId": "43c4fa9b-0cbc-4b57-a121-9d7d46a3eaa4",
- "name": "Test Session 1",
- "status": "idle",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "metadata": { }
}
], - "message": "string",
- "error": "string"
}Create a new playground session for testing a workflow. The session can be named for easy identification.
| id required | string <uuid> Workflow UUID |
| name | string <= 100 characters Optional session name |
object Optional metadata for the session |
{- "name": "Test Session 1",
- "metadata": { }
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "workflowId": "43c4fa9b-0cbc-4b57-a121-9d7d46a3eaa4",
- "name": "Test Session 1",
- "status": "idle",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "metadata": { }
}, - "message": "string",
- "error": "string"
}Retrieve detailed information about a specific playground session, including its current status and configuration.
| sessionId required | string <uuid> Playground session UUID |
{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "workflowId": "43c4fa9b-0cbc-4b57-a121-9d7d46a3eaa4",
- "name": "Test Session 1",
- "status": "idle",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "metadata": { }
}, - "message": "string",
- "error": "string"
}Permanently delete a playground session and all its messages. This action cannot be undone.
| sessionId required | string <uuid> Playground session UUID |
{- "success": true,
- "message": "Session deleted successfully"
}Retrieve messages from a playground session with optional filtering.
Supports polling via the since parameter to fetch only new messages.
| sessionId required | string <uuid> Playground session UUID |
| since | string <date-time> ISO 8601 timestamp to fetch messages after this time. Used for polling to get only new messages. |
| limit | integer [ 1 .. 500 ] Default: 100 Maximum number of messages to return |
{- "success": true,
- "data": [
- {
- "id": "be4d854d-d6b3-4242-b2ea-0008b2e059bd",
- "sessionId": "fe5304ea-f069-433f-b0bf-945975c0b806",
- "role": "user",
- "content": "Hello. How are you?",
- "timestamp": "2026-01-19T10:03:32+01:00",
- "status": "completed",
- "sequenceNumber": 1,
- "parentMessageId": null,
- "nodeId": null,
- "metadata": { }
}
], - "message": "string",
- "error": "string",
- "hasMore": true,
- "sessionStatus": "idle"
}Send a user message or trigger workflow execution with inputs. This starts or continues the conversation in the playground.
The message is created with status "pending" and processing begins immediately (synchronously) or is queued (asynchronously) based on the session's execution mode. The response returns immediately with the message entity, allowing clients to poll the message status endpoint to track processing progress.
Messages are processed in sequence order within a session to ensure proper conversation flow. If a previous message is not yet complete, the request will be rejected with a conflict error.
| sessionId required | string <uuid> Playground session UUID |
| content required | string <= 10000 characters Message content (typically user input) |
object Additional input values for workflow nodes |
{- "content": "Hello, can you help me analyze this data?"
}{- "success": true,
- "data": {
- "id": "be4d854d-d6b3-4242-b2ea-0008b2e059bd",
- "sessionId": "fe5304ea-f069-433f-b0bf-945975c0b806",
- "role": "user",
- "content": "Hello. How are you?",
- "timestamp": "2026-01-19T10:03:32+01:00",
- "status": "completed",
- "sequenceNumber": 1,
- "parentMessageId": null,
- "nodeId": null,
- "metadata": { }
}, - "message": "string",
- "error": "string"
}Retrieve a specific message from a playground session by its ID. Returns full message details including status and metadata.
| sessionId required | string <uuid> Playground session UUID |
| messageId required | string <uuid> Message UUID |
{- "success": true,
- "data": {
- "id": "be4d854d-d6b3-4242-b2ea-0008b2e059bd",
- "sessionId": "fe5304ea-f069-433f-b0bf-945975c0b806",
- "role": "user",
- "content": "Hello. How are you?",
- "timestamp": "2026-01-19T10:03:32+01:00",
- "status": "completed",
- "sequenceNumber": 1,
- "parentMessageId": null,
- "nodeId": null,
- "metadata": { }
}, - "message": "string",
- "error": "string"
}Retrieve only the status of a message (lightweight endpoint for polling). Useful for checking if message processing is complete without fetching full message data.
| sessionId required | string <uuid> Playground session UUID |
| messageId required | string <uuid> Message UUID |
{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "sequenceNumber": 0,
- "timestamp": "2019-08-24T14:15:22Z"
}, - "message": "string",
- "error": "string"
}Stop the currently running execution in the playground session. This cancels any pending workflow operations.
| sessionId required | string <uuid> Playground session UUID |
{- "success": true,
- "message": "Execution stopped"
}Human-in-the-Loop (HITL) interrupt endpoints for workflow interactions. Interrupts allow workflows to pause execution and request user input.
Retrieve details about a specific interrupt request. Interrupts are created when a workflow execution requires human input.
| interruptId required | string <uuid> Interrupt UUID |
{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "messageId": "8540d774-4863-4d2b-b788-4ecb19412e85",
- "type": "confirmation",
- "status": "pending",
- "nodeId": "string",
- "executionId": "string",
- "config": {
- "message": "Do you approve this action?",
- "confirm_label": "Approve",
- "cancel_label": "Reject"
}, - "allowCancel": true,
- "response": null,
- "response_time": "2019-08-24T14:15:22Z",
- "user_id": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "message": "string",
- "error": "string"
}Submit user response to resolve a pending interrupt. The value type depends on the interrupt type:
| interruptId required | string <uuid> Interrupt UUID |
| value required | any User's response. Type depends on interrupt type:
|
{- "value": true
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "messageId": "8540d774-4863-4d2b-b788-4ecb19412e85",
- "type": "confirmation",
- "status": "pending",
- "nodeId": "string",
- "executionId": "string",
- "config": {
- "message": "Do you approve this action?",
- "confirm_label": "Approve",
- "cancel_label": "Reject"
}, - "allowCancel": true,
- "response": null,
- "response_time": "2019-08-24T14:15:22Z",
- "user_id": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "message": "string",
- "error": "string"
}Cancel a pending interrupt without providing a response. This may not be allowed for all interrupts - check the allowCancel property in the interrupt data before attempting to cancel.
| interruptId required | string <uuid> Interrupt UUID |
{- "success": true,
- "message": "Interrupt cancelled"
}List all interrupts associated with a playground session. Useful for displaying pending interrupts or reviewing interrupt history.
| sessionId required | string <uuid> Playground session UUID |
| status | string Enum: "pending" "resolved" "cancelled" Filter by interrupt status |
| limit | integer [ 1 .. 100 ] Default: 50 Maximum number of interrupts to return |
| offset | integer >= 0 Default: 0 Number of interrupts to skip |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "messageId": "8540d774-4863-4d2b-b788-4ecb19412e85",
- "type": "confirmation",
- "status": "pending",
- "nodeId": "string",
- "executionId": "string",
- "config": {
- "message": "Do you approve this action?",
- "confirm_label": "Approve",
- "cancel_label": "Reject"
}, - "allowCancel": true,
- "response": null,
- "response_time": "2019-08-24T14:15:22Z",
- "user_id": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "message": "string",
- "error": "string"
}List all interrupts associated with a pipeline execution. Useful for monitoring workflow progress and pending user actions.
| pipelineId required | string <uuid> Pipeline UUID |
| status | string Enum: "pending" "resolved" "cancelled" Filter by interrupt status |
| limit | integer [ 1 .. 100 ] Default: 50 Maximum number of interrupts to return |
| offset | integer >= 0 Default: 0 Number of interrupts to skip |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "messageId": "8540d774-4863-4d2b-b788-4ecb19412e85",
- "type": "confirmation",
- "status": "pending",
- "nodeId": "string",
- "executionId": "string",
- "config": {
- "message": "Do you approve this action?",
- "confirm_label": "Approve",
- "cancel_label": "Reject"
}, - "allowCancel": true,
- "response": null,
- "response_time": "2019-08-24T14:15:22Z",
- "user_id": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "message": "string",
- "error": "string"
}Validate a workflow structure without saving it. Checks for:
| id required | string <uuid> Workflow UUID |
| name required | string <= 200 characters Workflow name |
| description | string <= 1000 characters Workflow description |
required | Array of objects (WorkflowNode) Workflow nodes |
required | Array of objects (WorkflowEdge) Workflow edges |
required | object (WorkflowMetadata) |
object Custom workflow-level configuration values. Populated when a workflowSettingsSchema is provided to the editor. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}{- "success": true,
- "data": {
- "valid": true,
- "errors": [
- "string"
], - "warnings": [
- "string"
], - "suggestions": [
- "string"
]
}, - "message": "string",
- "error": "string"
}Check if a FlowDrop workflow can be exported as Agent Spec. Returns validation errors and warnings without performing the export.
Checks include:
| id required | string <uuid> Workflow UUID |
{- "valid": true,
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}Export a workflow as JSON or YAML format
| id required | string <uuid> Workflow UUID |
| format | string Default: "json" Enum: "json" "yaml" Export format |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}Import a workflow from JSON format. A new UUID will be assigned to the imported workflow.
| id required | string <uuid> Workflow UUID |
| name required | string <= 200 characters Workflow name |
| description | string <= 1000 characters Workflow description |
required | Array of objects (WorkflowNode) Workflow nodes |
required | Array of objects (WorkflowEdge) Workflow edges |
required | object (WorkflowMetadata) |
object Custom workflow-level configuration values. Populated when a workflowSettingsSchema is provided to the editor. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- {
- "const": null,
- "title": null,
- "description": null
}
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": { },
- "property2": { }
}, - "autocomplete": {
- "url": "/api/users/search",
- "queryParam": "q",
- "minChars": 0,
- "debounceMs": 300,
- "fetchOnFocus": false,
- "labelField": "label",
- "valueField": "value",
- "allowFreeText": false,
- "multiple": false
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}, - "message": "string",
- "error": "string"
}Convert a FlowDrop workflow to Agent Spec format and return it.
The conversion:
| id required | string <uuid> Workflow UUID |
| format | string Default: "flow" Enum: "flow" "document" Output format (document wraps flow with agent/tools/LLM config) |
{- "component_type": "flow",
- "name": "document_processing",
- "description": "string",
- "start_node": "start",
- "nodes": [
- {
- "component_type": "start_node",
- "name": "process_input",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "metadata": { }
}
], - "control_flow_connections": [
- {
- "name": "start_to_process",
- "from_node": "start",
- "to_node": "process_input",
- "from_branch": "high_priority"
}
], - "data_flow_connections": [
- {
- "name": "query_to_llm",
- "source_node": "process_input",
- "source_output": "processed_text",
- "destination_node": "llm_generate",
- "destination_input": "prompt"
}
], - "metadata": { }
}Convert an Agent Spec flow or document to a FlowDrop workflow.
The conversion:
| component_type required | string Value: "flow" |
| name required | string Flow name |
| description | string Human-readable description |
| start_node required | string Reference to the StartNode name |
required | Array of any (AgentSpecNode) All nodes in the flow |
required | Array of objects (AgentSpecControlFlowEdge) Execution order edges |
Array of objects or null (AgentSpecDataFlowEdge) Data routing edges. When null, data flows by matching input/output property names across connected nodes. | |
object Extension metadata |
{- "component_type": "flow",
- "name": "document_processing",
- "description": "string",
- "start_node": "start",
- "nodes": [
- {
- "component_type": "start_node",
- "name": "process_input",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "metadata": { }
}
], - "control_flow_connections": [
- {
- "name": "start_to_process",
- "from_node": "start",
- "to_node": "process_input",
- "from_branch": "high_priority"
}
], - "data_flow_connections": [
- {
- "name": "query_to_llm",
- "source_node": "process_input",
- "source_output": "processed_text",
- "destination_node": "llm_generate",
- "destination_input": "prompt"
}
], - "metadata": { }
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}, - "message": "string",
- "error": "string"
}LLM Chat Interface for natural language workflow building. Translates user intent into DSL commands via a backend LLM integration.
Send a natural language message to the LLM chat backend for a specific workflow. The request includes the current workflow state and optional conversation history so the LLM can generate contextually relevant responses.
The LLM response may contain plain text explanations and/or DSL commands in ```flowdrop fenced code blocks. The frontend extracts and previews these commands before execution.
| id required | string Workflow ID |
| message required | string The user's natural language message |
required | object Serialized current workflow state including nodes and edges. This gives the LLM context about the current workflow being edited. |
Array of objects (ChatHistoryMessage) Optional conversation history for multi-turn context |
{- "message": "Add a processing node called \"transform\"",
- "workflowState": {
- "nodes": [ ],
- "edges": [ ]
}
}{- "success": true,
- "data": {
- "content": "I'll add a processing node and connect it to your start node.\n\n```flowdrop\nadd transform processing\nconnect start:output transform:input\n```\n",
- "conversationId": "conv-abc123"
}
}Retrieve the conversation history for a workflow's chat session. Returns an array of messages with role (user/assistant) and content.
| id required | string Workflow ID |
{- "success": true,
- "data": [
- {
- "role": "user",
- "content": "Add a new processing node called \"transform\""
}
]
}Clear the conversation history for a workflow's chat session. This resets the chat context, starting a fresh conversation.
| id required | string Workflow ID |
{- "success": false,
- "error": "Resource not found",
- "code": "NOT_FOUND"
}Oracle Open Agent Spec integration endpoints. Provides bidirectional conversion between FlowDrop workflows and Agent Spec format, plus runtime execution on compatible runtimes (WayFlow, PyAgentSpec). @see https://github.com/oracle/agent-spec
Submit an Agent Spec flow for execution on the configured runtime (WayFlow, PyAgentSpec, or other compatible runtimes).
The flow is posted as Agent Spec JSON. The runtime returns an execution ID for tracking progress via polling or WebSocket.
required | object (AgentSpecFlow) Agent Spec Flow — a directed, potentially cyclic graph of nodes. Flows function as "subroutines" encapsulating repeatable processes. They separate control-flow (execution order) from data-flow (data routing). |
object Initial input values for the flow |
{- "flow": {
- "component_type": "flow",
- "name": "document_processing",
- "description": "string",
- "start_node": "start",
- "nodes": [
- {
- "component_type": "start_node",
- "name": "process_input",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "metadata": { }
}
], - "control_flow_connections": [
- {
- "name": "start_to_process",
- "from_node": "start",
- "to_node": "process_input",
- "from_branch": "high_priority"
}
], - "data_flow_connections": [
- {
- "name": "query_to_llm",
- "source_node": "process_input",
- "source_output": "processed_text",
- "destination_node": "llm_generate",
- "destination_input": "prompt"
}
], - "metadata": { }
}, - "inputs": {
- "user_query": "What is the weather today?"
}
}{- "execution_id": "exec-abc-123",
- "id": "string",
- "status": "running"
}Retrieve the current status and per-node execution info for a running or completed Agent Spec execution.
| id required | string Execution ID from the runtime |
{- "execution_id": "string",
- "status": "running",
- "execution_status": "string",
- "node_statuses": {
- "property1": {
- "status": "idle",
- "state": "string",
- "execution_count": 0,
- "started_at": "2019-08-24T14:15:22Z",
- "duration_ms": 0,
- "error": "string"
}, - "property2": {
- "status": "idle",
- "state": "string",
- "execution_count": 0,
- "started_at": "2019-08-24T14:15:22Z",
- "duration_ms": 0,
- "error": "string"
}
}, - "nodes": {
- "property1": {
- "status": "idle",
- "state": "string",
- "execution_count": 0,
- "started_at": "2019-08-24T14:15:22Z",
- "duration_ms": 0,
- "error": "string"
}, - "property2": {
- "status": "idle",
- "state": "string",
- "execution_count": 0,
- "started_at": "2019-08-24T14:15:22Z",
- "duration_ms": 0,
- "error": "string"
}
}, - "error": "string",
- "message": "string"
}Cancel a running Agent Spec execution. Only executions in 'running' status can be cancelled.
| id required | string Execution ID from the runtime |
{- "success": true,
- "message": "Execution cancelled successfully"
}Retrieve the final results of a completed Agent Spec execution. Returns null/404 if the execution is still running or was cancelled.
| id required | string Execution ID from the runtime |
{- "response": "The weather today is sunny with a high of 72°F.",
- "confidence": 0.95
}WebSocket endpoint for real-time execution updates. Streams per-node status changes and execution events as they occur.
Protocol: WebSocket (upgrade from HTTP)
Messages sent by server:
{"type": "node_status", "node": "<name>", "status": {...}}{"type": "execution_complete", "results": {...}}{"type": "execution_error", "error": "<message>"}| id required | string Execution ID from the runtime |
{- "success": false,
- "error": "Resource not found",
- "code": "NOT_FOUND"
}Validate an Agent Spec flow specification against the runtime without executing it. Checks for structural correctness, valid node references, and property compatibility.
| component_type required | string Value: "flow" |
| name required | string Flow name |
| description | string Human-readable description |
| start_node required | string Reference to the StartNode name |
required | Array of any (AgentSpecNode) All nodes in the flow |
required | Array of objects (AgentSpecControlFlowEdge) Execution order edges |
Array of objects or null (AgentSpecDataFlowEdge) Data routing edges. When null, data flows by matching input/output property names across connected nodes. | |
object Extension metadata |
{- "component_type": "flow",
- "name": "document_processing",
- "description": "string",
- "start_node": "start",
- "nodes": [
- {
- "component_type": "start_node",
- "name": "process_input",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "metadata": { }
}
], - "control_flow_connections": [
- {
- "name": "start_to_process",
- "from_node": "start",
- "to_node": "process_input",
- "from_branch": "high_priority"
}
], - "data_flow_connections": [
- {
- "name": "query_to_llm",
- "source_node": "process_input",
- "source_output": "processed_text",
- "destination_node": "llm_generate",
- "destination_input": "prompt"
}
], - "metadata": { }
}{- "valid": true,
- "errors": [
- "string"
]
}Retrieve a list of agents registered on the Agent Spec runtime.
These agents can be referenced by agent_node components.
[- {
- "name": "string",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
]
}
]Retrieve a list of tools registered on the Agent Spec runtime.
These tools can be referenced by tool_node components.
[- {
- "name": "string",
- "description": "string",
- "component_type": "server_tool",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
]
}
]Convert a FlowDrop workflow to Agent Spec format and return it.
The conversion:
| id required | string <uuid> Workflow UUID |
| format | string Default: "flow" Enum: "flow" "document" Output format (document wraps flow with agent/tools/LLM config) |
{- "component_type": "flow",
- "name": "document_processing",
- "description": "string",
- "start_node": "start",
- "nodes": [
- {
- "component_type": "start_node",
- "name": "process_input",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "metadata": { }
}
], - "control_flow_connections": [
- {
- "name": "start_to_process",
- "from_node": "start",
- "to_node": "process_input",
- "from_branch": "high_priority"
}
], - "data_flow_connections": [
- {
- "name": "query_to_llm",
- "source_node": "process_input",
- "source_output": "processed_text",
- "destination_node": "llm_generate",
- "destination_input": "prompt"
}
], - "metadata": { }
}Convert an Agent Spec flow or document to a FlowDrop workflow.
The conversion:
| component_type required | string Value: "flow" |
| name required | string Flow name |
| description | string Human-readable description |
| start_node required | string Reference to the StartNode name |
required | Array of any (AgentSpecNode) All nodes in the flow |
required | Array of objects (AgentSpecControlFlowEdge) Execution order edges |
Array of objects or null (AgentSpecDataFlowEdge) Data routing edges. When null, data flows by matching input/output property names across connected nodes. | |
object Extension metadata |
{- "component_type": "flow",
- "name": "document_processing",
- "description": "string",
- "start_node": "start",
- "nodes": [
- {
- "component_type": "start_node",
- "name": "process_input",
- "description": "string",
- "inputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "outputs": [
- {
- "title": "user_query",
- "type": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "items": { },
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
]
}
], - "metadata": { }
}
], - "control_flow_connections": [
- {
- "name": "start_to_process",
- "from_node": "start",
- "to_node": "process_input",
- "from_branch": "high_priority"
}
], - "data_flow_connections": [
- {
- "name": "query_to_llm",
- "source_node": "process_input",
- "source_output": "processed_text",
- "destination_node": "llm_generate",
- "destination_input": "prompt"
}
], - "metadata": { }
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "My AI Workflow",
- "description": "string",
- "nodes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "calculator",
- "position": {
- "x": 100,
- "y": 200
}, - "deletable": true,
- "data": {
- "label": "Math Calculator",
- "config": {
- "instanceTitle": "Email Summarizer",
- "instanceDescription": "Summarizes incoming emails into 3 bullet points",
- "instanceBadge": "LLM",
- "nodeType": "simple",
- "model": "gpt-4o-mini",
- "temperature": 0.7,
- "maxTokens": 1000,
- "apiKey": "sk-...",
- "dynamicInputs": [
- {
- "name": "extra_data",
- "label": "Extra Data",
- "dataType": "json",
- "required": false
}
], - "dynamicOutputs": [
- {
- "name": "result",
- "label": "Result",
- "dataType": "string"
}
], - "branches": [
- {
- "name": "success",
- "label": "Success",
- "condition": "status === 200"
}, - {
- "name": "error",
- "label": "Error",
- "isDefault": true
}
]
}, - "metadata": {
- "id": "calculator",
- "name": "Calculator",
- "type": "note",
- "supportedTypes": [
- "note"
], - "description": "Perform mathematical operations on input data",
- "category": "processing",
- "version": "1.0.0",
- "icon": "mdi:calculator",
- "color": "#3b82f6",
- "badge": "API",
- "portDataType": "trigger",
- "inputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "outputs": [
- {
- "id": "json",
- "name": "JSON Response",
- "type": "input",
- "dataType": "mixed",
- "required": false,
- "description": "Parsed JSON response from the HTTP request",
- "defaultValue": null,
- "schema": {
- "type": "object",
- "properties": {
- "user": {
- "type": "object",
- "title": "User",
- "description": "User information",
- "properties": {
- "id": {
- "type": "integer",
- "description": "User ID"
}, - "name": {
- "type": "string",
- "description": "User full name"
}, - "email": {
- "type": "string",
- "description": "User email address"
}, - "address": {
- "type": "object",
- "title": "Address",
- "properties": {
- "street": {
- "type": "string"
}, - "city": {
- "type": "string"
}, - "country": {
- "type": "string"
}
}
}
}
}, - "orders": {
- "type": "array",
- "title": "Orders",
- "description": "List of user orders",
- "items": {
- "type": "object",
- "properties": {
- "order_id": {
- "type": "string"
}, - "product_name": {
- "type": "string"
}, - "quantity": {
- "type": "integer"
}, - "price": {
- "type": "number"
}
}
}
}
}
}
}
], - "configSchema": {
- "type": "object",
- "properties": {
- "property1": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}, - "property2": {
- "type": "string",
- "title": "string",
- "description": "string",
- "default": null,
- "enum": [
- null
], - "oneOf": [
- null
], - "multiple": true,
- "minimum": 0,
- "maximum": 0,
- "step": 0,
- "minLength": 0,
- "maxLength": 0,
- "pattern": "string",
- "placeholder": "string",
- "format": "multiline",
- "variables": {
- "ports": [
- "data"
], - "showHints": true,
- "includePortName": false
}, - "x-display-order": -2,
- "items": { },
- "minItems": 0,
- "maxItems": 0,
- "properties": {
- "property1": null,
- "property2": null
}, - "autocomplete": {
- "url": null,
- "queryParam": null,
- "minChars": null,
- "debounceMs": null,
- "fetchOnFocus": null,
- "labelField": null,
- "valueField": null,
- "allowFreeText": null,
- "multiple": null
}
}
}, - "required": [
- "string"
], - "additionalProperties": false
}, - "tags": [
- "math",
- "calculation",
- "processing"
], - "formats": [
- "agentspec"
], - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}, - "isProcessing": true,
- "error": "string",
- "nodeId": "string",
- "executionInfo": {
- "status": "idle",
- "executionCount": 5,
- "lastExecuted": "2019-08-24T14:15:22Z",
- "lastExecutionDuration": 1500,
- "lastError": "string",
- "isExecuting": true
}, - "extensions": {
- "ui": {
- "hideUnconnectedHandles": true,
- "style": {
- "opacity": 0.8
}
}, - "agentspec:component_type": "llm_node",
- "myapp:analytics": {
- "trackUsage": true,
- "customField": "value"
}
}
}
}
], - "edges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "07b8e003-7027-443f-88b0-24a5eb1cc68b",
- "target": "65a17d54-9c67-4477-8b80-d3f97e165aa5",
- "sourceHandle": "string",
- "targetHandle": "string",
- "type": "default",
- "selectable": true,
- "deletable": true,
- "data": {
- "label": "string",
- "condition": "string",
- "metadata": {
- "edgeType": "trigger",
- "sourcePortDataType": "string"
}, - "isToolConnection": true,
- "targetNodeType": "string",
- "targetCategory": "string"
}
}
], - "metadata": {
- "version": "1.0.0",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": "admin",
- "tags": [
- "ai",
- "production"
], - "versionId": "string",
- "updateNumber": 0,
- "format": "flowdrop"
}, - "config": { }
}, - "message": "string",
- "error": "string"
}Check if a FlowDrop workflow can be exported as Agent Spec. Returns validation errors and warnings without performing the export.
Checks include:
| id required | string <uuid> Workflow UUID |
{- "valid": true,
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}