---
title: "Run evaluators against a Pipecat Cloud deployment (project credentials, v2)"
method: POST
path: "/test_framework/v2/scenarios/run_scenarios_pipecat_v2/"
tags: ["Evaluators"]
---

# Run evaluators against a Pipecat Cloud deployment (project credentials, v2)

`POST /test_framework/v2/scenarios/run_scenarios_pipecat_v2/`

## Request

- Base URL: `https://api.cekura.ai`
- URL: `https://api.cekura.ai/test_framework/v2/scenarios/run_scenarios_pipecat_v2/`
- Auth: one of:
  - API key in header `X-CEKURA-API-KEY`
  - HTTP bearer
  - HTTP bearer

PIPECAT CLOUD VOICE RUN (project credentials, v2): Execute evaluators against an agent deployed on Pipecat Cloud using credentials configured at the project level. Cekura creates the sessions; you don't pass per-scenario room URLs (that's the v1 endpoint). Requires Pipecat Cloud credentials with `pipecat_agent_name` set on the agent or project.

**Cost:** voice-simulation rate per run.
**Run-count math:** total runs = `len(scenarios) × frequency`.

**Per-request `session_config` override** is allowed; merges over agent defaults.

**When to use this vs others** (pick the endpoint matching the agent's configured connection — check `aiagents_retrieve`):
- `scenarios_run_pipecat_v1` — manual room URLs per scenario
- `scenarios_run_voice` — phone / SIP voice run
- `scenarios_run_livekit_v2` — LiveKit (project credentials, v2)

## Request body

- SchemaPostRunScenariosPipecatV2: Schema for the run_scenarios_pipecat_v2 endpoint with automated Pipecat Cloud integration. Uses Pipecat Cloud SDK to automatically create sessions and Daily.co rooms.
  - `name` string, nullable: Optional name for the scenario result
  - `frequency` integer: Number of times to run each scenario (default: 1)
  - `scenarios` SchemaPipecatV2Scenario[], required: List of scenarios to run with automated Pipecat Cloud session creation
    - `scenario` integer, required: ID of the scenario to run
    - `publish_data_message` unknown
  - `agent` integer, nullable: Cekura agent ID to run against. Overrides the scenarios' agent.
  - `personality_ids` integer[], nullable: List of personality IDs to override for this run. If not provided, uses the scenario's default personality.
  - `test_profile_ids` integer[], nullable: List of test profile IDs to override for this run. If not provided, uses the scenario's default test profile.
  - `mock_tool_names` string[], nullable: Names of mock tools to activate for this run. Omit (or send null) to mock every tool configured on the agent; send an empty list to mock none so every tool keeps its original endpoint; send specific names to mock only those.
  - `personality_id` integer, nullable: Single personality ID override. Merged into personality_ids; prefer personality_ids for multiple.
  - `test_profile_id` integer, nullable: Single test profile ID override. Merged into test_profile_ids; prefer test_profile_ids for multiple.
  - `pipecat_data` SchemaPipecatV2Data: Per-run Pipecat Cloud overrides. Credentials are read from the agent/project ProviderCredential.
    - `pipecat_agent_name` string, nullable: Pipecat Cloud agent name. Overrides the agent/project saved pipecat_agent_name.
    - `config` unknown
    - `room_properties` unknown
  - `concurrency_limit` integer, nullable: Optional cap on how many of this run's calls execute concurrently.
  - `calls_per_second` number, double, nullable: Most calls started per second for this run, a number from 0.1 to 4 (e.g. 0.5 starts one call every 2 seconds). Leave unset for no limit.

## Response `200`

- object
  - `id` integer: ID of the result
  - `agent` integer: ID of the agent
  - `status` 'running' | 'completed' | 'failed' | 'pending' | 'in_progress' | 'evaluating' | 'in_queue' | 'timeout' | 'cancelled' | 'scaling_up': Status of the result. Poll until it is `completed`, `failed`, `timeout` or `cancelled`. It stays non-terminal until every run has ended, then becomes `completed` if any run completed — even if runs failed their checks or others errored.
  - `run_as_text` boolean: Whether the scenario ran as text or not
  - `runs` object[]
    - `id` integer: ID of the run
    - `status` 'running' | 'completed' | 'failed' | 'pending' | 'in_progress' | 'evaluating' | 'in_queue' | 'timeout' | 'cancelled' | 'scaling_up': Status of the run
    - `scenario` integer: ID of the scenario
    - `number` string: For outbound runs (agent.inbound=False). The given number that must be called from the phone number configured in the cekura agent.
    - `inbound_number` string, nullable: For inbound runs (agent.inbound=True). The agent's configured phone number will receive calls from this number.
    - `scenario_name` string: Name of the scenario
    - `test_profile_data` object, nullable: Details of the test profile associated with this run scenario
    - `outbound_dial_window_opens_at` string, date-time, nullable: When the outbound dial window opened (run transitioned to pending/waiting-for-call). Null until dispatched.
    - `outbound_dial_window_seconds` integer, nullable: Duration of the outbound dial window in seconds.
    - `outbound_dial_window_closes_at` string, date-time, nullable: Deadline by which your agent must dial the outbound number (opens_at + outbound_dial_window_seconds). Dials after this are dropped and the run returns status: timeout.
  - `created_at` string, date-time

## Other responses

- `400`

## Changes

- **2026-11-03** `a6fb6a739212`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cekura/apis/cekura-api/changes/test_framework/v2/scenarios/run_scenarios_pipecat_v2/post.md)

---

[API](https://skmtc.dev/cekura/apis/cekura-api.md) - [All operations](https://skmtc.dev/cekura/apis/cekura-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cekura/apis/cekura-api/revisions/a6fb6a739212?raw)
