Skip to content

Type-Safe Structured Output Schema Generator (Zod / JSON Schema Strict Mode)

TypeScript generator converting Zod schemas into OpenAI and Anthropic JSON Schema Strict Mode formats with automated property validation.

By Gordon Geraghty·MIT Licence·Updated: 24 September 2026·INTERMEDIATE
01 Prerequisites & Architecture
Stage 01 Architecture

Type-Safe Structured Output Schema Architecture

Transforms visual field definitions into synchronized TypeScript interfaces, Zod validation schemas, and OpenAI / Anthropic strict-mode JSON schemas with additionalProperties: false enforcement.

Difficulty:Beginner Friendly
Time:10–15 mins
Required Access & Permissions:
TypeScript / Node.js Project AccessOpenAI / Anthropic API Client Access
STEP 01Visual Schema Builder
Field Definition ModelField names, types, descriptions, nullability
STEP 02Zod v3 Validator
Zod GeneratorGenerates runtime type-safe z.object validation
STEP 03JSON Schema Draft-07
Strict JSON SchemaEnforces additionalProperties: false for OpenAI Strict Mode
STEP 04OpenAI / Anthropic Tool API
LLM Structured OutputGuarantees 100% deterministic JSON response shapes
02 Interactive Configurator

Type-Safe Structured Output Schema Generator (Zod / JSON Schema Strict Mode) Configurator

Worked Example · Deterministic Calculation

Customer Sentiment Analysis — Type-Safe Strict JSON Schema & Zod Spec

Deterministic structured output schema generator for customer support sentiment analysis with strict mode enforcement.

1 Input Parameters & Assumptions

ParameterValueContext & Provenance
Schema IdentifierCustomerSentimentAnalysis Schema NameRoot schema interface name
Strict Mode EnforcementEnabled (true) Strict ModeEnforces additionalProperties: false and all fields declared in required[]
Target Properties4 Fields Propertiessentiment (enum), churnRiskScore (number), keyIssuesRaised (array), requiresManagerCallback (boolean)

2 Explicit Mathematical Formula

Schema Specification: CustomerSentimentAnalysis
Strict Mode: true (additionalProperties: false enforced across all object nodes)
Field 1: sentiment (enum: ['positive', 'neutral', 'negative', 'escalated'], required)
Field 2: churnRiskScore (number: 0.0 to 1.0, required)
Field 3: keyIssuesRaised (array of strings, required)
Field 4: requiresManagerCallback (boolean, required)
Validation Guarantee: 100% deterministic JSON output parsing across OpenAI and Anthropic APIs

3 Computed Output Metrics

Schema Formats ProducedJSON Schema & Zod TSFormatsDual export compatible with OpenAI response_format and TypeScript backends
Parsing Reliability100% Schema CompliantValidationGuarantees zero markdown backtick leakage or schema violations
Computed MetricResultInterpretation & Threshold
Structured Fields Generated4 Properties FieldsStrictly typed output properties extracted deterministically from raw text
Schema Formats ProducedJSON Schema & Zod TS FormatsDual export compatible with OpenAI response_format and TypeScript backends
Parsing Reliability100% Schema Compliant ValidationGuarantees zero markdown backtick leakage or schema violations

Strategic Takeaway & Operational Guidelines

Relying on prompt instructions alone to return JSON results in random formatting errors and markdown wrappers. Generating strict JSON Schema with additionalProperties: false forces models to adhere strictly to type definitions.

INSTRUMENT BOUNDARIES

Type-Safe Structured Output Schema Generator (Zod / JSON Schema Strict Mode) — Scope & Limitations

Explicit operational boundaries and constraints defining target use cases and out-of-scope scenarios.

Built For (Target Use Cases)

  • Converting a visually built field list into Zod, OpenAI strict-mode, and Anthropic tool schemas.
  • Enforcing additionalProperties: false and required fields across generated JSON Schema output.
  • Comparing generated Zod, TypeScript, OpenAI, and Anthropic formats for one schema definition.

Not Built For (Limitations & Out-of-Scope)

  • Deeply nested object schemas; array-of-object fields generate z.record(z.any()), not typed sub-schemas.
  • Runtime validation; the tool generates schema code but does not execute or test it.
  • Schema formats beyond Zod, OpenAI strict mode, Anthropic tools, and TypeScript types.

Operational Assumptions & Defaults

  • Field types are limited to string, number, boolean, enum, array_string, and array_object.
  • PRESET_SCHEMAS.customer_sentiment and similar presets default strictMode to true.
  • Generated schemas assume the target API supports the respective strict-mode contract as documented.

