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

# Re-run Analysis

> Re-run extraction, evaluation and caller sentiment on one ended call with the agent's current settings. A field or criterion removed from the agent is cleared on the call.



## OpenAPI

````yaml POST /calls/{id}/reanalyze
openapi: 3.1.0
info:
  title: RevRing Voice AI API
  description: >-
    RevRing Voice AI platform API for managing AI voice agents, phone calls, SIP
    trunks, and analytics. Build intelligent voice applications that can handle
    inbound and outbound phone calls with AI-powered conversational agents.
  version: 1.0.0
  contact:
    name: RevRing Support
    url: https://revring.ai
servers:
  - url: https://api.revring.ai/v1
    description: Production API
security:
  - apiKeyAuth: []
tags:
  - name: Messaging Connections
    description: Connect messaging providers so agents can send text messages
  - name: Messages
    description: Send text messages and read your message log
  - name: Conversations
    description: List and clear managed conversation threads
  - name: SIP Trunks
    description: Manage SIP trunks for connecting agents to the phone network
  - name: Agents
    description: Manage AI voice agents and their configuration
  - name: Agent Folders
    description: Organize agents into folders for dashboard navigation
  - name: Calls
    description: Manage and query phone calls
  - name: Analytics
    description: Get analytics and metrics about your calls
  - name: Knowledge Bases
    description: >-
      Manage knowledge bases and sources for agent retrieval-augmented
      generation
  - name: Test Suites
    description: Manage test suites, test cases, and test runs for agent evaluation
  - name: Voices
    description: Browse the voices available to your organization for agent speech
  - name: Webhooks
    description: Webhook delivery settings for your organization
