Agno Components API

The Components API from Agno — 6 operation(s) for components.

OpenAPI Specification

agno-components-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Agno API Reference A2A Components API
  description: The all-in-one, private, secure agent platform that runs in your cloud.
  version: 2.5.6
tags:
- name: Components
paths:
  /components:
    get:
      tags:
      - Components
      summary: List Components
      description: Retrieve a paginated list of components with optional filtering by type.
      operationId: list_components
      security:
      - HTTPBearer: []
      parameters:
      - name: component_type
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ComponentType'
          - type: 'null'
          description: 'Filter by type: agent, team, workflow'
          title: Component Type
        description: 'Filter by type: agent, team, workflow'
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: Page number
          default: 1
          title: Page
        description: Page number
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Items per page
          default: 20
          title: Limit
        description: Items per page
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_ComponentResponse_'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
    post:
      tags:
      - Components
      summary: Create Component
      description: Create a new component (agent, team, or workflow) with initial config.
      operationId: create_component
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /components/{component_id}:
    get:
      tags:
      - Components
      summary: Get Component
      description: Retrieve a component by ID.
      operationId: get_component
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
    patch:
      tags:
      - Components
      summary: Update Component
      description: Partially update a component by ID.
      operationId: update_component
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentUpdate'
              description: Component fields to update
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
    delete:
      tags:
      - Components
      summary: Delete Component
      description: Delete a component by ID.
      operationId: delete_component
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /components/{component_id}/configs:
    get:
      tags:
      - Components
      summary: List Configs
      description: List all configs for a component.
      operationId: list_configs
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      - name: include_config
        in: query
        required: false
        schema:
          type: boolean
          description: Include full config blob
          default: true
          title: Include Config
        description: Include full config blob
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentConfigResponse'
                title: Response List Configs
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
    post:
      tags:
      - Components
      summary: Create Config Version
      description: Create a new config version for a component.
      operationId: create_config
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigCreate'
              description: Config data
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /components/{component_id}/configs/{version}:
    patch:
      tags:
      - Components
      summary: Update Draft Config
      description: Update an existing draft config. Cannot update published configs.
      operationId: update_config
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      - name: version
        in: path
        required: true
        schema:
          type: integer
          description: Version number
          title: Version
        description: Version number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigUpdate'
              description: Config fields to update
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
    get:
      tags:
      - Components
      summary: Get Config Version
      description: Get a specific config version by number.
      operationId: get_config
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      - name: version
        in: path
        required: true
        schema:
          type: integer
          description: Version number
          title: Version
        description: Version number
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
    delete:
      tags:
      - Components
      summary: Delete Config Version
      description: Delete a specific draft config version. Cannot delete published or current configs.
      operationId: delete_config
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      - name: version
        in: path
        required: true
        schema:
          type: integer
          description: Version number
          title: Version
        description: Version number
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /components/{component_id}/configs/current:
    get:
      tags:
      - Components
      summary: Get Current Config
      description: Get the current config version for a component.
      operationId: get_current_config
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentConfigResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
  /components/{component_id}/configs/{version}/set-current:
    post:
      tags:
      - Components
      summary: Set Current Config Version
      description: Set a published config version as current (for rollback).
      operationId: set_current_config
      security:
      - HTTPBearer: []
      parameters:
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          description: Component ID
          title: Component Id
        description: Component ID
      - name: version
        in: path
        required: true
        schema:
          type: integer
          description: Version number
          title: Version
        description: Version number
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
components:
  schemas:
    ComponentType:
      type: string
      enum:
      - agent
      - team
      - workflow
      title: ComponentType
    ConfigUpdate:
      properties:
        config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Config
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        stage:
          anyOf:
          - type: string
          - type: 'null'
          title: Stage
        notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Notes
        links:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Links
      type: object
      title: ConfigUpdate
    PaginationInfo:
      properties:
        page:
          type: integer
          minimum: 0
          title: Page
          description: Current page number (0-indexed)
          default: 0
        limit:
          type: integer
          minimum: 1
          title: Limit
          description: Number of items per page
          default: 20
        total_pages:
          type: integer
          minimum: 0
          title: Total Pages
          description: Total number of pages
          default: 0
        total_count:
          type: integer
          minimum: 0
          title: Total Count
          description: Total count of items
          default: 0
        search_time_ms:
          type: number
          minimum: 0
          title: Search Time Ms
          description: Search execution time in milliseconds
          default: 0
      type: object
      title: PaginationInfo
    ComponentCreate:
      properties:
        name:
          type: string
          title: Name
          description: Display name
        component_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Component Id
          description: Unique identifier for the entity. Auto-generated from name if not provided.
        component_type:
          $ref: '#/components/schemas/ComponentType'
          description: 'Type of entity: agent, team, or workflow'
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Optional description
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
          description: Optional metadata
        config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Config
          description: Optional configuration
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
          description: Optional label (e.g., 'stable')
        stage:
          type: string
          title: Stage
          description: 'Stage: ''draft'' or ''published'''
          default: draft
        notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Notes
          description: Optional notes
        set_current:
          type: boolean
          title: Set Current
          description: Set as current version
          default: true
      type: object
      required:
      - name
      - component_type
      title: ComponentCreate
    ComponentUpdate:
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        component_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Component Type
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
        current_version:
          anyOf:
          - type: integer
          - type: 'null'
          title: Current Version
      type: object
      title: ComponentUpdate
    ValidationErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Error detail message
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
          description: Error code for categorization
      type: object
      required:
      - detail
      title: ValidationErrorResponse
      example:
        detail: Validation error
        error_code: VALIDATION_ERROR
    InternalServerErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Error detail message
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
          description: Error code for categorization
      type: object
      required:
      - detail
      title: InternalServerErrorResponse
      example:
        detail: Internal server error
        error_code: INTERNAL_SERVER_ERROR
    BadRequestResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Error detail message
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
          description: Error code for categorization
      type: object
      required:
      - detail
      title: BadRequestResponse
      example:
        detail: Bad request
        error_code: BAD_REQUEST
    ComponentResponse:
      properties:
        component_id:
          type: string
          title: Component Id
        component_type:
          $ref: '#/components/schemas/ComponentType'
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        current_version:
          anyOf:
          - type: integer
          - type: 'null'
          title: Current Version
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
        created_at:
          type: integer
          title: Created At
        updated_at:
          anyOf:
          - type: integer
          - type: 'null'
          title: Updated At
      type: object
      required:
      - component_id
      - component_type
      - created_at
      title: ComponentResponse
    UnauthenticatedResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Error detail message
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
          description: Error code for categorization
      type: object
      required:
      - detail
      title: UnauthenticatedResponse
      example:
        detail: Unauthenticated access
        error_code: UNAUTHENTICATED
    ComponentConfigResponse:
      properties:
        component_id:
          type: string
          title: Component Id
        version:
          type: integer
          title: Version
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        stage:
          type: string
          title: Stage
        config:
          additionalProperties: true
          type: object
          title: Config
        notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Notes
        created_at:
          type: integer
          title: Created At
        updated_at:
          anyOf:
          - type: integer
          - type: 'null'
          title: Updated At
      type: object
      required:
      - component_id
      - version
      - stage
      - config
      - created_at
      title: ComponentConfigResponse
    PaginatedResponse_ComponentResponse_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ComponentResponse'
          type: array
          title: Data
          description: List of items for the current page
        meta:
          $ref: '#/components/schemas/PaginationInfo'
          description: Pagination metadata
      type: object
      required:
      - data
      - meta
      title: PaginatedResponse[ComponentResponse]
    NotFoundResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Error detail message
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
          description: Error code for categorization
      type: object
      required:
      - detail
      title: NotFoundResponse
      example:
        detail: Not found
        error_code: NOT_FOUND
    ConfigCreate:
      properties:
        config:
          additionalProperties: true
          type: object
          title: Config
          description: The configuration data
        version:
          anyOf:
          - type: integer
          - type: 'null'
          title: Version
          description: Optional version number
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
          description: Optional label (e.g., 'stable')
        stage:
          type: string
          title: Stage
          description: 'Stage: ''draft'' or ''published'''
          default: draft
        notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Notes
          description: Optional notes
        links:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Links
          description: Optional links to child components
        set_current:
          type: boolean
          title: Set Current
          description: Set as current version
          default: true
      type: object
      required:
      - config
      title: ConfigCreate
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer