Data format toolkit
JSON to Zod
Paste a real JSON sample and get back a ready-to-use Zod schema — z.object({...}) with correctly inferred types, optional fields for anything not present in every sample, and the matching TypeScript type exported via z.infer<typeof Schema>, so your runtime validation and your compile-time types never drift apart. Just need the type, no runtime validation? Try JSON to TypeScript instead.
Pricing
Free for one-off conversions. Pro for daily use.
Occasional use is free, forever. If you're converting files at work every day, Pro pays for itself in the first ten minutes you save.
Free
For occasional, one-off conversions.
- Convert, validate, format, diff, JSONPath, schema generate + validate
- CSV compare up to 50 rows per file
- Files up to 256 KB
- One file at a time
- Runs entirely in-browser
Pro
For daily conversions, CI use, and larger files.
- Everything in Free
- Unlimited rows for CSV compare
- Files up to 25 MB
- Batch convert — up to 100 files at once, download as .zip
- Saved presets — reusable delimiter/format settings
- No ads
- No account or password — access is tied to this browser
- Priority support
API
For scripts, pipelines and internal tools.
- Everything in Pro
- REST API with your own key
- 10,000 conversions / month
- Webhook + CLI available
- Team seats (add-on)
FAQ
A few things worth knowing.
Do I need to create an account?
No — Recast doesn't use logins, emails, or passwords. When you pay, your browser is automatically given secure access. This means access is tied to the specific browser you paid in, not to an identity we track. If you switch devices, use a different browser, or clear your browser's storage, click Manage subscription from the original browser to pick it back up, or get in touch and we'll sort it out.
Is my data ever uploaded anywhere?
No. Every conversion, diff, and validation runs entirely inside your browser tab. Nothing you paste into the tool is ever sent to a server — the only exception is the checkout process itself, which is handled directly by Stripe.
What happens if I cancel?
Cancel any time from Manage subscription. Your access reverts to the Free tier automatically — usually within moments, always by your next page load — no need to email anyone.
Can I use Recast in a script or CI pipeline?
Yes — the same engine that powers the browser tool is available as recast-cli, an npm package with no network dependency, plus a REST API on the API plan.
API
Convert from your scripts and pipelines.
Same conversions as the browser tool, available over a simple REST API. Ideal for backends, CLIs, and internal tools. Prefer zero network dependency? The recast-cli npm package runs the identical engine locally.
Recast API
Your access token — the same one issued when you subscribe — doubles as your API key. 10,000 calls per month, resets on the calendar month, tracked and returned with every response.
curl https://tryrecast.app/v1/convert \
-H "Authorization: Bearer rk_live_••••••••" \
-H "Content-Type: application/json" \
-d '{
"mode": "json2csv",
"input": "[{\"id\":1,\"name\":\"Ada\"}]"
}'
# -> {"output":"id,name\n1,Ada","usage":{"calls_this_month":1,"limit":10000}}
POST /v1/convert — mode: json2csv, csv2json, json2xml, xml2json, flatten, unflatten
POST /v1/diff — mode: diffJson, diffXml, diffCsv (send inputA/inputB instead of input)
POST /v1/schema — infers a JSON Schema (draft-07) from a sample input
// click Run to see the output