# Function: fetchRequestHandler()

> 

> **fetchRequestHandler**\<`TRouter`\>(`opts`): `Promise`\<`Response`\>

Defined in: [packages/server/src/adapters/fetch/fetchRequestHandler.ts:35](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/adapters/fetch/fetchRequestHandler.ts#L35)

Handles a Fetch API `Request` for a router and returns its `Response`.
Works in edge runtimes, Deno, Bun, Cloudflare Workers and Next.js route
handlers.

## Type Parameters

| Type Parameter |
| ------ |
| `TRouter` *extends* [`AnyTRPCRouter`](https://trpc.io/docs/typedoc/server/index/type-aliases/AnyTRPCRouter.md) |

## Parameters

| Parameter | Type |
| ------ | ------ |
| `opts` | [`FetchHandlerRequestOptions`](https://trpc.io/docs/typedoc/server/adapters/fetch/type-aliases/FetchHandlerRequestOptions.md)\<`TRouter`\> |

## Returns

`Promise`\<`Response`\>

## Example

```ts
const handler = (req: Request) =>
  fetchRequestHandler({ endpoint: '/trpc', req, router: appRouter });
```

## See

https://trpc.io/docs/server/adapters/fetch
