Agno Components API
The Components API from Agno — 6 operation(s) for components.
The Components API from Agno — 6 operation(s) for components.
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