Skip to main content
POST
/
workflows
curl --request POST \
  --url http://localhost:5173/api/flowdrop/workflows \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "My First Workflow",
  "description": "A simple workflow for testing",
  "nodes": [],
  "edges": []
}
'
{
  "success": true,
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "My AI Workflow",
    "nodes": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "type": "calculator",
        "position": {
          "x": 100,
          "y": 200
        },
        "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",
            "description": "Perform mathematical operations on input data",
            "category": "processing",
            "version": "1.0.0",
            "inputs": [
              {
                "id": "json",
                "name": "JSON Response",
                "dataType": "mixed",
                "required": false,
                "description": "Parsed JSON response from the HTTP request",
                "defaultValue": "<unknown>",
                "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",
                "dataType": "mixed",
                "required": false,
                "description": "Parsed JSON response from the HTTP request",
                "defaultValue": "<unknown>",
                "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"
                          }
                        }
                      }
                    }
                  }
                }
              }
            ],
            "supportedTypes": [],
            "icon": "mdi:calculator",
            "color": "#3b82f6",
            "badge": "API",
            "portDataType": "trigger",
            "configSchema": {
              "type": "object",
              "properties": {},
              "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": {
            "executionCount": 5,
            "isExecuting": true,
            "lastExecuted": "2023-11-07T05:31:56Z",
            "lastExecutionDuration": 1500,
            "lastError": "<string>"
          },
          "extensions": {
            "ui": {
              "hideUnconnectedHandles": true,
              "style": {
                "opacity": 0.8
              }
            },
            "agentspec:component_type": "llm_node",
            "myapp:analytics": {
              "trackUsage": true,
              "customField": "value"
            }
          }
        },
        "deletable": true
      }
    ],
    "edges": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "source": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "target": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "sourceHandle": "<string>",
        "targetHandle": "<string>",
        "selectable": true,
        "deletable": true,
        "data": {
          "label": "<string>",
          "condition": "<string>",
          "metadata": {
            "sourcePortDataType": "<string>"
          },
          "isToolConnection": true,
          "targetNodeType": "<string>",
          "targetCategory": "<string>"
        }
      }
    ],
    "metadata": {
      "schemaVersion": "1.0.0",
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z",
      "author": "admin",
      "tags": [
        "ai",
        "production"
      ],
      "versionId": "<string>",
      "updateNumber": 123,
      "format": "flowdrop"
    },
    "description": "<string>",
    "config": {}
  },
  "message": "<string>",
  "error": "<string>"
}

Authorizations

Authorization
string
header
required

JWT token for authentication

Body

application/json
name
string
required

Workflow name

Required string length: 1 - 200
Example:

"My First Workflow"

description
string

Workflow description

Maximum string length: 1000
nodes
object[]
edges
object[]
tags
string[]
Maximum array length: 20
Maximum string length: 50

Response

Workflow created successfully

success
boolean

Whether the request was successful

data
object

Response data (type varies by endpoint)

message
string

Response message

error
string

Error message (if any)