AI SDK Core: zodSchema

ID: 1564https://ai-sdk.dev/docs/reference/ai-sdk-core/zod-schema
Source

zodSchema()

zodSchema is a helper function that converts a Zod schema into a JSON schema object that is compatible with the AI SDK. It takes a Zod schema and optional configuration as inputs, and returns a typed schema.

You can use it to generate structured data and in tools.

Example with recursive schemas

import { zodSchema } from 'ai';
import { z } from 'zod';

// Define a base category schema
const baseCategorySchema = z.object({
  name: z.string(),
});

// Define the recursive Category type
type Category = z.infer<typeof baseCategorySchema> & {
  subcategories: Category[];
};

// Create the recursive schema using z.lazy
const categorySchema: z.ZodType<Category> = baseCategorySchema.extend({
  subcategories: z.lazy(() => categorySchema.array()),
});

// Create the final schema with useReferences enabled for recursive support
const mySchema = zodSchema(
  z.object({
    category: categorySchema,
  }),
  { useReferences: true },
);

Import

<Snippet text={import { zodSchema } from "ai"} prompt={false} />

API Signature

Parameters

<PropertiesTable content={[ { name: 'zodSchema', type: 'z.Schema', description: 'The Zod schema definition.', }, { name: 'options', type: 'object', description: 'Additional options for the schema conversion.', properties: [ { type: 'object', parameters: [ { name: 'useReferences', isOptional: true, type: 'boolean', description: 'Enables support for references in the schema. This is required for recursive schemas, e.g. with z.lazy. However, not all language models and providers support such references. Defaults to false.', }, ], }, ], }, ]} />

Returns

A Schema object that is compatible with the AI SDK, containing both the JSON schema representation and validation functionality.