naftiko: 1.0.0-alpha2 info: label: LittleHorse REST API description: The LittleHorse REST API provides HTTP endpoints for managing workflow specifications (WfSpec), workflow runs (WfRun), task definitions (TaskDef), external event definitions, user tasks, and other resources in the LittleHorse workflow engine. tags: - Littlehorse - API created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: littlehorse baseUri: http://localhost:2023 description: LittleHorse REST API HTTP API. resources: - name: wfspec path: /wfSpec operations: - name: listwfspecs method: GET description: List workflow specifications outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putwfspec method: POST description: Create or update a workflow specification outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfspec-name path: /wfSpec/{name} operations: - name: getwfspec method: GET description: Get a workflow specification inputParameters: - name: name in: path type: string required: true - name: majorVersion in: query type: integer - name: revision in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletewfspec method: DELETE description: Delete a workflow specification inputParameters: - name: name in: path type: string required: true - name: majorVersion in: query type: integer required: true - name: revision in: query type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun path: /wfRun operations: - name: runwf method: POST description: Run a workflow outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid path: /wfRun/{wfRunId} operations: - name: getwfrun method: GET description: Get a workflow run inputParameters: - name: wfRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletewfrun method: DELETE description: Delete a workflow run inputParameters: - name: wfRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid-stop path: /wfRun/{wfRunId}/stop operations: - name: stopwfrun method: POST description: Stop a workflow run inputParameters: - name: wfRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid-resume path: /wfRun/{wfRunId}/resume operations: - name: resumewfrun method: POST description: Resume a workflow run inputParameters: - name: wfRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-search path: /wfRun/search operations: - name: searchwfruns method: GET description: Search workflow runs inputParameters: - name: wfSpecName in: query type: string - name: status in: query type: string - name: limit in: query type: integer - name: bookmark in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: taskdef path: /taskDef operations: - name: listtaskdefs method: GET description: List task definitions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: puttaskdef method: POST description: Create or update a task definition outputRawFormat: json outputParameters: - name: result type: object value: $. - name: taskdef-name path: /taskDef/{name} operations: - name: gettaskdef method: GET description: Get a task definition inputParameters: - name: name in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletetaskdef method: DELETE description: Delete a task definition inputParameters: - name: name in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: externaleventdef path: /externalEventDef operations: - name: listexternaleventdefs method: GET description: List external event definitions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putexternaleventdef method: POST description: Create an external event definition outputRawFormat: json outputParameters: - name: result type: object value: $. - name: externaleventdef-name path: /externalEventDef/{name} operations: - name: getexternaleventdef method: GET description: Get an external event definition inputParameters: - name: name in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid-externalevent-externaleventdefname path: /wfRun/{wfRunId}/externalEvent/{externalEventDefName} operations: - name: postexternalevent method: POST description: Post an external event inputParameters: - name: wfRunId in: path type: string required: true - name: externalEventDefName in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid-usertaskrun-usertaskrunid path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId} operations: - name: getusertaskrun method: GET description: Get a user task run inputParameters: - name: wfRunId in: path type: string required: true - name: userTaskRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid-usertaskrun-usertaskrunid-assign path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/assign operations: - name: assignusertask method: POST description: Assign a user task inputParameters: - name: wfRunId in: path type: string required: true - name: userTaskRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: wfrun-wfrunid-usertaskrun-usertaskrunid-complete path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/complete operations: - name: completeusertask method: POST description: Complete a user task inputParameters: - name: wfRunId in: path type: string required: true - name: userTaskRunId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: noderun-wfrunid-threadrunnumber-position path: /nodeRun/{wfRunId}/{threadRunNumber}/{position} operations: - name: getnoderun method: GET description: Get a node run inputParameters: - name: wfRunId in: path type: string required: true - name: threadRunNumber in: path type: integer required: true - name: position in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: littlehorse-rest description: REST adapter for LittleHorse REST API. resources: - path: /wfSpec name: listwfspecs operations: - method: GET name: listwfspecs description: List workflow specifications call: littlehorse.listwfspecs outputParameters: - type: object mapping: $. - path: /wfSpec name: putwfspec operations: - method: POST name: putwfspec description: Create or update a workflow specification call: littlehorse.putwfspec outputParameters: - type: object mapping: $. - path: /wfSpec/{name} name: getwfspec operations: - method: GET name: getwfspec description: Get a workflow specification call: littlehorse.getwfspec with: name: rest.name outputParameters: - type: object mapping: $. - path: /wfSpec/{name} name: deletewfspec operations: - method: DELETE name: deletewfspec description: Delete a workflow specification call: littlehorse.deletewfspec with: name: rest.name outputParameters: - type: object mapping: $. - path: /wfRun name: runwf operations: - method: POST name: runwf description: Run a workflow call: littlehorse.runwf outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId} name: getwfrun operations: - method: GET name: getwfrun description: Get a workflow run call: littlehorse.getwfrun with: wfRunId: rest.wfRunId outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId} name: deletewfrun operations: - method: DELETE name: deletewfrun description: Delete a workflow run call: littlehorse.deletewfrun with: wfRunId: rest.wfRunId outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId}/stop name: stopwfrun operations: - method: POST name: stopwfrun description: Stop a workflow run call: littlehorse.stopwfrun with: wfRunId: rest.wfRunId outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId}/resume name: resumewfrun operations: - method: POST name: resumewfrun description: Resume a workflow run call: littlehorse.resumewfrun with: wfRunId: rest.wfRunId outputParameters: - type: object mapping: $. - path: /wfRun/search name: searchwfruns operations: - method: GET name: searchwfruns description: Search workflow runs call: littlehorse.searchwfruns outputParameters: - type: object mapping: $. - path: /taskDef name: listtaskdefs operations: - method: GET name: listtaskdefs description: List task definitions call: littlehorse.listtaskdefs outputParameters: - type: object mapping: $. - path: /taskDef name: puttaskdef operations: - method: POST name: puttaskdef description: Create or update a task definition call: littlehorse.puttaskdef outputParameters: - type: object mapping: $. - path: /taskDef/{name} name: gettaskdef operations: - method: GET name: gettaskdef description: Get a task definition call: littlehorse.gettaskdef with: name: rest.name outputParameters: - type: object mapping: $. - path: /taskDef/{name} name: deletetaskdef operations: - method: DELETE name: deletetaskdef description: Delete a task definition call: littlehorse.deletetaskdef with: name: rest.name outputParameters: - type: object mapping: $. - path: /externalEventDef name: listexternaleventdefs operations: - method: GET name: listexternaleventdefs description: List external event definitions call: littlehorse.listexternaleventdefs outputParameters: - type: object mapping: $. - path: /externalEventDef name: putexternaleventdef operations: - method: POST name: putexternaleventdef description: Create an external event definition call: littlehorse.putexternaleventdef outputParameters: - type: object mapping: $. - path: /externalEventDef/{name} name: getexternaleventdef operations: - method: GET name: getexternaleventdef description: Get an external event definition call: littlehorse.getexternaleventdef with: name: rest.name outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId}/externalEvent/{externalEventDefName} name: postexternalevent operations: - method: POST name: postexternalevent description: Post an external event call: littlehorse.postexternalevent with: wfRunId: rest.wfRunId externalEventDefName: rest.externalEventDefName outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId} name: getusertaskrun operations: - method: GET name: getusertaskrun description: Get a user task run call: littlehorse.getusertaskrun with: wfRunId: rest.wfRunId userTaskRunId: rest.userTaskRunId outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/assign name: assignusertask operations: - method: POST name: assignusertask description: Assign a user task call: littlehorse.assignusertask with: wfRunId: rest.wfRunId userTaskRunId: rest.userTaskRunId outputParameters: - type: object mapping: $. - path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/complete name: completeusertask operations: - method: POST name: completeusertask description: Complete a user task call: littlehorse.completeusertask with: wfRunId: rest.wfRunId userTaskRunId: rest.userTaskRunId outputParameters: - type: object mapping: $. - path: /nodeRun/{wfRunId}/{threadRunNumber}/{position} name: getnoderun operations: - method: GET name: getnoderun description: Get a node run call: littlehorse.getnoderun with: wfRunId: rest.wfRunId threadRunNumber: rest.threadRunNumber position: rest.position outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: littlehorse-mcp transport: http description: MCP adapter for LittleHorse REST API for AI agent use. tools: - name: listwfspecs description: List workflow specifications hints: readOnly: true destructive: false idempotent: true call: littlehorse.listwfspecs outputParameters: - type: object mapping: $. - name: putwfspec description: Create or update a workflow specification hints: readOnly: false destructive: false idempotent: false call: littlehorse.putwfspec outputParameters: - type: object mapping: $. - name: getwfspec description: Get a workflow specification hints: readOnly: true destructive: false idempotent: true call: littlehorse.getwfspec with: name: tools.name majorVersion: tools.majorVersion revision: tools.revision inputParameters: - name: name type: string description: name required: true - name: majorVersion type: integer description: majorVersion - name: revision type: integer description: revision outputParameters: - type: object mapping: $. - name: deletewfspec description: Delete a workflow specification hints: readOnly: false destructive: true idempotent: true call: littlehorse.deletewfspec with: name: tools.name majorVersion: tools.majorVersion revision: tools.revision inputParameters: - name: name type: string description: name required: true - name: majorVersion type: integer description: majorVersion required: true - name: revision type: integer description: revision required: true outputParameters: - type: object mapping: $. - name: runwf description: Run a workflow hints: readOnly: false destructive: false idempotent: false call: littlehorse.runwf outputParameters: - type: object mapping: $. - name: getwfrun description: Get a workflow run hints: readOnly: true destructive: false idempotent: true call: littlehorse.getwfrun with: wfRunId: tools.wfRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true outputParameters: - type: object mapping: $. - name: deletewfrun description: Delete a workflow run hints: readOnly: false destructive: true idempotent: true call: littlehorse.deletewfrun with: wfRunId: tools.wfRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true outputParameters: - type: object mapping: $. - name: stopwfrun description: Stop a workflow run hints: readOnly: false destructive: false idempotent: false call: littlehorse.stopwfrun with: wfRunId: tools.wfRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true outputParameters: - type: object mapping: $. - name: resumewfrun description: Resume a workflow run hints: readOnly: false destructive: false idempotent: false call: littlehorse.resumewfrun with: wfRunId: tools.wfRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true outputParameters: - type: object mapping: $. - name: searchwfruns description: Search workflow runs hints: readOnly: true destructive: false idempotent: true call: littlehorse.searchwfruns with: wfSpecName: tools.wfSpecName status: tools.status limit: tools.limit bookmark: tools.bookmark inputParameters: - name: wfSpecName type: string description: wfSpecName - name: status type: string description: status - name: limit type: integer description: limit - name: bookmark type: string description: bookmark outputParameters: - type: object mapping: $. - name: listtaskdefs description: List task definitions hints: readOnly: true destructive: false idempotent: true call: littlehorse.listtaskdefs outputParameters: - type: object mapping: $. - name: puttaskdef description: Create or update a task definition hints: readOnly: false destructive: false idempotent: false call: littlehorse.puttaskdef outputParameters: - type: object mapping: $. - name: gettaskdef description: Get a task definition hints: readOnly: true destructive: false idempotent: true call: littlehorse.gettaskdef with: name: tools.name inputParameters: - name: name type: string description: name required: true outputParameters: - type: object mapping: $. - name: deletetaskdef description: Delete a task definition hints: readOnly: false destructive: true idempotent: true call: littlehorse.deletetaskdef with: name: tools.name inputParameters: - name: name type: string description: name required: true outputParameters: - type: object mapping: $. - name: listexternaleventdefs description: List external event definitions hints: readOnly: true destructive: false idempotent: true call: littlehorse.listexternaleventdefs outputParameters: - type: object mapping: $. - name: putexternaleventdef description: Create an external event definition hints: readOnly: false destructive: false idempotent: false call: littlehorse.putexternaleventdef outputParameters: - type: object mapping: $. - name: getexternaleventdef description: Get an external event definition hints: readOnly: true destructive: false idempotent: true call: littlehorse.getexternaleventdef with: name: tools.name inputParameters: - name: name type: string description: name required: true outputParameters: - type: object mapping: $. - name: postexternalevent description: Post an external event hints: readOnly: false destructive: false idempotent: false call: littlehorse.postexternalevent with: wfRunId: tools.wfRunId externalEventDefName: tools.externalEventDefName inputParameters: - name: wfRunId type: string description: wfRunId required: true - name: externalEventDefName type: string description: externalEventDefName required: true outputParameters: - type: object mapping: $. - name: getusertaskrun description: Get a user task run hints: readOnly: true destructive: false idempotent: true call: littlehorse.getusertaskrun with: wfRunId: tools.wfRunId userTaskRunId: tools.userTaskRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true - name: userTaskRunId type: string description: userTaskRunId required: true outputParameters: - type: object mapping: $. - name: assignusertask description: Assign a user task hints: readOnly: false destructive: false idempotent: false call: littlehorse.assignusertask with: wfRunId: tools.wfRunId userTaskRunId: tools.userTaskRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true - name: userTaskRunId type: string description: userTaskRunId required: true outputParameters: - type: object mapping: $. - name: completeusertask description: Complete a user task hints: readOnly: false destructive: false idempotent: false call: littlehorse.completeusertask with: wfRunId: tools.wfRunId userTaskRunId: tools.userTaskRunId inputParameters: - name: wfRunId type: string description: wfRunId required: true - name: userTaskRunId type: string description: userTaskRunId required: true outputParameters: - type: object mapping: $. - name: getnoderun description: Get a node run hints: readOnly: true destructive: false idempotent: true call: littlehorse.getnoderun with: wfRunId: tools.wfRunId threadRunNumber: tools.threadRunNumber position: tools.position inputParameters: - name: wfRunId type: string description: wfRunId required: true - name: threadRunNumber type: integer description: threadRunNumber required: true - name: position type: integer description: position required: true outputParameters: - type: object mapping: $.