> 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. # execute > Executes a raw JSON-RPC request on the client session. ```ts execute(request, options?): Promise ``` Executes a raw JSON-RPC request on the client session. Lower-level than [executeMethod](#executemethod) — allows full control over the RPC request structure. ## **Type Parameters** | Type Parameter | Default type | | ------------------------------- | ----------------- | | `T` *extends* `JSONRPCResponse` | `JSONRPCResponse` | ## **Parameters** **`request`** `JSONRPCRequest` — required Complete JSON-RPC request object. See [`JSONRPCRequest`](/docs/browser-sdk/v4/reference/interfaces/jsonrpc-request). --- **`options`** `PendingRPCOptions` Optional RPC execution options (timeout, etc.). See [`PendingRPCOptions`](/docs/browser-sdk/v4/reference/interfaces/pending-rpc-options). --- ## **Returns** `Promise` The RPC response. ## **Throws** If the RPC call returns an error response. ## **Examples** ### Send a raw JSON-RPC request ```ts const response = await call.execute({ jsonrpc: '2.0', id: crypto.randomUUID(), method: 'call.mute', params: { call_id: call.id }, }); ``` ## **See** * [`executeMethod`](/docs/browser-sdk/v4/reference/webrtc-call/execute-method) — higher-level wrapper for member-targeted Verto methods. > Executes a raw JSON-RPC request on the client session.