---
title: "Attach a VAPI agent to a room"
method: POST
path: "/rooms/{id}/agent/vapi"
tags: ["Rooms"]
---

# Attach a VAPI agent to a room

`POST /rooms/{id}/agent/vapi`

The agent joins as a virtual participant, hearing all participants (mixed-minus-self) and speaking to everyone.

## Request body

- VAPIAgentRequest
  - `assistant_id` string, required — VAPI assistant ID
  - `first_message` string — Override the agent's first message
  - `variable_values` object — Key-value pairs passed as VAPI variable values (assistantOverrides.variableValues)
  - `api_key` string — API key override (falls back to VAPI_API_KEY env var)

## Response `200`

Agent started

- StatusResponse
  - `instance_id` string — Instance identifier
  - `status` string, required

## Other responses

- `400` — Invalid JSON or missing assistant_id
- `404` — Room not found
- `409` — Agent already attached to this room
- `503` — No VAPI API key provided

---

[API](https://skmtc.net/voiceblender/apis/voiceblender-api.md) · [All operations](https://skmtc.net/voiceblender/apis/voiceblender-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voiceblender/voiceblender-api/versions/ad30827d3b57/schema)
