Use generateObject to get structured data from an LLM with the AI SDK

9/2/2025

#ai#typescript

LLMs often return free-form text, which can be hard to parse.
With the AI SDK, you can use generateObject to directly enforce a typed JSON schema — no more brittle regex or string parsing.

import { openai } from '@ai-sdk/openai';
import { generateObject } from 'ai';
import { z } from 'zod';
 
const result = await generateObject({
  model: openai('gpt-4.1'),
  schema: z.object({
    name: z.string(),
    age: z.number(),
  }), 
  prompt: "Extract the person's name and age: John is 42 years old.",
});
 
console.log(result.object);
// → { name: "John", age: 42 }

Why it’s great:

  • Enforces strict structure with Zod
  • No messy post-processing
  • Safer integration with TypeScript

Use generateObject whenever you want predictable, typed data from an LLM.

Learn more about generateObject in the AI SDK documentation.

New: Your Idea. Our Experts. We'll Build Your SaaS For You.

Our 'Done For You' service simplifies the process, taking your concept and delivering a production-ready MVP or complete SaaS solution.

Start your scalable and production-ready SaaS today

Save endless hours of development time and focus on what's important for your customers with our SaaS starter kits for Next.js, Nuxt 3 and SvelteKit

Get started

Stay up to date

Sign up for our newsletter and we will keep you updated on everything going on with supastarter.

    Use generateObject to get structured data from an LLM with the AI SDK | supastarter - SaaS starter kit for Next.js and Nuxt