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

# Run Evaluator VAPI WebRTC

> Execute evaluators against a VAPI agent over WebRTC. Requires `vapi_assistant_id` and VAPI credentials configured on the agent.



## OpenAPI

````yaml post /test_framework/v1/scenarios/run_scenarios_vapi_webrtc/
openapi: 3.1.0
info:
  title: Cekura API
  version: v1
  description: >-
    Complete API documentation for the Cekura platform. This API provides
    endpoints for testing, observing, and evaluating AI voice agents — including
    managing agents, running evaluators, defining metrics, and analyzing call
    quality.
servers:
  - url: https://api.cekura.ai
security: []
paths:
  /test_framework/v1/scenarios/run_scenarios_vapi_webrtc/:
    post:
      tags:
        - Evaluators
      summary: Run evaluators against a VAPI WebRTC agent
      description: >-
        VAPI WEBRTC VOICE RUN: Execute evaluators against a VAPI agent over
        WebRTC. Required: `vapi_assistant_id` (the VAPI assistant). The agent
        (looked up via `agent_id` or inferred from the first scenario) must have
        VAPI credentials configured.


        **Cost:** voice-simulation rate per run.

        **Run-count math:** total runs = `len(scenarios) × frequency`.


        **When to use this vs others** (pick the endpoint matching the agent's
        configured connection — check `aiagents_retrieve`):

        - `scenarios_run_voice` — phone / SIP voice run (no provider WebRTC
        needed)

        - `scenarios_run_text` — text/SMS/chat (cheaper)

        - `scenarios_run_retell_webrtc` — Retell agents over WebRTC

        - `scenarios_run_elevenlabs` — ElevenLabs Conversational agents

        - `scenarios_run_pipecat_v2` — Pipecat Cloud (project credentials, v2)

        - `scenarios_run_livekit_v2` — LiveKit (project credentials, v2)
      operationId: scenarios-run-vapi-webrtc_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunScenariosVapiWebRTCRequest'
            examples:
              VAPIWebRTCRun:
                value:
                  agent_id: 12
                  scenarios:
                    - 101
                    - 102
                  vapi_assistant_id: asst_abc123
                  frequency: 1
                summary: VAPI WebRTC run
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RunScenariosVapiWebRTCRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RunScenariosVapiWebRTCRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: ID of the result
                  agent:
                    type: integer
                    description: ID of the agent
                  status:
                    type: string
                    enum:
                      - pending
                      - running
                      - completed
                      - failed
                    description: Status of the result
                  run_as_text:
                    type: boolean
                    description: Whether the scenario ran as text or not
                    example: false
                  runs:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: ID of the run
                        status:
                          type: string
                          enum:
                            - pending
                            - running
                            - completed
                            - failed
                          description: Status of the run
                        scenario:
                          type: integer
                          description: ID of the scenario
                        number:
                          type: string
                          description: >-
                            For outbound runs (agent.inbound=False). The given
                            number that must be called from the phone number
                            configured in the cekura agent.
                          example: '+11234567890'
                        inbound_number:
                          type:
                            - string
                            - 'null'
                          description: >-
                            For inbound runs (agent.inbound=True). The agent's
                            configured phone number will receive calls from this
                            number.
                          example: '+11234567890'
                        scenario_name:
                          type: string
                          description: Name of the scenario
                        test_profile_data:
                          type:
                            - object
                            - 'null'
                          description: >-
                            Details of the test profile associated with this run
                            scenario
                    examples:
                      - id: 274
                        status: pending
                        scenario: 1
                        number: null
                        inbound_number: '+11234567890'
                        scenario_name: Customer Support Call (Agent Inbound = True)
                        test_profile_data: null
                      - id: 275
                        status: pending
                        scenario: 2
                        number: '+11234567890'
                        inbound_number: null
                        scenario_name: Outbound Sales Call (Agent Inbound = False)
                        test_profile_data: null
                  created_at:
                    type: string
                    format: date-time
                    example: '2025-02-25T21:00:01.990052Z'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  field_name:
                    type: array
                    items:
                      type: string
          description: ''
      security:
        - api_key: []
components:
  schemas:
    RunScenariosVapiWebRTCRequest:
      type: object
      properties:
        scenarios:
          type: array
          items:
            type: integer
          description: List of scenario IDs to run
        vapi_assistant_id:
          type: string
          description: The VAPI assistant ID to test against
        agent_id:
          type: integer
          description: Agent ID (optional if scenarios all belong to one agent)
        project_id:
          type: integer
        frequency:
          type: integer
          default: 1
        name:
          type: string
        concurrency_limit:
          type: integer
      required:
        - scenarios
        - vapi_assistant_id
  securitySchemes:
    api_key:
      type: apiKey
      name: X-CEKURA-API-KEY
      in: header
      description: >-
        API Key Authentication. It should be included in the header of each
        request.

````