Schemint

paste PostgreSQL or JSON, get your schema reviewed like a senior would

JSON to Zod schema

Paste a JSON payload, get a Zod schema. Nothing you paste is stored.

Paste a JSON payload (an object or an array of objects) and get a Zod schema plus its inferred TypeScript type (z.infer). Types come from the actual values: fields that are missing or null in some records get .nullable(), integers come out as z.number().int(), and mixed types are flagged instead of guessed.

Inferred from the payload you paste, on the server, discarded after the response.

Try it on your own JSON

Example

JSON in:

[
  {"id": 1, "sku": "A-100", "name": "Widget", "price": 9.99, "in_stock": true, "created_at": "2024-01-15T10:30:00Z"},
  {"id": 2, "sku": "B-220", "name": "Gadget", "price": 19.5, "in_stock": false, "created_at": "2024-02-01T08:00:00Z"}
]

Generated:

PayloadSchema.ts

import { z } from "zod";

export const PayloadSchema = z.object({
  id: z.number().int(),
  sku: z.string(),
  name: z.string(),
  price: z.number(),
  inStock: z.boolean(),
  createdAt: z.string(),
});

export type Payload = z.infer<typeof PayloadSchema>;

Related