> ## 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 one call by its call_id: status, numbers, agent, recording link and transcript, plus platform and advanced analysis when you set send_analysis=true.

# Get Call Details

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>;

Pass the call's ID as `id`, the `call_id` you got when placing the call or from a webhook.

## Notes

* `transcription_url` is the transcript as a JSON-encoded string, not an array: parse it to get one object per turn (`bot` or `user`). It is `null` when there is no transcript and `"[]"` for a call that never connected.
* `platform_analysis` is Ringg's summary and classification; `client_analysis` is the result of your [Advanced Analysis](/documentation/build-agents/customize-agent-behaviour/advanced-analysis). Analysis runs after the call ends, and each key is left out of the response until it is ready. Leave `send_analysis` off when you only need status or the recording.
* `call_metrics=true` adds the call's [eval](/documentation/monitor/evals) results in `data.metrics`, one entry per metric with `metric_name`, `score` and `explanation`.
* `recording_url` may expire. Call this endpoint again for a fresh link, and download the recording if you need to keep it.
* A `404` means no call with that ID exists in the workspace that owns the API key.

<RelatedTopics items={[["Webhook payloads", "/documentation/build-agents/customize-agent-behaviour/webhooks/call-events"]]} />


## OpenAPI

````yaml get /calling/call-details
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: []
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: Endpoints for accessing call analytics and performance metrics.
  - name: termination
    description: Endpoints for terminating active calls using different methods.
  - name: knowledgebase
    description: Endpoints for managing knowledge bases.
