> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corti.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the A2A agent card

> Returns the A2A v1.0 agent card describing the agent's capabilities,
skills, and supported protocol interfaces. Served at the standard
`.well-known` location for agent discovery.




## OpenAPI

````yaml /agentic/auto-generated-openapi-v2.yml get /v2/agentic/agents/{agentId}/.well-known/agent-card.json
openapi: 3.1.0
info:
  title: Corti Agent API v2
  version: 2.0.0
  summary: Manage agents and converse with them over the A2A v1.0 protocol.
  description: >
    Version 2 of the Corti Agents REST API.


    ## What's new in v2


    - **Unified `connectors`** — a single, flat, discriminated array replaces
    the
      v1 split between `experts`, `mcpServers`, and sub-agents. The envelope is
      extensible: new connector kinds (`a2a`, `openapi`, `custom`) slot in behind
      the `type` discriminator without breaking changes.
    - **Clean CRUD verbs** — `POST` creates, `GET` fetches/lists, `PATCH`
    performs
      a *true* partial update, `DELETE` removes. v1's PATCH was effectively a PUT.
    - **First-class metadata** — `visibility`, `model`, `lifecycle` (now a body
      field, not a query param), and free-form `labels`.

    ## A2A v1.0 only


    The conversational surface speaks **A2A protocol version `1.0` exclusively**

    (both the `JSONRPC` and `HTTP+JSON` bindings). The deprecated v0.3 binding
    from

    v1 is intentionally not carried forward.


    Per A2A §3.6, clients MUST send the `A2A-Version` header (`Major.Minor`,
    e.g.

    `1.0`) on every request to the `/a2a/*` surface, or supply it as the

    `A2A-Version` query parameter. This surface implements `1.0` only; an absent

    header is treated as `1.0`. Patch versions MUST NOT be sent. The server
    echoes

    the negotiated version in the `A2A-Version` response header.


    ## Partial updates (PATCH)


    `PATCH` uses **JSON Merge Patch** semantics (RFC 7386), served under the

    `application/merge-patch+json` media type:


    - **Omit a field** → left unchanged.

    - **`null`** → cleared / reset to its default.

    - **Arrays** (e.g. `connectors`) → *replaced wholesale*, never merged.


    To mutate a single connector without replacing the whole array, use the

    `/connectors` sub-resource endpoints.


    ## Streaming (Server-Sent Events)


    The streaming A2A surfaces — `message/stream`, `tasks/subscribe`, and the

    streaming JSON-RPC methods — respond with `text/event-stream`. The

    `text/event-stream` media type carries a sequence of Server-Sent Events;

    the attached schema describes a single event frame. Every event's `data`

    field is a string carrying a JSON document (`contentMediaType:

    application/json`); `contentSchema` declares the parsed payload

    (`StreamResponse` for the `HTTP+JSON` binding, `JSONRPCResponse` for the

    `JSONRPC` binding). The optional `id` field carries the SSE event id used

    for resumption via the `Last-Event-ID` request header.
  contact:
    name: Corti API Support
    url: https://corti.ai
    email: support@corti.ai
  license:
    name: Proprietary
    url: https://corti.ai/terms
  termsOfService: https://corti.ai/terms
servers:
  - url: https://api.{env}.corti.app
    description: Corti regional API gateway
    variables:
      env:
        default: eu
        enum:
          - eu
          - us
        description: Deployment region.
security:
  - bearerAuth: []
    tenantHeader: []
tags:
  - name: Agents
    description: Create, read, update, and delete agents.
  - name: Agent Card
    description: A2A-compliant agent discovery cards.
  - name: A2A
    description: Converse with an agent over the A2A v1.0 protocol.
  - name: Connectors
    description: Manage the connectors attached to an agent.
  - name: Usage
    description: Bucketed invocation history for an agent.
  - name: Contexts
    description: Conversational contexts and their tasks.
  - name: Registry
    description: Discoverable, pre-built connectors offered by the platform.
  - name: Artifacts
    description: Retrieve artifacts produced by tasks.
  - name: Feedback
    description: Collect human or automated feedback on tasks and messages.
