JSON Toolkit
## Overview The JSON Toolkit API provides 31 endpoints for validating, transforming, querying, and converting JSON data. Full JSONPath support and schema validation. ## Key Features - **Validation**: Syntax checking with detailed error location reporting - **Formatting**: Pretty-print, minify, sort keys, with configurable indentation - **Diff**: Compare two JSON documents with detailed change…
JSON Toolkit endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST |
Validate JSON syntax /validate |
Parse a JSON string and return the parsed value. On success returns ``{"valid": true, "parsed": }``. On failure returns ``{"valid": false, "error": "...", "position": {...}}``. |
| POST |
Validate JSON against a JSON Schema /validate/schema |
Validate *data* against *json_schema*. Supported keywords: type, properties, required, items, enum, minimum/maximum, minLength/maxLength, minItems/maxItems, pattern,… |
| POST |
Flatten nested JSON to dot-notation keys /transform/flatten |
Convert a nested JSON object/array into a flat dictionary with dot-notation keys. Arrays use their integer index as the key segment. Example: ``{"a": {"b": [1, 2]}}`` →… |
| POST |
Unflatten dot-notation keys to nested JSON /transform/unflatten |
Convert a flat dot-notation dictionary back into a nested structure. Integer key segments are converted to array indices. Example: ``{"a.b.0": 1, "a.b.1": 2}`` → ``{"a": {"b":… |
| POST |
Sort all keys alphabetically (deep) /transform/sort-keys |
Recursively sort every object's keys alphabetically. |
| POST |
Delete value at a dot-notation path /query/delete |
Return a copy of *data* with the node at *path* removed. For arrays the item is removed and the array contracts. |
| POST |
Remove all whitespace from JSON /transform/minify |
Serialize JSON with no whitespace for minimal wire size. |
| POST |
Format JSON with indentation /transform/prettify |
Pretty-print JSON with configurable indent (default 2 spaces). |
| POST |
Deep-merge two JSON objects /transform/merge |
Deep-merge *base* and *override*. When both have the same key and both values are objects, they are merged recursively. For all other types *override* wins. |
| POST |
Recursively remove null values /transform/remove-nulls |
Remove all keys/items whose value is ``null`` (recursively). |
| POST |
Rename keys using a mapping /transform/rename-keys |
Rename object keys using *mapping* ``{"old_name": "new_name"}``. Set *deep=true* (default) to apply the mapping recursively through all nested objects and arrays. |
| POST |
Keep only specified dot-notation paths /transform/filter |
Return a new object containing only the leaf paths listed in *paths*. Prefix matching is supported: specifying ``"a.b"`` also retains ``"a.b.c"`` and ``"a.b.d"``. |
| POST |
Get value at a dot-notation path /query/get |
Retrieve the value at *path* using dot-notation. Array indices are specified as integer segments: ``users.0.name``. Returns ``{"found": true, "value": , "path": "..."}`` or… |
| POST |
Set value at a dot-notation path /query/set |
Return a copy of *data* with *value* written at *path*. Intermediate arrays are automatically extended with ``null`` entries. |
| POST |
List all leaf paths in a JSON object /query/paths |
Return every leaf dot-notation path present in *data*. Useful for exploring unknown JSON structures. |
| POST |
Search for a value across all paths /query/search |
Find every path in *data* whose leaf value equals *value*. Returns a list of ``{"path": "...", "value": ...}`` objects. |
| POST |
Convert JSON array to CSV text /convert/to-csv |
Convert a JSON array of objects to CSV. Nested objects are flattened using dot-notation column names. The first row contains headers derived from all keys across all records. |
| POST |
Convert CSV text to JSON array /convert/from-csv |
Parse CSV text (first row = headers) into a JSON array of objects. Numeric values are coerced to int/float. ``true``/``false`` become booleans. Empty cells become ``null``. |
| POST |
Convert JSON to XML string /convert/to-xml |
Convert a JSON value to an XML string. Objects become elements with child tags named after their keys. Arrays become ```` with ```` children. Scalars become element text content. |
| POST |
Convert JSON to YAML-like format /convert/to-yaml |
Convert a JSON value to a YAML-like human-readable string. Note: this is a readable approximation, not strict YAML spec compliance. |
| POST |
Convert flat JSON object to URL query string /convert/to-querystring |
Serialize a flat JSON object to a URL query string. Example: ``{"page": 1, "q": "hello"}`` → ``page=1&q=hello`` |
| POST |
Parse URL query string to JSON object /convert/from-querystring |
Parse a URL query string into a JSON object. Multi-value keys produce arrays. Numeric and boolean values are coerced. |
| POST |
Compare two JSON objects /diff |
Deep-compare *left* and *right* and return a list of changes. Each change entry has: - ``type``: ``added`` | ``removed`` | ``modified`` - ``path``: dot-notation path to the… |
| POST |
Generate JSON Patch (RFC 6902) from two objects /diff/patch |
Generate a JSON Patch document (RFC 6902) representing the transformation from *left* to *right*. Operations: ``add``, ``remove``, ``replace``. Apply the returned patch to *left*… |
| POST |
Apply a JSON Patch to an object /diff/apply |
Apply a JSON Patch (RFC 6902) *patch* to *document*. Supported operations: ``add``, ``remove``, ``replace``, ``move``, ``copy``, ``test``. A ``test`` failure returns HTTP 409. |
| POST |
Generate JSON Schema from a sample object /generate/schema |
Infer a JSON Schema (draft-07 compatible) from a sample JSON value. The schema includes: - Types for all fields - ``required`` listing all present keys - ``properties`` for… |
| POST |
Generate sample data from a schema description /generate/sample |
Generate *count* random JSON objects matching a *description*. *description* can be: - A JSON Schema object (serialized as string or passed as dict via ``json_schema``) - A… |
| POST |
Generate a random JSON object /generate/random |
Generate a completely random JSON value with configurable structure. - *depth*: nesting depth (1-5, default 2) - *max_keys*: max keys per object (1-20) - *max_items*: max items… |
| POST |
Get statistics about a JSON object /stats |
Analyse the structure of *data* and return: - **depth** — maximum nesting level - **leaf_count** — number of scalar values - **total_keys** — total object key count across all… |
| GET |
API root / |
Return API info and available endpoint groups. |
| GET |
Health check /health |
Return health status suitable for load-balancer probes. |
JSON Toolkit pricing
| Plan | Price | Rate limit | Quotas |
|---|---|---|---|
| BASIC | Free | — |
|
| Pro | $9.99 / month | 20 / minute |
|
| Ultra | $29.99 / month | 100 / minute |
|