paths:
  /calls/{id}/reanalyze:
    post:
      tags:
        - Calls
      summary: Re-run Analysis
      description: >-
        Re-run extraction, evaluation and caller sentiment on one ended call
        with the agent's current settings. A field or criterion removed from the
        agent is cleared on the call.
      operationId: reanalyzeCall
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                resendWebhook:
                  type: boolean
                  default: false
                  description: Deliver the post-call webhook again with the new results
      responses:
        '200':
          description: The updated call
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Call'
        '404':
          description: not_found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
        '409':
          description: content_deleted, nothing_to_analyze or not_ended
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
components:
  schemas:
    Call:
      type: object
      description: Phone call record
      properties:
        id:
          type: string
          format: uuid
        organizationId:
          type: string
          format: uuid
        agentId:
          type: string
          format: uuid
          nullable: true
        sipTrunkId:
          type: string
          format: uuid
          nullable: true
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: Call direction
        status:
          type: string
          enum:
            - QUEUED
            - INITIATED
            - ONGOING
            - TRANSFERRED
            - COMPLETED
            - FAILED
            - CANCELED
          description: Current call status
        fromNumber:
          type: string
          description: >-
            Caller's number (E.164). `anonymous` when the caller withheld their
            caller ID on an inbound call. For web widget calls, the visitor's
            anonymous ID in the form visitor:<id>.
        toNumber:
          type: string
          description: Called number (E.164). For web widget calls, the agent ID.
        source:
          type: string
          nullable: true
          enum:
            - web_widget
            - null
          description: >-
            How the call originated. web_widget for calls started from the Web
            Widget call button; null for phone calls.
        continuedFromCallId:
          type: string
          nullable: true
          description: >-
            When a dropped web widget call was silently re-dialed, the id of the
            call this one continues; null otherwise.
        agentCallerIdName:
          type: string
          nullable: true
          description: Caller ID name shown to recipient
        agentName:
          type: string
          nullable: true
          description: Name of the agent that handled this call
        variables:
          type: object
          nullable: true
          description: Template variables used
        recordingUrl:
          type: string
          nullable: true
          description: URL to call recording (available after call ends)
        recordingOffsetSeconds:
          type: number
          nullable: true
          description: >-
            Seconds between the transcript clock's zero and the recording's
            first audio. Add transcript timestamps to this value to align them
            with recording playback. Available after the call ends; null on
            older calls.
        hangupCause:
          type: string
          nullable: true
          description: >-
            Reason call ended. Common values: USER_ENDED, END_CALL_TOOL,
            SILENCE_TIMEOUT, MAX_DURATION, VOICEMAIL_DETECTED
        errorMessage:
          type: string
          nullable: true
          description: Error message if call failed
        transcript:
          type: array
          nullable: true
          description: Conversation transcript
          items:
            type: object
        summary:
          type: string
          nullable: true
          description: AI-generated summary
        extraction:
          type: object
          nullable: true
          additionalProperties:
            nullable: true
            oneOf:
              - type: string
              - type: number
              - type: boolean
          description: >-
            Structured fields extracted after the call, keyed by the field names
            in the agent's postCallExtraction config. A field that was not
            stated on the call is null. null when the agent has no extraction
            configured or the call had no caller speech
          example:
            callback_requested: true
            preferred_day: Tuesday
            budget: 450000
        evaluation:
          type: object
          nullable: true
          additionalProperties:
            type: object
            properties:
              result:
                type: string
                enum:
                  - pass
                  - fail
                  - unknown
              rationale:
                type: string
                description: One sentence citing what in the call decided the result
            required:
              - result
              - rationale
          description: >-
            Per-criterion verdicts after the call, keyed by the criterion names
            in the agent's postCallEvaluation config. unknown means the
            transcript did not settle it. null when the agent has no evaluation
            configured or the call had no caller speech
          example:
            appointment_confirmed:
              result: pass
              rationale: The caller agreed to Tuesday at 10am and the agent confirmed it.
            callback_requested:
              result: unknown
              rationale: A callback was never discussed.
        agentRevision:
          type: integer
          nullable: true
          description: >-
            Agent version the call ran on. null for agents in auto publish mode
            (the agent as saved) and for calls made before publishing existed
        environment:
          type: string
          nullable: true
          description: Agent environment the call ran in; null means production
        campaignId:
          type: string
          nullable: true
          description: Campaign that placed the call; null otherwise
        metrics:
          type: object
          nullable: true
          description: >-
            Usage measured during the call. Present once the call has ended;
            counters that do not apply are 0.
          properties:
            llm_prompt_tokens:
              type: number
              description: Language model input tokens across all turns
            llm_prompt_cached_tokens:
              type: number
              description: >-
                Input tokens served from the prompt cache (included in
                llm_prompt_tokens)
            llm_completion_tokens:
              type: number
              description: Language model output tokens across all turns
            stt_audio_duration:
              type: number
              description: Seconds of caller audio transcribed
            tts_audio_duration:
              type: number
              description: Seconds of agent speech synthesized
            tts_characters_count:
              type: number
              description: Characters of agent speech synthesized
          additionalProperties:
            type: number
        piiRedacted:
          type: boolean
          description: >-
            True when personal details were removed from the transcript and
            summary (agent `storageMode: redact_pii`).
        initiatedAt:
          type: string
          format: date-time
          description: When call was initiated
        startedAt:
          type: string
          format: date-time
          nullable: true
          description: When call was answered (null if never answered)
        endedAt:
          type: string
          format: date-time
          nullable: true
          description: When call ended (null if still ongoing)
        durationSeconds:
          type: integer
          nullable: true
          description: Call duration in seconds (null if never answered)
        llmModel:
          type: string
          nullable: true
          enum:
            - revring-standard
            - revring-max
            - revring-ultra
            - null
          description: >-
            Language model tier the call ran on, fixed at call start. null for
            calls placed before model tiers existed (billed at the standard
            rate).
        voiceId:
          type: string
          nullable: true
          description: >-
            Voice the call ran, fixed at call start: the per-call override if
            one was sent, otherwise the agent's voice at the time. null for
            calls placed before this was recorded.
        voiceTier:
          type: string
          nullable: true
          enum:
            - standard
            - studio
            - null
          description: >-
            Tier of the voice the call ran on, fixed at call start. 'studio'
            calls are billed an additional 2 cents per minute. null for calls
            placed before voice tiers existed (billed at the regular rate).
        postCallWebhookStatus:
          type: string
          nullable: true
          enum:
            - sent
            - retrying
            - failed
            - skipped
          description: >-
            Post-call webhook delivery: sent | retrying (another attempt is
            scheduled) | failed (after the last retry) | skipped (no webhook
            URL); null before delivery was attempted
        postCallWebhookAttempts:
          type: integer
          description: >-
            Delivery attempts made so far (first send plus retries at 1m, 5m,
            30m)
        preCallWebhookStatus:
          type: string
          nullable: true
          enum:
            - sent
            - failed
            - skipped
            - null
          description: Status of pre-call webhook delivery
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        sentiment:
          type: string
          nullable: true
          enum:
            - positive
            - neutral
            - negative
            - unknown
            - null
          description: >-
            How the caller felt over the call; null when there was no caller
            speech.
      required:
        - id
        - organizationId
        - direction
        - status
        - fromNumber
        - toNumber
        - initiatedAt
        - createdAt
        - updatedAt
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key for authentication. Generate API keys from the RevRing
        dashboard.

````

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