---
title: "Create a new browser participant"
method: POST
path: "/openvidu-browser/streamManager"
tags: ["Stream Manager"]
---

# Create a new browser participant

`POST /openvidu-browser/streamManager`

## Request body

- CreateUserBrowser
  - `openviduUrl` string, uri, required
  - `token` string
  - `properties` UserJoinProperties, required
    - `userId` string, required
    - `sessionName` string, required
    - `role` 'PUBLISHER' | 'SUBSCRIBER', required
    - `audio` boolean, required
    - `video` boolean, required
    - `resolution` '640x480' | '1280x720' | '1920x1080', required
    - `frameRate` integer, required
    - `browser` 'chrome' | 'firefox' | 'custom-emulated', required
    - `recording` boolean
    - `showVideoElements` boolean
    - `headless` boolean
    - `recordingMetadata` string
    - `mediaRecorders` boolean
    - `disableAutoSubscribeForPublishers` boolean — Debug-only. For PUBLISHER participants, disables auto-subscription so the publisher doesn't also subscribe to other participants' tracks. For custom-emulated publishers it omits --auto-subscribe from the underlying `lk room join` command; for real-browser publishers it sets autoSubscribe=false in the LiveKit room connect options. Has no effect on SUBSCRIBER participants.

## Response `200`

Stream manager created successfully

- CreateUserBrowserResponse
  - `connectionId` string
  - `streams` integer
  - `participants` integer
  - `workerCpuUsage` number
  - `sessionId` string
  - `userId` string

## Other responses

- `400` — Invalid request parameters
- `500` — Internal server error

---

[API](https://skmtc.dev/openvidu/apis/browser-emulator-api.md) · [All operations](https://skmtc.dev/openvidu/apis/browser-emulator-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openvidu/browser-emulator-api/revisions/18732332a4cb/schema)
