Inference rulesNested objects become separate types; fields present and non-null in every sample get the non-null marker; list and element nullability are marked separately; mixed types and null-only fields fall back to a JSON custom scalar.Runs locally — no fixed size limit (bounded by browser memory)
Sample JSONJSON
Paste or type JSON
Generated schemaGraphQL
Paste or type JSON
JSON → GraphQL SDL · runs locally · no upload

JSON to GraphQL SDL Generator

Sample JSON → type definitions · non-null markers · list nullability · JSON scalar fallback

🔒Your data is processed locally in the browser — never uploaded, never stored

No upload, no storage

JSON is processed in memory and never sent to a server.

Share via URL fragment

Share links encode data in the # anchor — never sent to a server.

Remember last edit

Optionally keep your last input locally; clear it with one click.

Why generate GraphQL SDL from JSON

Type definitions

Nested objects split into their own types, with scalars mapped to GraphQL built-ins.

Non-null driven by your data

Fields present and non-null in every sample get the non-null marker. The rest stay nullable.

List and element nullability

The list itself and its elements are judged separately, rather than everything defaulting to a fully non-null list.

JSON scalar fallback

Mixed types and null-only fields become a JSON custom scalar, declared at the top of the file only when something uses it.

Runs locally — no upload

Generation happens entirely in your browser. Nothing is uploaded or stored.