paths:
  /v2/agentic/agents/{agentId}/.well-known/agent-card.json:
    parameters:
      - $ref: '#/components/parameters/AgentId'
    get:
      tags:
        - Agent Card
      summary: Get the A2A agent card
      description: |
        Returns the A2A v1.0 agent card describing the agent's capabilities,
        skills, and supported protocol interfaces. Served at the standard
        `.well-known` location for agent discovery.
      operationId: AgentCardGet
      responses:
        '200':
          description: The agent card.
          headers:
            A2A-Version:
              $ref: '#/components/headers/A2AVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentCardResponse'
              examples:
                card:
                  $ref: '#/components/examples/AgentCardExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    AgentId:
      name: agentId
      in: path
      required: true
      description: Agent identifier (prefixed UUIDv7).
      schema:
        $ref: '#/components/schemas/CommonAgentIDValue'
  headers:
    A2AVersion:
      description: >-
        The A2A protocol `Major.Minor` version the server used to handle the
        request.
      schema:
        type: string
        examples:
          - '1.0'
  schemas:
    AgentCardResponse:
      type: object
      description: >-
        An A2A agent card describing capabilities, skills, and supported
        interfaces.
      required:
        - name
        - version
        - capabilities
        - supportedInterfaces
      properties:
        name:
          type: string
          description: Agent display name.
          examples:
            - Corti Coding Agent
        description:
          type: string
          description: Agent description.
          examples:
            - Returns ICD-10 codes for a clinical encounter.
        documentationUrl:
          type: string
          format: uri
          description: A URL providing additional documentation about the agent.
        iconUrl:
          type: string
          format: uri
          description: Optional URL to an icon for the agent.
        version:
          type: string
          description: Agent card version (SemVer).
          examples:
            - 2.0.0
        capabilities:
          type: object
          properties:
            streaming:
              type: boolean
              description: Whether the agent supports streaming responses.
            pushNotifications:
              type: boolean
              description: >-
                Whether the agent can push task updates to a client-supplied
                webhook.

                **Future scope**: the `tasks/pushNotificationConfig/*`
                management endpoints are not yet implemented. Expect this to be
                `false` until they ship. 
          description: Agent capability flags (streaming, push notifications).
          example:
            streaming: true
            pushNotifications: false
        defaultInputModes:
          type: array
          items:
            type: string
          description: Default input media types.
          examples:
            - - text/plain
        defaultOutputModes:
          type: array
          items:
            type: string
          description: Default output media types.
          examples:
            - - text/plain
        provider:
          type: object
          properties:
            organization:
              type: string
              description: Publishing organization name.
            url:
              type: string
              format: uri
              description: Publishing organization URL.
          description: Publishing organization and URL.
          example:
            organization: Corti
            url: https://corti.ai
        securityRequirements:
          type: array
          description: Security requirements for contacting the agent.
          items:
            type: object
            additionalProperties: true
            description: A map of security schemes to the required scopes.
        securitySchemes:
          type: object
          description: The security scheme details used for authenticating with this agent.
          additionalProperties: true
        signatures:
          type: array
          description: JSON Web Signatures (JWS, RFC 7515) computed for this agent card.
          items:
            type: object
            required:
              - protected
              - signature
            properties:
              protected:
                type: string
                description: Base64url-encoded protected JWS header.
              header:
                type: object
                additionalProperties: true
                description: Unprotected JWS header values.
              signature:
                type: string
                description: Base64url-encoded signature.
        skills:
          type: array
          items:
            type: object
            required:
              - id
              - name
            properties:
              id:
                type: string
                description: Skill identifier.
              name:
                type: string
                description: Skill display name.
              description:
                type: string
                description: Skill description.
              tags:
                type: array
                description: Keywords for search and filtering.
                items:
                  type: string
          description: Skills the agent exposes.
          examples:
            - - id: con.0192f4c8-7baf-7083-a46f-81d2bd70cf95
                name: coding-expert
                description: ICD-10 coding.
                tags:
                  - expert
        supportedInterfaces:
          type: array
          description: A2A protocol bindings. v2 advertises protocolVersion `1.0` only.
          items:
            type: object
            required:
              - protocolBinding
              - protocolVersion
              - url
            properties:
              protocolBinding:
                type: string
                enum:
                  - JSONRPC
                  - HTTP+JSON
                description: A2A protocol binding type.
              protocolVersion:
                type: string
                const: '1.0'
                description: A2A protocol version; always `1.0`.
              url:
                type: string
                format: uri
                description: Endpoint URL for this protocol binding.
          examples:
            - - protocolBinding: JSONRPC
                protocolVersion: '1.0'
                url: >-
                  https://api.eu.corti.app/v2/agentic/agents/agt.0192f4c8-2c5a-7b3e-9f1a-3c8d6e2b7a40/a2a
    CommonAgentIDValue:
      type: string
      format: agent-id
      description: >-
        Agent identifier. Accepts `agt.<uuidv7>` or a bare UUIDv7 on input;
        always returned prefixed.
      pattern: ^(agt\.)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      examples:
        - agt.0192f4c8-2c5a-7b3e-9f1a-3c8d6e2b7a40
    CommonErrorResponse:
      type: object
      description: >
        Corti management-plane error envelope, used by all non-A2A endpoints.


        - **Standard** — when the error chain contains at least one
        `PublicError`,
          `code` and `message` come from the outermost `PublicError` and `details`
          is merged across the whole chain (outer values take precedence).
        - **Fallback** — when the chain contains no `PublicError`, the response
        is
          a generic `500` carrying a `requestId` for support reference.
        - **Validation** — a single `PublicError` whose
        `details.validationErrors`
          lists the offending fields.

        Field names use camelCase on the wire (e.g. `requestId`, `howToFix`).

        The free-form `details` object may carry arbitrary caller-defined keys.


        Rate limiting (HTTP 429) is not yet implemented; the server does not
        emit a 429 response.
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Stable, machine-readable, SCREAMING_SNAKE_CASE error code.
              examples:
                - ASSIGNMENT_CONFLICT
                - VALIDATION_FAILED
                - INTERNAL_ERROR
            message:
              type: string
              description: Human-readable explanation.
            howToFix:
              type: string
              description: Optional guidance for the caller to resolve the error.
            details:
              type: object
              description: |
                Structured context, merged from every `PublicError` in the chain
                (outer values win). Omitted on the generic fallback response.
              additionalProperties: true
              properties:
                validationErrors:
                  type: array
                  description: Present when `code` is `VALIDATION_FAILED`.
                  items:
                    type: object
                    required:
                      - field
                      - reason
                    properties:
                      field:
                        type: string
                        description: The field that failed validation.
                      reason:
                        type: string
                        description: Why the field failed validation.
            requestId:
              type: string
              description: >
                Correlation ID from request middleware. Included only on the

                generic `500` fallback so consumers can quote it in support
                requests.
          description: The error object with code, message, and optional details.
      examples:
        - error:
            code: ASSIGNMENT_CONFLICT
            message: could not complete assignment
            details:
              assignment_id: asg_99
              expert_id: exp_42
        - error:
            code: VALIDATION_FAILED
            message: validation failed
            details:
              validationErrors:
                - field: email
                  reason: invalid format
                - field: name
                  reason: required
        - error:
            code: INTERNAL_ERROR
            message: internal server error
            requestId: req_abc123
  examples:
    AgentCardExample:
      summary: A2A v1.0 agent card
      description: >-
        A discovery card advertising both the JSONRPC and HTTP+JSON v1.0
        interfaces.
      value:
        name: coder
        description: Returns ICD-10 codes for a clinical encounter.
        version: 0.1.0
        capabilities:
          streaming: true
          pushNotifications: false
        defaultInputModes:
          - text/plain
        defaultOutputModes:
          - text/plain
        provider:
          organization: Corti
          url: https://corti.ai
        skills:
          - id: con.0192f4c8-7baf-7083-a46f-81d2bd70cf95
            name: coding-expert
            description: ICD-10 coding.
            tags:
              - expert
        supportedInterfaces:
          - protocolBinding: JSONRPC
            protocolVersion: '1.0'
            url: >-
              https://api.eu.corti.app/v2/agentic/agents/agt.0192f4c8-2c5a-7b3e-9f1a-3c8d6e2b7a40/a2a
          - protocolBinding: HTTP+JSON
            protocolVersion: '1.0'
            url: >-
              https://api.eu.corti.app/v2/agentic/agents/agt.0192f4c8-2c5a-7b3e-9f1a-3c8d6e2b7a40/a2a
  responses:
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CommonErrorResponse'
    NotFound:
      description: The resource does not exist or is not visible to the caller.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CommonErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 / OIDC bearer token.
    tenantHeader:
      type: apiKey
      in: header
      name: Tenant-Name
      description: The tenant the request operates within.

````