> This page is for API Reference.

> Sarvam Voice Agents (Samvaad) is a voice AI agent platform for Indian languages: build, test and deploy AI calling agents on your own phone numbers, from ₹3 a minute. Start here: https://docs.sarvam.ai/voice-agents/why-voice-agents.
> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt. For a section index, append `/llms.txt` to any section URL (for example https://docs.sarvam.ai/voice-agents/llms.txt).
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Create Experiment Campaign

> Create a campaign that runs an experiment: send experiment_id and omit app_id and app_version.

Create a campaign that runs an experiment. This uses the same [Create campaign](/voice-agents/api/campaigns/create) endpoint. Send `experiment_id` on `app_config` and leave out `app_id` and `app_version`. Dial rate, phone numbers, retries, schedule, and the webhook are unchanged — see Create campaign for the full schema.

```
POST https://apps.sarvam.ai/api/scheduling/v1/orgs/{org_id}/workspaces/{workspace_id}/campaigns
```

Create the experiment first with [Create an experiment](/voice-agents/api/experiments/create).

## Request

```json
{
  "name": "Q1 Payment Reminders — greeting experiment",
  "description": "Split the greeting across two committed versions",
  "app_config": {
    "app_type": "agent",
    "experiment_id": "greeting-te-9f1c2a7b-4d3e",
    "attempts_per_second": 2,
    "connection_configs": [
      {
        "connection_id": "conn-xyz",
        "phone_numbers": ["+918041234567"],
        "weight": 1
      }
    ],
    "retry_config": {
      "max_retries": 3,
      "retry_interval_minutes": 30,
      "retry_on": {
        "busy": { "enabled": true },
        "no_answer": { "enabled": true },
        "short_duration": { "enabled": true, "threshold_seconds": 30 }
      }
    },
    "phone_rotation": { "agent": true },
    "webhook_config": {
      "url": "https://your-server.com/webhook",
      "metadata": { "team": "collections" }
    }
  },
  "start_timestamp": "2026-04-01T09:00:00Z",
  "end_timestamp": "2026-04-15T18:00:00Z",
  "allowed_schedule": {
    "timezone": "Asia/Kolkata",
    "allowed_start_time": "09:00",
    "allowed_end_time": "18:00",
    "allowed_days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
  }
}
```

Do not send `app_id` or `app_version` with `experiment_id`.

## Response

| Field           | Value                                      |
| --------------- | ------------------------------------------ |
| `app_id`        | The agent the experiment is testing.       |
| `app_version`   | `null`. The version is chosen per attempt. |
| `experiment_id` | The experiment you sent.                   |

## After create

The campaign stays on that experiment. A later update can change the dial plan when you resend the same `experiment_id`. It cannot switch the campaign to a single version, or to a different experiment.

For the traffic split and variant rules, see [Experiments](/voice-agents/deploy/experiments).