---
title: "Create Agent"
method: POST
path: "/v1/agents"
tags: ["[beta] A2A Agents"]
---

# Create Agent

`POST /v1/agents`

Create a new agent

Example Request:
```bash
curl -X POST "http://localhost:4000/agents" \
    -H "Authorization: Bearer <your_api_key>" \
    -H "Content-Type: application/json" \
    -d '{
        "agent": {
            "agent_name": "my-custom-agent",
            "agent_card_params": {
                "protocolVersion": "1.0",
                "name": "Hello World Agent",
                "description": "Just a hello world agent",
                "url": "http://localhost:9999/",
                "version": "1.0.0",
                "defaultInputModes": ["text"],
                "defaultOutputModes": ["text"],
                "capabilities": {
                    "streaming": true
                },
                "skills": [
                    {
                        "id": "hello_world",
                        "name": "Returns hello world",
                        "description": "just returns hello world",
                        "tags": ["hello world"],
                        "examples": ["hi", "hello world"]
                    }
                ]
            },
            "litellm_params": {
                "make_public": true
            }
        }
    }'
```

## Request body

- AgentConfig
  - `agent_name` string, required
  - `agent_card_params` AgentCardInput, required — The AgentCard is a self-describing manifest for an agent. It provides essential metadata including the agent's identity, capabilities, skills, supported communication methods, and security requirements.
    - `protocolVersion` string
    - `name` string
    - `description` string
    - `url` string
    - `version` string
    - `capabilities` AgentCapabilities — Defines optional capabilities supported by an agent.
      - `streaming` boolean, nullable
      - `pushNotifications` boolean, nullable
      - `stateTransitionHistory` boolean, nullable
      - `extensions` AgentExtension[], nullable
        - `uri` string
        - `description` string, nullable
        - `required` boolean, nullable
        - `params` object, nullable
    - `defaultInputModes` string[]
    - `defaultOutputModes` string[]
    - `skills` AgentSkill[]
      - `id` string
      - `name` string
      - `description` string
      - `tags` string[]
      - `examples` string[], nullable
      - `inputModes` string[], nullable
      - `outputModes` string[], nullable
      - `security` object[], nullable
    - `preferredTransport` string, nullable
    - `additionalInterfaces` AgentInterface[], nullable
      - `url` string
      - `transport` string
    - `iconUrl` string, nullable
    - `provider` AgentProvider — Represents the service provider of an agent.
      - `organization` string
      - `url` string
    - `documentationUrl` string, nullable
    - `securitySchemes` object, nullable
    - `security` object[], nullable
    - `supportsAuthenticatedExtendedCard` boolean, nullable
    - `signatures` AgentCardSignature[], nullable
      - `protected` string
      - `signature` string
      - `header` object, nullable
  - `litellm_params` object
  - `object_permission` AgentObjectPermission
    - `mcp_servers` string[], nullable
    - `mcp_access_groups` string[], nullable
    - `mcp_tool_permissions` object, nullable
    - `models` string[], nullable
    - `agents` string[], nullable
  - `tpm_limit` integer, nullable
  - `rpm_limit` integer, nullable
  - `session_tpm_limit` integer, nullable
  - `session_rpm_limit` integer, nullable
  - `static_headers` object, nullable
  - `extra_headers` string[], nullable

## Response `200`

Successful Response

- AgentResponse
  - `agent_id` string, required
  - `agent_name` string, required
  - `litellm_params` object, nullable
  - `agent_card_params` object, required
  - `object_permission` object, nullable
  - `spend` number, nullable
  - `tpm_limit` integer, nullable
  - `rpm_limit` integer, nullable
  - `session_tpm_limit` integer, nullable
  - `session_rpm_limit` integer, nullable
  - `static_headers` object, nullable
  - `extra_headers` string[], nullable
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable
  - `created_by` string, nullable
  - `updated_by` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/flock/apis/litellm-api.md) · [All operations](https://skmtc.net/flock/apis/litellm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/flock/litellm-api/revisions/8fbaab4fc7c5/schema)
