@kubb/plugin-zod#
@kubb/plugin-zod turns your OpenAPI schemas into Zod v4 schemas. Use them to validate API responses at runtime, build form schemas, or feed router libraries that take Zod (tRPC, Hono, Elysia).
Pair it with a client plugin (@kubb/plugin-axios or @kubb/plugin-fetch) and set the client's validator: 'zod' to validate every response.
Installation#
::: code-group
bun add -d @kubb/plugin-zod
pnpm add -D @kubb/plugin-zod
npm install --save-dev @kubb/plugin-zod
yarn add -D @kubb/plugin-zod
:::
Dependencies#
Important
The generated schemas need Zod v4 or higher.
The generated schemas stand alone: they import z from your project, so add Zod to your dependencies. Set inferred: true to export a z.infer type alias next to each schema, which makes the schemas the single source of truth for types without @kubb/plugin-ts.
Example#
::: code-group
import { defineConfig } from 'kubb'
import { pluginZod } from '@kubb/plugin-zod'
export default defineConfig({
input: './petStore.yaml',
output: { path: './src/gen' },
plugins: [
pluginZod({
output: { path: './zod', mode: 'directory' },
group: { type: 'tag', name: ({ group }) => `${group}Schemas` },
inferred: true,
importPath: 'zod',
}),
],
})
:::