Structured Output & Strict JSON Schema Generator for LLMs

OpenAI, Anthropic & Zod

Visually build TypeScript interfaces and convert them instantly to Zod validation schemas, OpenAI strict-mode JSON schemas (`response_format: json_schema`), and Anthropic Claude tool calling contracts.

Load Schema Preset:

Schema Metadata & Fields

Field Definitions (5)

Generated Schema Output

import { z } from 'zod';

export const ExecutiveReportOutputSchema = z.object({
  title: z.string().describe("Concise executive summary headline"),
  category: z.enum(["marketing", "engineering", "finance", "operations"]).describe("Primary domain categorization"),
  confidenceScore: z.number().describe("Model confidence rating from 0.0 to 1.0"),
  isActionable: z.boolean().describe("Whether human intervention is required immediately").optional(),
  tags: z.array(z.string()).describe("Taxonomy keyword tags").optional()
});

export type ExecutiveReportOutput = z.infer<typeof ExecutiveReportOutputSchema>;
Export & Deployment Actions1-click clipboard transfer, shareable URL hash, and local file downloads.

Built by Gordon Geraghty, Head of Performance MediaZero Data Sent to Server
03 Deployment & Production Recipes

Deploy Zod & JSON Schema to API Client

Copy the generated TypeScript interface and Zod schema into your route handler or OpenAI `response_format` call.

Export & Deployment Actions1-click clipboard transfer, shareable URL hash, and local file downloads.

structuredSchema.tstypescript
import { z } from 'zod';
import { zodResponseFormat } from 'openai/helpers/zod';
import OpenAI from 'openai';

export const CampaignAuditSchema = z.object({
  campaignName: z.string().describe('Name of the marketing campaign'),
  healthScore: z.number().min(0).max(100).describe('Audit score from 0 to 100'),
  issuesDetected: z.array(z.string()).describe('List of detected configuration issues'),
  recommendedAction: z.string().describe('Immediate remediation recommendation')
});

export type CampaignAudit = z.infer<typeof CampaignAuditSchema>;

const openai = new OpenAI();
const completion = await openai.beta.chat.completions.parse({
  model: 'gpt-4o-2024-08-06',
  messages: [{ role: 'user', content: 'Audit this Google Ads campaign configuration...' }],
  response_format: zodResponseFormat(CampaignAuditSchema, 'campaign_audit')
});
strict-schema-generator.tstypescript
export function makeSchemaStrict(schema: any): any {
  if (!schema || typeof schema !== 'object') return schema;

  if (schema.type === 'object' && schema.properties) {
    schema.additionalProperties = false;
    schema.required = Object.keys(schema.properties);
    for (const key of Object.keys(schema.properties)) {
      schema.properties[key] = makeSchemaStrict(schema.properties[key]);
    }
  }

  if (schema.type === 'array' && schema.items) {
    schema.items = makeSchemaStrict(schema.items);
  }

  return schema;
}
04 Verification Checklist

Structured Output Strict Mode QA

Verify that all object properties are explicitly listed in required array and additionalProperties: false is set.

Verify OpenAI Strict Mode Compliance

Confirm schema has additionalProperties: false and all keys are listed in required array.

Test Runtime Zod Parse Validation

Pass LLM JSON output to Schema.parse() to guarantee runtime type safety without throwing exceptions.

Why Strict Mode Prevents Schema Hallucinations

OpenAI Structured Outputs guarantee 100% adherence to supplied schemas by constraining model decoding tokens. Generating schemas with explicit required keys and additionalProperties disabled eliminates JSON parse exceptions in production.

How to cite and attribute this tool

MIT Licence

This resource is free, open and un-gated under the MIT Open Source Licence. You are encouraged to use, integrate and cite it with attribution:

Geraghty, G. (2026). Type-Safe Structured Output Schema Generator (Zod / JSON Schema Strict Mode). Gordon Geraghty Resources Hub. https://gordongeraghty.com/resources/structured-output-schema-generator
BibTeX Format
@misc{geraghty_structured_output_schema_generator,
  author = {Geraghty, Gordon},
  title = {Type-Safe Structured Output Schema Generator (Zod / JSON Schema Strict Mode)},
  year = {2026},
  url = {https://gordongeraghty.com/resources/structured-output-schema-generator},
  note = {Head of Performance Media, Empire Amplify}
}