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

> ## Agent Instructions
> To search or read these docs, connect the Ringg docs MCP server at https://docs.ringg.ai/mcp (no key needed; tools search_ringg_ai and query_docs_filesystem_ringg_ai) instead of browsing pages one by one. Setup for each client: https://docs.ringg.ai/resources/mcp-server/docs-mcp-server/mcp-for-ai-assistants.md
> The dashboard labels agents "Assistants"; these docs say "agent". Both mean the same object, identified by agent_id.
> API base URL: https://prod-api.ringg.ai/ca/api/v0. Send the workspace API key in the X-API-KEY header, from server-side code only.
> Placing a call dials a real phone number and spends credits. Confirm the number with the user before calling.
> To act on a Ringg workspace (place calls, edit agents, read transcripts), use the separate Ringg workspace MCP server at https://mcp.ringg.ai/mcp: https://docs.ringg.ai/resources/mcp-server/workspace-mcp-server/overview.md

> Get goal rate, latency and cost for your agents, a side-by-side comparison of agent versions, and call, minute and cost totals for each agent in scope.

# Get Agent Performance

export const RelatedTopics = ({items}) => <div className="not-prose mt-12">
    <div className="text-sm font-medium text-gray-500 dark:text-zinc-400 mb-3">Related topics</div>
    <div className="flex flex-col gap-2.5">
      {items.map(([title, href]) => <a key={href} href={href} className="flex items-center gap-2.5 text-sm text-gray-700 hover:text-gray-950 dark:text-zinc-300 dark:hover:text-white">
          <Icon icon="file-text" size={16} color="currentColor" />
          {title}
        </a>)}
    </div>
  </div>;

Returns the **Performance** cards and the agents table in [Analytics](/documentation/monitor/analytics). Pass two or more IDs in `agent_version_id` to compare versions in `version_comparison`.

## Notes

* `summary` covers every version of the selected agents; `agent_version_id` changes only `version_comparison`.
* `goal_rate` uses each call's own version goal (see [Where the goal comes from](/documentation/monitor/analytics#where-the-goal-comes-from)). It is `null` when no call in scope has a goal value.
* `total_cost`, `cost` and `total_minutes` count completed calls only, in the workspace `currency`.
* `client_analysis_key`, `client_analysis_value` and `client_analysis_type` narrow the result to calls with one [Advanced Analysis](/documentation/build-agents/customize-agent-behaviour/advanced-analysis) value, for example `disposition` equal to `interested`.
* `assistants_in_action` lists agents with at least one call in scope, sorted by `call_count`.

## Errors

* `400`: a filter is invalid, such as an unknown `channel`, a malformed ID, or `sub_workspace_id` sent from a workspace that isn't a primary workspace.
* `401`: `X-API-KEY` is missing or invalid.

<RelatedTopics items={[["Analytics", "/documentation/monitor/analytics"], ["Drafts and versions", "/documentation/build-agents/test-and-improve/drafts-and-versions"]]} />


## OpenAPI

````yaml get /analytics/v4/agent-performance
openapi: 3.0.0
info:
  title: Ringg AI API Documentation
  description: >-
    The Ringg AI REST API. Base URL https://prod-api.ringg.ai/ca/api/v0; send
    your workspace API key in the X-API-KEY header from server-side code only.
    Requests and responses are JSON.
  version: 2.0.0
  contact:
    name: Ringg AI support
    email: admin@ringg.ai
    url: https://docs.ringg.ai
servers:
  - url: https://prod-api.ringg.ai/ca/api/v0
security:
  - ApiKeyAuth: []
tags:
  - name: workspace
    description: Endpoints for managing your workspace.
  - name: agent
    description: Endpoints for managing agents.
  - name: calling
    description: Endpoints for making and managing calls.
  - name: campaign
    description: Endpoints for managing campaigns.
  - name: analytics
    description: >-
      Analytics v4 endpoints for call, agent, cohort and chat performance
      metrics.
  - name: termination
    description: Endpoints for terminating active calls using different methods.
  - name: knowledgebase
    description: Endpoints for managing knowledge bases.
