All 14 tools / Data and scheduling
Turn a JSON sample into a JSON Schema and a TypeScript type, with optional keys and formats inferred.
JSON to schemaFreeFor developers and agent builders
10 min
saved on a typical run. Our estimate, against writing the schema and the TypeScript type by hand for an object of about six keys.
Before: what you give it
The example input, as typed in. You paste a JSON sample.
json: [{"id":"3f2a9c1e-7b4d-4e8a-9c1d-2a6b8e4f1c0d","email":"ana@example.com","plan":"pro","seats":4,"renewsAt":"2026-11-01","notes":null},{"id":"9b1c2d3e-4f5a-4b6c-8d7e-1f2a3b4c5d6e","email":"li@example.com","plan":"free","seats":1,"renewsAt":"2026-10-28"}]
name: Account
After: what comes back
The first lines of a real run of the tool's own code on that input. Nothing here is edited by hand.
export interface Account {
id: string;
email: string;
plan: string;
seats: number;
renewsAt: string;
notes?: null;
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Account",
"type": "object",
"properties": {
"id": {
"type": "string",
... full output on the tool page
What you get
A 2020-12 JSON Schema, a matching TypeScript interface, and a list of every guess made
What it cannot do
Infers from the samples you give it; a key absent from every sample is unknown to it. Free tier reads 20,000 characters.
Who it is for
- Developers
- Agent builders
Free and Pro
| Free | 30 runs a day per IP address, up to 20,000 characters a run. |
|---|---|
| Pro | No daily limit, 300 requests a minute, up to 200,000 characters a run. |
Use it from your assistant
The tool is called json_to_schema. Connect the server once, then ask for it by name or describe the job. Install steps.
claude mcp add --transport http toolbox https://toolbox.allthepossibles.com/mcp
curl -X POST https://toolbox.allthepossibles.com/api/json-schema -H 'content-type: application/json' -d '{"json":"[{\"id\":\"3f2a9c1e-7b4d-4e8a-9c1d-2a6b8e4f1c0d\",\"email\":\"ana@example.com\",\"plan\":\"pro\",\"seats\":4,\"renewsAt\":\"2026-11-01\",\"notes\":null},{\"id\":\"9b1c2d3e-4f5a-4b6c-8d7e-1f2a3b4c5d6e\",\"email\":\"li@example.com\",\"plan\":\"free\",\"seats\":1,\"renewsAt\":\"2026-10-28\"}]","name":"Account"}'
Try it here
The form starts with the same example input, so you can run it first and then swap in your own.
More in data and scheduling
- Cron explainer
Explain a cron expression in plain English, list its next runs in UTC and warn where schedulers disagree.