@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
bun add -d @kubb/plugin-zodpnpm add -D @kubb/plugin-zodnpm install --save-dev @kubb/plugin-zodyarn add -D @kubb/plugin-zodDependencies
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
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',
}),
],
})