OpenAPI Specification
openapi: 3.1.0
info:
title: Kestra Open Source REST Executions Flows API
description: 'REST API for the Kestra open source workflow orchestration platform. Covers
flow definitions, executions, namespaces, triggers, key-value store, and
namespace files. Documented at https://kestra.io/docs/api-reference/open-source.
The Kestra server defaults to basic authentication and exposes the API under
the `/api/v1/` prefix on the configured host.
'
version: 1.0.0
contact:
name: Kestra
url: https://kestra.io/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8080
description: Default local Kestra server.
- url: https://{host}
description: Self-hosted Kestra deployment.
variables:
host:
default: kestra.example.com
security:
- basicAuth: []
tags:
- name: Flows
description: Manage flow definitions.
paths:
/api/v1/flows:
get:
tags:
- Flows
summary: Search flows
operationId: searchFlows
parameters:
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
- name: q
in: query
schema:
type: string
- name: namespace
in: query
schema:
type: string
responses:
'200':
description: A page of flows.
content:
application/json:
schema:
$ref: '#/components/schemas/FlowPage'
post:
tags:
- Flows
summary: Create a flow
operationId: createFlow
requestBody:
required: true
content:
application/x-yaml:
schema:
type: string
description: Flow source in YAML.
responses:
'200':
description: Created flow.
content:
application/json:
schema:
$ref: '#/components/schemas/Flow'
/api/v1/flows/{namespace}/{id}:
parameters:
- $ref: '#/components/parameters/Namespace'
- $ref: '#/components/parameters/FlowId'
get:
tags:
- Flows
summary: Get a flow
operationId: getFlow
responses:
'200':
description: A flow definition.
content:
application/json:
schema:
$ref: '#/components/schemas/Flow'
put:
tags:
- Flows
summary: Update a flow
operationId: updateFlow
requestBody:
required: true
content:
application/x-yaml:
schema:
type: string
responses:
'200':
description: Updated flow.
content:
application/json:
schema:
$ref: '#/components/schemas/Flow'
delete:
tags:
- Flows
summary: Delete a flow
operationId: deleteFlow
responses:
'204':
description: Flow deleted.
components:
parameters:
FlowId:
name: id
in: path
required: true
schema:
type: string
Namespace:
name: namespace
in: path
required: true
schema:
type: string
Page:
name: page
in: query
schema:
type: integer
minimum: 1
default: 1
Size:
name: size
in: query
schema:
type: integer
minimum: 1
maximum: 200
default: 25
schemas:
Flow:
type: object
properties:
id:
type: string
namespace:
type: string
revision:
type: integer
description:
type: string
source:
type: string
description: Flow source in YAML.
FlowPage:
type: object
properties:
total:
type: integer
results:
type: array
items:
$ref: '#/components/schemas/Flow'
securitySchemes:
basicAuth:
type: http
scheme: basic
description: Optional HTTP basic authentication for self-hosted Kestra instances.