Agno Workflows API

Run and manage multi-step workflows.

OpenAPI Specification

agno-agi-workflows-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Agno AgentOS Agents Workflows API
  description: 'AgentOS is Agno''s self-hostable runtime and API server. It turns agents, teams, and workflows defined with the open-source Agno Python framework into a RESTful API exposing runs, sessions, memory, knowledge, and evals. There is no single Agno-operated multi-tenant base URL - every AgentOS instance runs on infrastructure you control, defaulting to http://localhost:7777 in local development. When a Security Key (OS_SECURITY_KEY) is configured, all routes require an "Authorization: Bearer <token>" header; otherwise authentication is disabled. This document models the endpoints described in Agno''s public API reference (docs.agno.com/reference-api) plus the sibling endpoints named in Agno''s own documentation index (docs.agno.com/llms.txt). Some request/response field names are reconstructed from that reference content rather than a downloaded machine-readable OpenAPI file, so treat schemas as representative rather than byte-exact.'
  version: '1.0'
  contact:
    name: Agno
    url: https://www.agno.com
  license:
    name: Mozilla Public License 2.0
    url: https://github.com/agno-agi/agno/blob/main/LICENSE
servers:
- url: http://localhost:7777
  description: Local AgentOS (default self-hosted address)
security:
- bearerAuth: []
- {}
tags:
- name: Workflows
  description: Run and manage multi-step workflows.
paths:
  /workflows:
    get:
      operationId: listWorkflows
      tags:
      - Workflows
      summary: List all workflows
      description: Lists all workflows configured on this AgentOS instance.
      responses:
        '200':
          description: A list of workflows.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkflowResponse'
  /workflows/{workflow_id}:
    get:
      operationId: getWorkflowDetails
      tags:
      - Workflows
      summary: Get workflow details
      parameters:
      - name: workflow_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The workflow definition.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowResponse'
  /workflows/{workflow_id}/runs:
    post:
      operationId: executeWorkflow
      tags:
      - Workflows
      summary: Execute a workflow
      description: 'Executes a multi-step workflow. Streaming mode (stream=true, the default) returns text/event-stream events such as "event: RunStarted"; non-streaming mode returns the complete result as JSON.'
      parameters:
      - name: workflow_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RunRequest'
      responses:
        '200':
          description: Run result (JSON) or SSE stream (text/event-stream).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunResponse'
            text/event-stream:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          description: Execution failure.
  /workflows/{workflow_id}/runs/{run_id}:
    get:
      operationId: getWorkflowRun
      tags:
      - Workflows
      summary: Get a workflow run
      parameters:
      - name: workflow_id
        in: path
        required: true
        schema:
          type: string
      - name: run_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The workflow run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunResponse'
    delete:
      operationId: cancelWorkflowRun
      tags:
      - Workflows
      summary: Cancel a workflow run
      parameters:
      - name: workflow_id
        in: path
        required: true
        schema:
          type: string
      - name: run_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Cancellation acknowledged.
components:
  schemas:
    WorkflowResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        steps:
          type: array
          items:
            type: object
    RunResponse:
      type: object
      properties:
        run_id:
          type: string
        session_id:
          type: string
        content:
          type: string
        status:
          type: string
    RunRequest:
      type: object
      required:
      - message
      properties:
        message:
          type: string
        stream:
          type: boolean
          default: true
        session_id:
          type: string
        user_id:
          type: string
        files:
          type: array
          items:
            type: string
            format: binary
        version:
          type: integer
        background:
          type: boolean
          default: false
        monitor:
          type: boolean
          default: true
  responses:
    ValidationError:
      description: Request failed schema validation.
    NotFound:
      description: Resource not found.
    Unauthorized:
      description: Missing or invalid bearer token.
    BadRequest:
      description: Invalid input or configuration.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: HTTP Bearer token equal to OS_SECURITY_KEY. Required only when a Security Key is configured on the AgentOS instance; disabled otherwise.