> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # setPosition > Sets the participant's position in the video layout. ```ts setPosition(value): Promise ``` Sets the participant's position in the video layout. Requires the `member.position` capability. A resolved promise does not guarantee a visible change: the backend silently returns a no-op success for non-conference targets. ## **Parameters** **`value`** `VideoPosition` — required The [`VideoPosition`](/docs/browser-sdk/v4/reference/type-aliases/video-position) to assign (e.g. `'auto'`, `'reserved-0'`). --- ## **Returns** `Promise` ## **Throws** [`ParticipantNotReadyError`](/docs/browser-sdk/v4/reference/errors/participant-not-ready-error) — this member's call context has not arrived yet, so there is no [`target`](/docs/browser-sdk/v4/reference/participant/target) to address the request to. ## **Examples** ```ts await participant.setPosition(value); ``` ## **See** * [`position$`](/docs/browser-sdk/v4/reference/participant/position\$) — reactive layer position. * [`WebRTCCall.layoutLayers$`](/docs/browser-sdk/v4/reference/webrtc-call/layout-layers\$) — all positions for the active layout. * Gated by [`SelfCapabilities.self.position`](/docs/browser-sdk/v4/reference/self-capabilities/self\$) (for self) or [`SelfCapabilities.member.position`](/docs/browser-sdk/v4/reference/self-capabilities/member\$) (for moderation). > Sets the participant's position in the video layout.