--- title: routeRSCServerRequest unstable: true --- # unstable_routeRSCServerRequest [MODES: data]

This API is experimental and subject to breaking changes in minor/patch releases. Please use with caution and pay **very** close attention to release notes for relevant changes. ## Summary [Reference Documentation ↗](https://api.reactrouter.com/v7/functions/react_router.unstable_routeRSCServerRequest.html) Routes the incoming [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request) to the [RSC](https://react.dev/reference/rsc/server-components) server and appropriately proxies the server response for data / resource requests, or renders to HTML for a document request. ```tsx import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr"; import * as ReactDomServer from "react-dom/server.edge"; import { unstable_RSCStaticRouter as RSCStaticRouter, unstable_routeRSCServerRequest as routeRSCServerRequest, } from "react-router"; routeRSCServerRequest({ request, serverResponse, createFromReadableStream, async renderHTML(getPayload) { const payload = getPayload(); return await renderHTMLToReadableStream( , { bootstrapScriptContent, formState: await payload.formState, } ); }, }); ``` ## Signature ```tsx async function routeRSCServerRequest({ request, serverResponse, createFromReadableStream, renderHTML, hydrate = true, }: { request: Request; serverResponse: Response; createFromReadableStream: SSRCreateFromReadableStreamFunction; renderHTML: ( getPayload: () => DecodedPayload, options: { onError(error: unknown): string | undefined; onHeaders(headers: Headers): void; }, ) => ReadableStream | Promise>; hydrate?: boolean; }): Promise ``` ## Params ### opts.createFromReadableStream Your `react-server-dom-xyz/client`'s `createFromReadableStream` function, used to decode payloads from the server. ### opts.serverResponse A Response or partial response generated by the [RSC](https://react.dev/reference/rsc/server-components) handler containing a serialized [`unstable_RSCPayload`](https://api.reactrouter.com/v7/types/react_router.unstable_RSCPayload.html). ### opts.hydrate Whether to hydrate the server response with the RSC payload. Defaults to `true`. ### opts.renderHTML A function that renders the [`unstable_RSCPayload`](https://api.reactrouter.com/v7/types/react_router.unstable_RSCPayload.html) to HTML, usually using a [``](../rsc/RSCStaticRouter). ### opts.request The request to route. ## Returns A [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) that either contains the [RSC](https://react.dev/reference/rsc/server-components) payload for data requests, or renders the HTML for document requests.