Paste JSON, get TypeScript types. Stop hand-writing interfaces.
Drop an API response and get TypeScript interfaces that match it — nested objects become named interfaces, arrays are unioned, missing keys become optional. Copy the types or a Zod schema. All in your browser.
FAQ
Is my JSON uploaded?+
No. Your JSON is parsed and the types are generated entirely in your browser — it is never sent to a server. We do count anonymous, aggregate usage on our own server (a page view, that a blob was converted) — never your JSON, its keys, or its values.
How are optional, nullable and union types decided?+
Every value is inspected. Across an array of objects, a key that's missing from some elements becomes optional?, and a value that's null in some elements becomes | null. Arrays of mixed primitives become a union ((string | number)[]), an empty array becomes unknown[], and each nested object is lifted into its own named interface (PascalCased from its key, deduped on collision).
Can I get a Zod schema, and do I need an account?+
Yes — flip the output toggle to Zod schema to get an equivalent z.object(…) with .optional() and .nullable() applied. No login, no email, no payment. This one is free.