paths:
  /analytics/v4/agent-performance:
    get:
      tags:
        - analytics
      summary: Get Agent Performance
      description: >-
        Returns goal rate, latency and cost for the selected agents, a
        side-by-side comparison of agent versions, and per-assistant call,
        minute and cost totals.
      operationId: getAgentPerformance
      parameters:
        - name: start_date
          in: query
          description: >-
            Start of the reporting window. Accepts `YYYY-MM-DD` or ISO-8601.
            Omit both dates for all time.
          required: false
          schema:
            type: string
            example: '2026-10-01'
        - name: end_date
          in: query
          description: >-
            End of the reporting window (inclusive). Accepts `YYYY-MM-DD` or
            ISO-8601.
          required: false
          schema:
            type: string
            example: '2026-10-15'
        - name: agent_id
          in: query
          description: Filter by one or more agent IDs (comma-separated).
          required: false
          schema:
            type: string
            example: 00000000-0000-4000-8000-0000000000a1
        - name: agent_version_id
          in: query
          description: Filter by one or more agent version IDs (comma-separated).
          required: false
          schema:
            type: string
            example: 00000000-0000-4000-8000-0000000000d1
        - name: bulk_list_id
          in: query
          description: >-
            Filter by one or more campaign (bulk list) IDs (comma-separated).
            Callback calls inherit the campaign of their parent call.
          required: false
          schema:
            type: string
            example: 00000000-0000-4000-8000-0000000000c1
        - name: voicemail
          in: query
          description: >-
            `true` returns only voicemail calls, `false` excludes them. Omit to
            include all calls.
          required: false
          schema:
            type: boolean
            example: false
        - name: channel
          in: query
          description: >-
            Filter by call channel (comma-separated): `inbound`, `outbound`,
            `webcall`. Unknown values return `400`.
          required: false
          schema:
            type: string
            example: outbound
        - name: include_callback
          in: query
          description: >-
            Include callback-feature calls (`call_category = CALLBACK`) in the
            metrics. Defaults to `false`.
          required: false
          schema:
            type: boolean
            default: false
            example: false
        - name: client_analysis_key
          in: query
          description: >-
            Only include calls whose post-call analysis field has this key, for
            example `disposition`. Use with `client_analysis_value`.
          required: false
          schema:
            type: string
            example: disposition
        - name: client_analysis_value
          in: query
          description: Value that `client_analysis_key` must equal.
          required: false
          schema:
            type: string
            example: interested
        - name: client_analysis_type
          in: query
          description: How to compare `client_analysis_value`.
          required: false
          schema:
            type: string
            enum:
              - string
              - boolean
              - number
            default: string
        - name: sub_workspace_id
          in: query
          description: >-
            Primary workspaces only: limit the combined analytics to these Ringg
            Spaces. Repeat the parameter for multiple IDs. The primary
            workspace's own ID is accepted; any other workspace sending this
            parameter gets `400`.
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
            example:
              - 00000000-0000-4000-8000-000000000101
          style: form
          explode: true
      responses:
        '200':
          description: Agent performance retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: object
                    properties:
                      goal_rate:
                        type: number
                        description: >-
                          Share of scored calls where the agent version's goal
                          key is `true` (0-1). `null` when nothing is scored.
                        nullable: true
                      avg_latency_ms:
                        type: number
                        description: Average response latency in milliseconds.
                        nullable: true
                      total_cost:
                        type: number
                        description: Credits spent on completed calls.
                      cost_per_outcome:
                        type: number
                        description: '`total_cost` divided by calls that achieved the goal.'
                        nullable: true
                  latency:
                    type: object
                    properties:
                      p50_ms:
                        type: number
                        description: Median latency in milliseconds.
                        nullable: true
                      p95_ms:
                        type: number
                        description: 95th-percentile latency in milliseconds.
                        nullable: true
                      scored:
                        type: integer
                        description: Calls with a latency measurement.
                      total:
                        type: integer
                        description: Calls in scope.
                  currency:
                    type: string
                    description: >-
                      Your workspace's billing currency, used by the cost
                      fields.
                  version_comparison:
                    type: array
                    description: >-
                      Per-version metrics. Pass two or more IDs in
                      `agent_version_id` to compare versions.
                    items:
                      type: object
                      properties:
                        agent_version_id:
                          type: string
                          description: Agent version ID.
                        total:
                          type: integer
                          description: Calls on this version.
                        connected:
                          type: integer
                          description: Completed calls.
                        connection_rate:
                          type: number
                          description: '`connected / total` (0-1).'
                          nullable: true
                        aht_seconds:
                          type: number
                          description: Average handle time in seconds.
                          nullable: true
                        goal_rate:
                          type: number
                          description: Goal rate (0-1).
                          nullable: true
                        positive_sentiment_share:
                          type: number
                          description: Share of scored calls with positive sentiment (0-1).
                          nullable: true
                        avg_latency_ms:
                          type: number
                          description: Average latency in milliseconds.
                          nullable: true
                  assistants_in_action:
                    type: array
                    description: >-
                      Agents with at least one call in scope, sorted by
                      `call_count` descending.
                    items:
                      type: object
                      properties:
                        agent_id:
                          type: string
                          description: Agent ID.
                        agent_name:
                          type: string
                          description: Agent name.
                        call_count:
                          type: integer
                          description: Calls in scope, across every status.
                        total_connected:
                          type: integer
                          description: Completed calls.
                        total_minutes:
                          type: number
                          description: Talk minutes on completed calls.
                        cost:
                          type: number
                          description: Credits spent on completed calls, in `currency`.
              example:
                summary:
                  goal_rate: 0.625
                  avg_latency_ms: 912.4
                  total_cost: 42.75
                  cost_per_outcome: 0.57
                latency:
                  p50_ms: 883.4
                  p95_ms: 1074.7
                  scored: 102
                  total: 120
                currency: INR
                version_comparison:
                  - agent_version_id: 00000000-0000-4000-8000-0000000000d1
                    total: 120
                    connected: 84
                    connection_rate: 0.7
                    aht_seconds: 41.2
                    goal_rate: 0.625
                    positive_sentiment_share: 0.72
                    avg_latency_ms: 912.4
                assistants_in_action:
                  - agent_id: 00000000-0000-4000-8000-0000000000a1
                    agent_name: Ananya
                    call_count: 120
                    total_connected: 84
                    total_minutes: 310.5
                    cost: 42.75
        '400':
          description: >-
            Bad Request - invalid filter value (for example an unknown `channel`
            or malformed ID).
          content:
            application/json:
              example:
                message: 'invalid channel(s): sms'
        '401':
          description: Unauthorized - Invalid or missing authentication.
        '500':
          description: Internal Server Error.
          content:
            application/json:
              example:
                message: Failed to fetch agent performance!
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.