# oRPC ## Docs - [@orpc/client](https://mintlify.wiki/middleapi/orpc/api-reference/client.md): Complete API reference for the @orpc/client package — creating type-safe clients, links, and error utilities. - [@orpc/contract](https://mintlify.wiki/middleapi/orpc/api-reference/contract.md): Complete API reference for the @orpc/contract package — defining API contracts independently of implementation. - [@orpc/openapi](https://mintlify.wiki/middleapi/orpc/api-reference/openapi.md): Complete API reference for the @orpc/openapi package — OpenAPI spec generation, OpenAPI-compatible HTTP handlers, and operation customization. - [@orpc/otel](https://mintlify.wiki/middleapi/orpc/api-reference/otel.md): Complete API reference for @orpc/otel — OpenTelemetry instrumentation for oRPC servers and clients. - [@orpc/react](https://mintlify.wiki/middleapi/orpc/api-reference/react.md): Complete API reference for @orpc/react — React Server Actions integration and form utilities. - [@orpc/server](https://mintlify.wiki/middleapi/orpc/api-reference/server.md): Complete API reference for the @orpc/server package — building procedures, routers, middleware, and server handlers. - [@orpc/tanstack-query](https://mintlify.wiki/middleapi/orpc/api-reference/tanstack-query.md): Complete API reference for @orpc/tanstack-query — TanStack Query integration with type-safe query, infinite, and mutation utilities. - [Error handling](https://mintlify.wiki/middleapi/orpc/client/error-handling.md): Handle typed and untyped errors from oRPC procedures using ORPCError, isDefinedError, and the safe() helper. - [Links](https://mintlify.wiki/middleapi/orpc/client/links.md): Configure how the oRPC client communicates with your server using RPCLink, DynamicLink, and plugins. - [Client overview](https://mintlify.wiki/middleapi/orpc/client/overview.md): Consume your oRPC API from any client with full end-to-end type safety. - [React Query](https://mintlify.wiki/middleapi/orpc/client/react-query.md): Integrate oRPC with TanStack Query in React using @orpc/react-query. - [RPC client](https://mintlify.wiki/middleapi/orpc/client/rpc-client.md): Create a fully typed proxy client with createORPCClient and createSafeClient. - [Solid Query](https://mintlify.wiki/middleapi/orpc/client/solid-query.md): Integrate oRPC with TanStack Query in SolidJS using @orpc/solid-query. - [Svelte Query](https://mintlify.wiki/middleapi/orpc/client/svelte-query.md): Integrate oRPC with TanStack Query in Svelte using @orpc/svelte-query. - [SWR](https://mintlify.wiki/middleapi/orpc/client/swr.md): Integrate oRPC with SWR in React using @orpc/experimental-react-swr. - [TanStack Query](https://mintlify.wiki/middleapi/orpc/client/tanstack-query.md): Use @orpc/tanstack-query to integrate oRPC with TanStack Query across React, Vue, Solid, Svelte, and Angular. - [Vue Colada](https://mintlify.wiki/middleapi/orpc/client/vue-colada.md): Integrate oRPC with Pinia Colada using @orpc/vue-colada. - [Vue Query](https://mintlify.wiki/middleapi/orpc/client/vue-query.md): Integrate oRPC with TanStack Query in Vue using @orpc/vue-query. - [Context](https://mintlify.wiki/middleapi/orpc/concepts/context.md): Context is request-scoped data that flows through the middleware chain and into your procedure handlers. - [Error handling](https://mintlify.wiki/middleapi/orpc/concepts/error-handling.md): oRPC provides typed errors, error maps, and a safe() helper so you can handle failures with the same type safety as your procedure outputs. - [Lazy routers](https://mintlify.wiki/middleapi/orpc/concepts/lazy-router.md): Lazy routers defer loading a sub-router until the first request hits it, reducing cold start times in serverless and edge environments. - [Middleware](https://mintlify.wiki/middleapi/orpc/concepts/middleware.md): Middleware intercepts procedure calls to share logic across procedures — authentication, logging, context enrichment, and more. - [Procedures](https://mintlify.wiki/middleapi/orpc/concepts/procedures.md): A procedure is a single API operation — an async function with a typed input, typed output, and typed errors. - [Routers](https://mintlify.wiki/middleapi/orpc/concepts/routers.md): A router is a plain object that groups procedures into a type-safe hierarchy. It is the entry point for your server and client. - [Introduction](https://mintlify.wiki/middleapi/orpc/introduction.md): Typesafe APIs Made Simple — oRPC is a powerful combination of RPC and OpenAPI. - [Customization](https://mintlify.wiki/middleapi/orpc/openapi/customization.md): Customize OpenAPI operation objects per-procedure using oo.spec(), route metadata, and error map overrides. - [Generating an OpenAPI Spec](https://mintlify.wiki/middleapi/orpc/openapi/generating-spec.md): Use OpenAPIGenerator to produce a fully valid OpenAPI 3.1.1 document from any oRPC router or contract. - [OpenAPI Overview](https://mintlify.wiki/middleapi/orpc/openapi/overview.md): Generate OpenAPI specifications and serve OpenAPI-compatible endpoints with oRPC's built-in first-class support. - [Schema Converters](https://mintlify.wiki/middleapi/orpc/openapi/schema-converters.md): Schema converters translate your validation schemas into JSON Schema for OpenAPI spec generation. - [ArkType Schema Converter](https://mintlify.wiki/middleapi/orpc/openapi/schemas/arktype.md): Use @orpc/arktype to convert ArkType schemas into JSON Schema for OpenAPI spec generation. - [Valibot Schema Converter](https://mintlify.wiki/middleapi/orpc/openapi/schemas/valibot.md): Use @orpc/valibot to convert Valibot schemas into JSON Schema for OpenAPI spec generation. - [Zod Schema Converter](https://mintlify.wiki/middleapi/orpc/openapi/schemas/zod.md): Use @orpc/zod to convert Zod schemas into JSON Schema for OpenAPI spec generation, plus extra schemas for File, Blob, URL, and more. - [Serving an API UI](https://mintlify.wiki/middleapi/orpc/openapi/serving-ui.md): Use OpenAPIHandler and OpenAPIReferencePlugin to serve your API as a standard HTTP endpoint and render interactive documentation. - [Quickstart](https://mintlify.wiki/middleapi/orpc/quickstart.md): Get up and running with oRPC in minutes. Define your router, start your server, and call your API with full type safety. - [AWS Lambda Adapter](https://mintlify.wiki/middleapi/orpc/server/adapters/aws-lambda.md): Serve oRPC on AWS Lambda using API Gateway v2 streaming responses. - [Cloudflare Adapter](https://mintlify.wiki/middleapi/orpc/server/adapters/cloudflare.md): Deploy oRPC on Cloudflare Workers and Durable Objects using the fetch adapter. - [Fastify Adapter](https://mintlify.wiki/middleapi/orpc/server/adapters/fastify.md): Serve oRPC with the Fastify framework. - [Fetch Adapter](https://mintlify.wiki/middleapi/orpc/server/adapters/fetch.md): Serve oRPC over any fetch-compatible runtime — Cloudflare Workers, Deno, Bun, and more. - [Node.js Adapter](https://mintlify.wiki/middleapi/orpc/server/adapters/node.md): Serve oRPC with the built-in Node.js HTTP server. - [Context](https://mintlify.wiki/middleapi/orpc/server/context.md): Pass request-scoped data through the oRPC call stack using typed context. - [Defining a Contract](https://mintlify.wiki/middleapi/orpc/server/contract/defining.md): Use the oc builder from @orpc/contract to declare your API shape without any implementation. - [Implementing a Contract](https://mintlify.wiki/middleapi/orpc/server/contract/implementing.md): Use implement() from @orpc/server to build a type-checked implementation of a contract router. - [Contract-First Overview](https://mintlify.wiki/middleapi/orpc/server/contract/overview.md): Define your API shape once, share it across servers and clients, and implement it with full type safety. - [Errors](https://mintlify.wiki/middleapi/orpc/server/errors.md): Typed, serializable error handling with ORPCError and typed error maps. - [Middleware](https://mintlify.wiki/middleapi/orpc/server/middleware.md): Intercept the procedure pipeline to authenticate, log, transform context, and more. - [NestJS](https://mintlify.wiki/middleapi/orpc/server/nestjs.md): Integrate oRPC with NestJS using ORPCModule and the @Implement decorator. - [OpenTelemetry](https://mintlify.wiki/middleapi/orpc/server/opentelemetry.md): Instrument oRPC with distributed tracing using @orpc/otel and the OpenTelemetry SDK. - [Server Overview](https://mintlify.wiki/middleapi/orpc/server/overview.md): Introduction to @orpc/server — the package for building type-safe RPC APIs and implementing contracts. - [Batch Plugin](https://mintlify.wiki/middleapi/orpc/server/plugins/batch.md): Combine multiple RPC requests into a single HTTP call with the BatchHandlerPlugin. - [CORS Plugin](https://mintlify.wiki/middleapi/orpc/server/plugins/cors.md): Add Cross-Origin Resource Sharing headers to oRPC responses. - [CSRF Protection Plugin](https://mintlify.wiki/middleapi/orpc/server/plugins/csrf-protection.md): Prevent cross-site request forgery with SimpleCsrfProtectionHandlerPlugin. - [Response & Request Headers Plugins](https://mintlify.wiki/middleapi/orpc/server/plugins/response-headers.md): Access and modify HTTP headers from within oRPC procedures using ResponseHeadersPlugin and RequestHeadersPlugin. - [Procedures](https://mintlify.wiki/middleapi/orpc/server/procedures.md): Define typed, validated RPC procedures with inputs, outputs, errors, and handlers. - [Routers](https://mintlify.wiki/middleapi/orpc/server/routers.md): Compose procedures into type-safe, nested router objects. - [Server Actions](https://mintlify.wiki/middleapi/orpc/server/server-actions.md): Use oRPC procedures as Next.js Server Actions with full type safety and structured error handling. - [Streaming & SSE](https://mintlify.wiki/middleapi/orpc/server/streaming-sse.md): Send real-time, type-safe streaming responses using eventIterator and EventPublisher. - [WebSockets](https://mintlify.wiki/middleapi/orpc/server/websockets.md): Add real-time bidirectional communication to your oRPC server with WebSocket adapters. - [Why oRPC](https://mintlify.wiki/middleapi/orpc/why-orpc.md): How oRPC compares to tRPC and ts-rest, and what makes it the right choice for APIs that need both type safety and OpenAPI. ## OpenAPI Specs - [openapi](https://mintlify.wiki/middleapi/orpc/api-reference/openapi.json)