paths:
  /calling/call-details:
    get:
      tags:
        - calling
      summary: Get Call Details
      description: >-
        Retrieves one call by its ID. Set `send_analysis=true` to include
        post-call analysis and `call_metrics=true` to include eval results.
      operationId: getCallDetails
      parameters:
        - name: X-API-KEY
          in: header
          description: (Required) Your Ringg AI API key.
          required: true
          schema:
            type: string
            example: rg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        - name: id
          in: query
          description: (Required) The unique identifier (UUID) of the call.
          required: true
          schema:
            type: string
            example: 550e8400-e29b-41d4-a716-446655440000
        - name: send_analysis
          in: query
          description: >-
            (Optional) Include `platform_analysis` and `client_analysis`. Each
            key is left out of the response until its analysis is ready.
          required: false
          schema:
            type: boolean
            default: false
            example: true
        - name: call_metrics
          in: query
          description: (Optional) Include eval results for the call in `data.metrics`.
          required: false
          schema:
            type: boolean
            default: false
            example: true
      responses:
        '200':
          description: Call details retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: The unique identifier of the call
                        example: 550e8400-e29b-41d4-a716-446655440000
                      call_direction:
                        type: string
                        description: The direction of the call
                        enum:
                          - inbound
                          - outbound
                          - webcall
                        example: outbound
                      call_status:
                        type: string
                        description: >-
                          `registered`: created, not dialled yet (queued,
                          scheduled, outside calling hours or held by a call
                          limit). `ongoing`: dialling, ringing or in
                          conversation. `retry`: an attempt did not connect and
                          another is scheduled. `completed`: connected and
                          ended, including voicemail detected. `failed`: no
                          conversation and nothing left to try, such as busy or
                          unanswered on the last attempt, a DND number, or the
                          campaign window ending first. `error`: a system-side
                          failure, such as the dial or the pre-call API failing.
                          `cancelled`: stopped on purpose, by Terminate calls, a
                          passed deadline or a call limit. `forwarded`: an
                          inbound call sent to the agent's transfer number by
                          its inbound rate limit.
                        enum:
                          - registered
                          - ongoing
                          - retry
                          - error
                          - completed
                          - failed
                          - cancelled
                          - forwarded
                        example: completed
                      call_sub_status:
                        type: string
                        description: >-
                          The detail behind `call_status`. Examples:
                          `FREQUENCY_DEFERRED` (held by a call limit),
                          `FREQUENCY_CAPPED` (cancelled by a call limit),
                          `DEADLINE_PASSED` (cancelled at `call_deadline` or
                          `call_validity_hours`), `USER_TERMINATED` (Terminate
                          calls), `DND_SKIPPED`, `RETRY_LIMIT_REACHED`. For a
                          failed or error call, webhooks and exports can carry
                          the carrier's own reason instead.
                        enum:
                          - IN_DB
                          - QUEUED
                          - ACCEPTED
                          - RATE_LIMITED
                          - RETRY_LIMIT_REACHED
                          - RETRY_SCHEDULED
                          - FAILED
                          - USER_DID_NOT_JOIN
                          - USER_LEFT
                          - USER_BECAME_IDLE
                          - CAMPAIGN_TIME_EXCEEDED
                          - MAX_CALL_DURATION
                          - NOT_ABLE_TO_CALL
                          - USER_TERMINATED
                          - DND_SKIPPED
                          - VOICEMAIL_DETECTED
                          - VOICEMAIL_DETECTED_VIA_LLM
                          - PRE_CALL_API_FAILED
                          - RECONCILED_TO_ERROR_FROM_REGISTERED
                          - RECONCILED_TO_ERROR_FROM_RETRY
                          - RECONCILED_TO_ERROR_FROM_ONGOING
                          - RECONCILED_TO_COMPLETED_FROM_ONGOING
                          - FREQUENCY_DEFERRED
                          - FREQUENCY_CAPPED
                          - FREQUENCY_CHECK_FAILED
                          - DEADLINE_PASSED
                          - PHONOS_TIMEOUT
                        example: ACCEPTED
                      from_number:
                        type: string
                        description: The phone number the call was made from
                        example: '+1234567890'
                      to_number:
                        type: string
                        description: The phone number the call was made to
                        example: '+14155550123'
                      callee_name:
                        type: string
                        description: The name of the person called
                        example: John Doe
                      agent_id:
                        type: string
                        description: The ID of the agent that handled the call
                        example: agent-123-456
                      initiation_time:
                        type: string
                        format: date-time
                        description: When the call was initiated
                        example: '2024-01-15T14:30:00Z'
                      recording_url:
                        type: string
                        description: >-
                          URL of the call recording. The link may expire; call
                          this endpoint again for a fresh link, and download the
                          file if you need to keep it.
                        example: https://example.com/recordings/call-123.mp3
                      transcription_url:
                        type: string
                        nullable: true
                        description: >-
                          The transcript as a JSON-encoded string, not an array:
                          parse it to get one object per turn, keyed `bot` or
                          `user`. `null` when there is no transcript, and `"[]"`
                          for a call that never connected.
                        example: >-
                          [{"bot": "Hi Priya, this is Asha from Acme Lending. Is
                          this a good time to talk about your EMI?"}, {"user":
                          "Yes, go ahead."}]
                      platform_analysis:
                        type: object
                        description: >-
                          Ringg's post-call analysis, with `send_analysis=true`:
                          `summary`, `key_points`, `action_items`,
                          `classification` (one of the agent's labels),
                          `sentiment` (`positive`, `neutral` or `negative`),
                          `sentiment_reason`, `callback_requested`,
                          `callback_requested_time`,
                          `callback_requested_via_human_agent`,
                          `call_disconnect_reason` (`agent_hangup` or
                          `user_hangup`) and `timezone`, plus token counters. A
                          call where the callee never spoke gets only `summary`,
                          `classification`, `key_points`, `action_items` and
                          `call_disconnect_reason`.
                        example:
                          summary: Priya confirmed she will pay the EMI on 5 October.
                          key_points:
                            - EMI due on 5 October
                            - Customer will pay on time
                          action_items: []
                          classification: promise_to_pay
                          sentiment: positive
                          sentiment_reason: The customer was cooperative.
                          callback_requested: false
                          callback_requested_time: null
                          callback_requested_via_human_agent: false
                          call_disconnect_reason: agent_hangup
                          timezone: Asia/Kolkata
                      client_analysis:
                        type: object
                        description: >-
                          Your Advanced Analysis results, with
                          `send_analysis=true`.
                        example:
                          emi_payment_date: '2026-10-05'
                          payment_intent: will_pay
                      metrics:
                        type: array
                        description: Eval results for the call, with `call_metrics=true`.
                        items:
                          type: object
                          properties:
                            metric_id:
                              type: string
                            metric_run_id:
                              type: string
                            metric_name:
                              type: string
                              example: instruction_following
                            output_type:
                              type: string
                            score:
                              type: number
                            explanation:
                              type: string
                            raw_data:
                              type: object
                              nullable: true
                            violations:
                              type: array
                              nullable: true
                              items: {}
                            created_at:
                              type: string
                              format: date-time
              examples:
                basic_response:
                  summary: Basic call details (send_analysis=false)
                  value:
                    status: success
                    data:
                      id: 550e8400-e29b-41d4-a716-446655440000
                      call_direction: outbound
                      call_status: completed
                      call_sub_status: ACCEPTED
                      from_number: '+1234567890'
                      to_number: '+14155550123'
                      callee_name: John Doe
                      agent_id: agent-123-456
                      initiation_time: '2024-01-15T14:30:00Z'
                      recording_url: https://example.com/recordings/call-123.mp3
                      transcription_url: >-
                        [{"bot": "Hi Priya, this is Asha from Acme Lending. Is
                        this a good time to talk about your EMI?"}, {"user":
                        "Yes, go ahead."}]
                with_analysis:
                  summary: Call details with analysis (send_analysis=true)
                  value:
                    status: success
                    data:
                      id: 550e8400-e29b-41d4-a716-446655440000
                      call_direction: outbound
                      call_status: completed
                      call_sub_status: ACCEPTED
                      from_number: '+1234567890'
                      to_number: '+14155550123'
                      callee_name: John Doe
                      agent_id: agent-123-456
                      initiation_time: '2024-01-15T14:30:00Z'
                      recording_url: https://example.com/recordings/call-123.mp3
                      transcription_url: >-
                        [{"bot": "Hi Priya, this is Asha from Acme Lending. Is
                        this a good time to talk about your EMI?"}, {"user":
                        "Yes, go ahead."}]
                      platform_analysis:
                        summary: Priya confirmed she will pay the EMI on 5 October.
                        key_points:
                          - EMI due on 5 October
                          - Customer will pay on time
                        action_items: []
                        classification: promise_to_pay
                        sentiment: positive
                        sentiment_reason: The customer was cooperative.
                        callback_requested: false
                        callback_requested_time: null
                        callback_requested_via_human_agent: false
                        call_disconnect_reason: agent_hangup
                        timezone: Asia/Kolkata
                      client_analysis:
                        emi_payment_date: '2026-10-05'
                        payment_intent: will_pay
        '401':
          description: Unauthorized - Invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Invalid credentials
        '404':
          description: Not Found - The call does not exist.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Call not found
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: An unexpected error occurred. Please try again later.

````

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