{
  "openapi": "3.0.3",
  "info": {
    "title": "Umney Connect Automations API",
    "version": "1.6.0",
    "description": "Public Automations API — full agent OS including companion nodes, cron, skill SDK, channels/media, sequence run. automations:manage. Docs: https://umneyconnect.com/developers/automations"
  },
  "servers": [
    {
      "url": "https://umneyconnect.com/api",
      "description": "Production"
    },
    {
      "url": "https://www.staging.umneyconnect.com/api",
      "description": "Staging"
    }
  ],
  "tags": [
    {
      "name": "Workflows"
    },
    {
      "name": "Runs"
    },
    {
      "name": "Hooks"
    },
    {
      "name": "Sequences"
    },
    {
      "name": "Messages"
    },
    {
      "name": "Logs"
    },
    {
      "name": "Flows"
    },
    {
      "name": "Policies"
    },
    {
      "name": "Sessions"
    },
    {
      "name": "Agents"
    },
    {
      "name": "Memory"
    },
    {
      "name": "Approvals"
    },
    {
      "name": "ToolProfiles"
    },
    {
      "name": "Models"
    },
    {
      "name": "Channels"
    },
    {
      "name": "Skills"
    },
    {
      "name": "Ops"
    },
    {
      "name": "Nodes"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyBearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "umk_live_automations_…"
      },
      "ApiKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      },
      "AutomationWebhookToken": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Umney-Automation-Token"
      }
    },
    "parameters": {
      "WorkflowId": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "SequenceId": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "RunId": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyBearer": []
    },
    {
      "ApiKeyHeader": []
    }
  ],
  "paths": {
    "/v1/automations": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "List workflows (alias)",
        "operationId": "listAutomationsAlias",
        "responses": {
          "200": {
            "description": "Workflow list"
          }
        }
      },
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Create workflow (alias)",
        "operationId": "createAutomationAlias",
        "responses": {
          "200": {
            "description": "Workflow"
          }
        }
      }
    },
    "/v1/automations/workflows": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "List workflows",
        "operationId": "listAutomationWorkflows",
        "responses": {
          "200": {
            "description": "Workflow list"
          }
        }
      },
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Create workflow",
        "operationId": "createAutomationWorkflow",
        "responses": {
          "200": {
            "description": "Workflow"
          }
        }
      }
    },
    "/v1/automations/workflows/{id}": {
      "patch": {
        "tags": [
          "Workflows"
        ],
        "summary": "Update workflow",
        "operationId": "updateAutomationWorkflow",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "responses": {
          "200": {
            "description": "Workflow"
          }
        }
      },
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Delete workflow",
        "operationId": "deleteAutomationWorkflow",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted"
          }
        }
      }
    },
    "/v1/automations/workflows/{id}/run": {
      "post": {
        "tags": [
          "Runs"
        ],
        "summary": "Enqueue a workflow run (optional context from third-party systems)",
        "operationId": "runAutomationWorkflow",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "responses": {
          "200": {
            "description": "Run queued"
          }
        }
      }
    },
    "/v1/automations/runs": {
      "get": {
        "tags": [
          "Runs"
        ],
        "summary": "List automation runs",
        "operationId": "listAutomationRuns",
        "responses": {
          "200": {
            "description": "Run list"
          }
        }
      }
    },
    "/v1/automations/runs/{id}": {
      "get": {
        "tags": [
          "Runs"
        ],
        "summary": "Get automation run",
        "operationId": "getAutomationRun",
        "parameters": [
          {
            "$ref": "#/components/parameters/RunId"
          }
        ],
        "responses": {
          "200": {
            "description": "Run"
          }
        }
      }
    },
    "/v1/automations/hooks/inbound": {
      "post": {
        "tags": [
          "Hooks"
        ],
        "summary": "Third-party inbound trigger (API key or workflow webhook token)",
        "operationId": "inboundAutomationHook",
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          },
          {
            "AutomationWebhookToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Run queued"
          }
        }
      }
    },
    "/v1/automations/sequences": {
      "get": {
        "tags": [
          "Sequences"
        ],
        "summary": "List sequences",
        "operationId": "listAutomationSequences",
        "responses": {
          "200": {
            "description": "Sequence list"
          }
        }
      },
      "post": {
        "tags": [
          "Sequences"
        ],
        "summary": "Create sequence",
        "operationId": "createAutomationSequence",
        "responses": {
          "200": {
            "description": "Sequence"
          }
        }
      }
    },
    "/v1/automations/sequences/{id}": {
      "patch": {
        "tags": [
          "Sequences"
        ],
        "summary": "Update sequence",
        "operationId": "updateAutomationSequence",
        "parameters": [
          {
            "$ref": "#/components/parameters/SequenceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sequence"
          }
        }
      },
      "delete": {
        "tags": [
          "Sequences"
        ],
        "summary": "Delete sequence",
        "operationId": "deleteAutomationSequence",
        "parameters": [
          {
            "$ref": "#/components/parameters/SequenceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted"
          }
        }
      }
    },
    "/v1/automations/sequences/{id}/run": {
      "post": {
        "tags": [
          "Sequences"
        ],
        "summary": "Run sequence (materialize workflow + enqueue)",
        "operationId": "runAutomationSequence",
        "parameters": [
          {
            "$ref": "#/components/parameters/SequenceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Run queued"
          }
        }
      }
    },
    "/v1/automations/messages": {
      "get": {
        "tags": [
          "Messages"
        ],
        "summary": "List automation messages",
        "operationId": "listAutomationMessages",
        "responses": {
          "200": {
            "description": "Message list"
          }
        }
      }
    },
    "/v1/automations/logs": {
      "get": {
        "tags": [
          "Logs"
        ],
        "summary": "List automation logs",
        "operationId": "listAutomationLogs",
        "responses": {
          "200": {
            "description": "Log list"
          }
        }
      }
    },
    "/v1/automations/runs/{id}/cancel": {
      "post": {
        "tags": [
          "Runs"
        ],
        "summary": "Cancel queued/running run",
        "operationId": "cancelAutomationRun",
        "parameters": [
          {
            "$ref": "#/components/parameters/RunId"
          }
        ],
        "responses": {
          "200": {
            "description": "Cancelled"
          }
        }
      }
    },
    "/v1/automations/runs/{id}/retry": {
      "post": {
        "tags": [
          "Runs"
        ],
        "summary": "Retry failed/cancelled run",
        "operationId": "retryAutomationRun",
        "parameters": [
          {
            "$ref": "#/components/parameters/RunId"
          }
        ],
        "responses": {
          "200": {
            "description": "Retry queued"
          }
        }
      }
    },
    "/v1/automations/flows": {
      "get": {
        "tags": [
          "Flows"
        ],
        "summary": "List task flows",
        "operationId": "listAutomationFlows",
        "responses": {
          "200": {
            "description": "Flow list"
          }
        }
      }
    },
    "/v1/automations/flows/{id}": {
      "get": {
        "tags": [
          "Flows"
        ],
        "summary": "Get task flow with runs",
        "operationId": "getAutomationFlow",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Flow"
          }
        }
      }
    },
    "/v1/automations/policies": {
      "get": {
        "tags": [
          "Policies"
        ],
        "summary": "Get standing orders",
        "operationId": "getAutomationPolicy",
        "responses": {
          "200": {
            "description": "Policy"
          }
        }
      },
      "put": {
        "tags": [
          "Policies"
        ],
        "summary": "Upsert standing orders",
        "operationId": "putAutomationPolicy",
        "responses": {
          "200": {
            "description": "Policy"
          }
        }
      }
    },
    "/v1/automations/sessions": {
      "get": {
        "summary": "List sessions",
        "tags": [
          "Sessions"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create session",
        "tags": [
          "Sessions"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/sessions/{id}": {
      "get": {
        "summary": "Get session",
        "tags": [
          "Sessions"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/agents": {
      "get": {
        "summary": "List agents",
        "tags": [
          "Agents"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create agent",
        "tags": [
          "Agents"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/agents/{id}": {
      "patch": {
        "summary": "Update agent",
        "tags": [
          "Agents"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "summary": "Delete agent",
        "tags": [
          "Agents"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted"
          }
        }
      }
    },
    "/v1/automations/memory": {
      "get": {
        "summary": "Read memory",
        "tags": [
          "Memory"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "put": {
        "summary": "Write memory",
        "tags": [
          "Memory"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/approvals": {
      "get": {
        "summary": "List approvals",
        "tags": [
          "Approvals"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/approvals/{id}/decide": {
      "post": {
        "summary": "Decide approval",
        "tags": [
          "Approvals"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/tool-profiles": {
      "get": {
        "summary": "List tool profiles",
        "tags": [
          "ToolProfiles"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create tool profile",
        "tags": [
          "ToolProfiles"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/models": {
      "get": {
        "summary": "Get model config",
        "tags": [
          "Models"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "put": {
        "summary": "Put model config",
        "tags": [
          "Models"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/channels": {
      "get": {
        "summary": "List channels",
        "tags": [
          "Channels"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create/update channel",
        "tags": [
          "Channels"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/channels/{id}/inbound": {
      "post": {
        "summary": "Channel inbound webhook",
        "tags": [
          "Channels"
        ],
        "security": [
          {
            "AutomationWebhookToken": []
          },
          {
            "ApiKeyBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/skills": {
      "get": {
        "summary": "List marketplace packs",
        "tags": [
          "Skills"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/skills/install": {
      "post": {
        "summary": "Install skill pack",
        "tags": [
          "Skills"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/skills/{packId}/workflow": {
      "post": {
        "summary": "Create workflow from pack",
        "tags": [
          "Skills"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/slo": {
      "get": {
        "summary": "SLO metrics",
        "tags": [
          "Ops"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/onboarding": {
      "get": {
        "summary": "Onboarding blueprint",
        "tags": [
          "Ops"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/nodes": {
      "get": {
        "summary": "List companion nodes",
        "tags": [
          "Nodes"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create pairing session",
        "tags": [
          "Nodes"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/v1/automations/nodes/claim": {
      "post": {
        "summary": "Claim pairing code (device)",
        "tags": [
          "Nodes"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/automations/nodes/{id}": {
      "delete": {
        "summary": "Revoke node",
        "tags": [
          "Nodes"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "patch": {
        "summary": "Patch node allowSystem/allowBrowser",
        "tags": [
          "Nodes"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/automations/nodes/{id}/heartbeat": {
      "post": {
        "summary": "Node heartbeat",
        "tags": [
          "Nodes"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/automations/nodes/{id}/commands": {
      "get": {
        "summary": "Poll node commands",
        "tags": [
          "Nodes"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/automations/nodes/{id}/commands/{commandId}/result": {
      "post": {
        "summary": "Complete node command",
        "tags": [
          "Nodes"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/automations/skills/sdk": {
      "get": {
        "summary": "Skill SDK schema",
        "tags": [
          "Skills"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Validate/publish partner pack",
        "tags": [
          "Skills"
        ],
        "security": [
          {
            "ApiKeyBearer": []
          },
          {
            "ApiKeyHeader": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    }
  }
}
