Skip to content
oRPC
Esc
navigateopen⌘Jpreview
On this page

Valibot Integration

Valibot implements Standard Schema, so you can use it directly in your procedures without any extra setup. On top of that, @orpc/valibot provides a dedicated JSON Schema converter.

Installation

npm install @orpc/valibot@beta valibot
pnpm add @orpc/valibot@beta valibot
yarn add @orpc/valibot@beta valibot
bun add @orpc/valibot@beta valibot

JSON Schema Converter

ValibotToJsonSchemaConverter wraps Valibot’s built-in toJsonSchema and adds support for additional types such as v.bigint(), v.date(), v.set(), and v.map(). Use it with tools such as the OpenAPI Generator and Smart Coercion. It accepts the same options as Valibot’s toJsonSchema, see the source code for implementation details.

import { OpenAPIGenerator } from '@orpc/openapi'
import { ValibotToJsonSchemaConverter } from '@orpc/valibot'

const generator = new OpenAPIGenerator({
  converters: [new ValibotToJsonSchemaConverter()],
})

Reusable Schemas

A common pattern is defining reusable or recursive schemas via definitions. The converter preserves them in $defs, which OpenAPIGenerator can then hoist into components.schemas. For more on how definitions work in Valibot, see Valibot JSON Schema Definitions.

import * as v from 'valibot'

const PlanetSchema = v.object({
  id: v.string(),
  name: v.string(),
})

const generator = new OpenAPIGenerator({
  converters: [
    new ValibotToJsonSchemaConverter({
      definitions: { PlanetSchema },
    }),
  ],
})

Last updated on August 6, 2026

Was this page helpful?