> 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. # executeMethod > Executes a Verto RPC method targeting a specific participant. ```ts executeMethod(target, method, args): Promise ``` Executes a Verto RPC method targeting a specific participant. Constructs call context (node\_id, call\_id, member\_id) and sends the RPC request. This is the transport behind every `Call` and `Participant` control method — reach for those first; use `executeMethod` only for verbs the SDK does not wrap. ## **Type Parameters** | Type Parameter | Default type | | ------------------------------- | ----------------- | | `T` *extends* `JSONRPCResponse` | `JSONRPCResponse` | ## **Parameters** **`target`** `string | MemberTarget` — required A [`MemberTarget`](/docs/browser-sdk/v4/reference/participant/target) triple, or the **local** member's ID string for self-operations. Any other string is rejected: a bare member ID cannot carry a remote member's own call context, and the backend routes by that context. For a remote member, pass [`participant.target`](/docs/browser-sdk/v4/reference/participant/target). The examples below require a value typed as `WebRTCCall`. The [`Call`](/docs/browser-sdk/v4/reference/interfaces/call) interface that [`dial()`](/docs/browser-sdk/v4/reference/signalwire/dial) returns declares `target` as `string` only, so a `MemberTarget` needs a narrowed type — prefer the [`Participant`](/docs/browser-sdk/v4/reference/participant) control methods, which build the target for you. --- **`method`** `string` — required Verto method name (e.g. `'call.mute'`, `'call.member.remove'`). --- **`args`** `Record` — required Parameters for the RPC method. --- ## **Returns** `Promise` The RPC response. ## **Throws** * [`CallNotReadyError`](/docs/browser-sdk/v4/reference/errors/call-not-ready-error) — the call has no self member context yet. * `InvalidParams` — a string `target` is not the local member's ID. * `JSONRPCError` — the RPC call returned an error. ## **Examples** ### Mute a remote member ```ts await call.executeMethod(participant.target, 'call.mute', { channels: ['audio'] }); ``` ### Remove a member from the call ```ts await call.executeMethod(participant.target, 'call.member.remove', {}); ``` ## **See** * [`execute`](/docs/browser-sdk/v4/reference/webrtc-call/execute) — lower-level raw JSON-RPC send. > Executes a Verto RPC method targeting a specific participant.