API reference · v1

Small tools.
Strict contracts.

JSONKit exposes deterministic data operations over HTTP. Send a JSON request and choose a structured JSON response or clean plain text. Core JSON, conversion, and comparison tools are listed first; specialized agent workflows are collected at the end of the reference.

Base URLhttps://api.jsonkit.tools/v1
JSON onlySend Content-Type: application/json.
1 MiB limitLarge payloads remain better suited to local tools.
No auth in previewAPI keys and rate limits arrive before public production use.
OpenAPI 3.0/openapi.json

Choose what enters the context

Set top-level responseMode on any request. json is the default and returns native JSON in the standard ok/result envelope. plain returns the successful result directly with Content-Type: text/plain—no envelope and no escaped inner document. Errors remain structured JSON in both modes so clients can handle failures consistently.

jsonDefault. Avoids escaped JSON strings in agent and application integrations.
plainReturns the raw successful output without ok or result.

What the API refuses

Every limit below applies to anonymous requests and is enforced in the same code that publishes it. Two of them exist because small inputs can produce enormous output: indenting a deeply nested document costs roughly indent × depth² bytes, so a request under 2 KB can ask for megabytes. The nesting limit refuses that input; the response limit catches whatever still expands past it.

1 MiBMaximum request body. Larger documents belong in local tools, not a shared endpoint.
4 MiBMaximum serialized result. Small inputs can expand enormously — indenting a deeply nested document is quadratic in its depth — so the result is measured before it is sent.
100 levelsMaximum nesting in a JSON document. YAML and XML parsers already stop at their own ceiling; JSON.parse has none, so the API applies this one.
1024 charactersMaximum length of a JMESPath expression.
5000 changesMaximum reported diff entries. The summary always counts every change, reported or not.
1000 errorsMaximum reported JSON Schema errors. valid is unaffected by truncation.
10 stepsMaximum operations in one synchronous pipeline.
100 UUIDsMaximum UUIDs per request. Larger counts are capped rather than rejected.

Diff changes and schema errors truncate instead of failing: the reported list is capped, a truncated flag appears, and the counts keep describing the whole comparison. Everything else returns a structured error.

Responses and errors

A successful request returns ok: true and a typed result. Invalid input never returns an invented partial result.

SUCCESS · 200
{
  "ok": true,
  "result": "{\n  \"ready\": true\n}"
}
INVALID INPUT · 400
{
  "ok": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "Unexpected token"
  }
}

Every failure carries one of the codes below. The same list is published as the error.codeenum in /openapi.json, generated from the source this page reads.

400INVALID_INPUT — The body parsed as JSON but the operation rejected the input or an option value.
400INVALID_JSON — The request body is not valid JSON.
400RESULT_TOO_LARGE — The request was valid but produced a result above the 4 MiB response limit.
404NOT_FOUND — No versioned endpoint matches the request path.
405METHOD_NOT_ALLOWED — The endpoint does not accept this HTTP method.
413PAYLOAD_TOO_LARGE — The request body exceeds the 1 MiB limit.
415UNSUPPORTED_MEDIA_TYPE — Content-Type must be application/json.
500INTERNAL_ERROR — An unexpected error interrupted the request.

Format JSON

Parse and pretty-print a JSON document.

POST
/v1/json/format
Request body4 fields
input
stringrequired

JSON source to parse and pretty-print.

AcceptedAny valid RFC 8259 JSON value: object, array, string, number, boolean, or null.
options
objectoptionaldefault {}

Operation-specific settings.

options.indent
integer | stringoptionaldefault 2

Whitespace used for each nesting level. A string is useful for tab indentation.

AcceptedInteger 010, or a string up to 10 characters such as "\t".
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
anyrequired

Parsed JSON value. Use plain for indented JSON text.

Example body
{
  "input": "{\"agent\":\"fast\",\"tools\":3}",
  "options": {
    "indent": 2
  },
  "responseMode": "plain"
}

Minify JSON

Validate JSON and remove optional whitespace.

POST
/v1/json/minify
Request body2 fields
input
stringrequired

JSON source to parse and minify.

AcceptedAny valid RFC 8259 JSON value.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
anyrequired

Parsed JSON value. Use plain for minified JSON text.

Example body
{
  "input": "{\n  \"agent\": \"fast\",\n  \"tools\": 3\n}",
  "responseMode": "plain"
}

Validate JSON

Validate syntax and return structural statistics.

POST
/v1/json/validate
Request body2 fields
input
stringrequired

JSON source to validate and inspect.

AcceptedAny valid RFC 8259 JSON value.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

Validation result and structural statistics in json mode.

result.valid
booleanrequired

Always true. Invalid JSON produces an HTTP 400 error instead.

Acceptedtrue
result.stats.nodes
integerrequired

Total number of values, including containers and scalar values.

result.stats.keys
integerrequired

Total number of object keys.

result.stats.depth
integerrequired

Maximum nesting depth; the root starts at depth 1.

Example body
{
  "input": "{\"tasks\":[{\"done\":true}]}"
}

Validate JSON Schema

Validate a JSON value against draft 4, 7, 2019-09, or 2020-12.

POST
/v1/json/schema/validate
Request body6 fields
input
objectrequired

The document and schema to validate.

input.document
string | anyrequired

JSON source or native JSON value.

input.schema
string | object | booleanrequired

JSON Schema source or native schema.

options
objectoptionaldefault {}

Operation-specific settings.

options.draft
stringoptionaldefault "2020-12"

JSON Schema dialect.

Accepted4, 7, 2019-09, or 2020-12.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

Validation outcome in json mode.

result.valid
booleanrequired

Whether the document satisfies the schema.

result.errors
array<object>required

All validation errors; empty when valid.

result.errors[].keyword
stringoptional

Failed JSON Schema keyword.

result.errors[].instanceLocation
stringoptional

JSON Pointer to the failing document value.

result.errors[].keywordLocation
stringoptional

JSON Pointer to the failing schema keyword.

result.errors[].message
stringoptional

Human-readable validation message.

result.truncated
booleanoptional

Present only when the error list was capped at 1000 entries. valid is unaffected by truncation.

Acceptedtrue
Example body
{
  "input": {
    "document": {
      "id": 7,
      "name": "Ada"
    },
    "schema": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "integer"
        }
      }
    }
  },
  "options": {
    "draft": "2020-12"
  },
  "responseMode": "json"
}

Diff JSON

Compare values structurally, ignoring formatting and key order.

POST
/v1/json/diff
Request body4 fields
input
objectrequired

The two JSON documents to compare.

input.left
stringrequired

Original JSON document.

AcceptedAny valid RFC 8259 JSON value.
input.right
stringrequired

Updated JSON document.

AcceptedAny valid RFC 8259 JSON value.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

A structural diff and aggregate counts in json mode.

result.changes
array<object>required

Ordered list of changed paths. Formatting and object-key order are ignored.

result.changes[].kind
stringrequired

How the value differs.

Acceptedadded, removed, or changed.
result.changes[].path
stringrequired

Dot/bracket path such as user.name, items[2], or (root).

result.changes[].left
anyoptional

Original value. Present for removed and changed; omitted for added.

result.changes[].right
anyoptional

Updated value. Present for added and changed; omitted for removed.

result.summary
objectrequired

Counts for the complete change list.

result.summary.added
integerrequired

Number of added paths.

result.summary.removed
integerrequired

Number of removed paths.

result.summary.changed
integerrequired

Number of paths whose values changed.

result.summary.total
integerrequired

Sum of added, removed, and changed paths.

result.summary.truncated
booleanoptional

Present only when the reported list was capped at 5000 entries. The counts above still describe every change.

Acceptedtrue
Example body
{
  "input": {
    "left": "{\"status\":\"draft\"}",
    "right": "{\"status\":\"ready\"}"
  }
}
Example response200 OK
{
  "ok": true,
  "result": {
    "changes": [
      {
        "kind": "changed",
        "path": "status",
        "left": "draft",
        "right": "ready"
      }
    ],
    "summary": {
      "added": 0,
      "removed": 0,
      "changed": 1,
      "total": 1
    }
  }
}

JSON to CSV

Flatten an array of objects into delimited rows.

POST
/v1/json/to-csv
Request body4 fields
input
stringrequired

JSON array to flatten into CSV rows.

AcceptedA JSON array of objects. Nested values are flattened into dotted columns and indexed array columns.
options
objectoptionaldefault {}

Operation-specific settings.

options.delimiter
stringoptionaldefault ","

Column separator written between cells.

AcceptedAny non-empty delimiter string; common values are ,, ;, "\t", and |.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

CSV text with a union header for all object keys.

Example body
{
  "input": "[{\"id\":1,\"name\":\"Ada\"}]",
  "options": {
    "delimiter": ","
  }
}

CSV to JSON

Parse CSV with delimiter detection and safe value typing.

POST
/v1/csv/to-json
Request body6 fields
input
stringrequired

Delimited text with the first row treated as column names.

AcceptedRFC 4180-style text, including quoted delimiters, escaped quotes, and newlines inside quoted cells.
options
objectoptionaldefault {}

Operation-specific settings.

options.delimiter
stringoptionaldefault "auto"

Column separator or automatic detection mode.

Acceptedauto or any non-empty delimiter string; auto-detection checks comma, semicolon, and tab.
options.indent
integer | stringoptionaldefault 2

Whitespace used for each nesting level. A string is useful for tab indentation.

AcceptedInteger 010, or a string up to 10 characters such as "\t".
options.typed
booleanoptionaldefault true

Convert unambiguous booleans, nulls, and safe numbers instead of returning every cell as text.

Acceptedtrue or false.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
array<object>required

Native row array in json mode.

Example body
{
  "input": "id,name\n1,Ada",
  "options": {
    "delimiter": "auto",
    "typed": true
  }
}

JSON to YAML

Serialize JSON as readable YAML.

POST
/v1/json/to-yaml
Request body2 fields
input
stringrequired

JSON source to serialize as YAML.

AcceptedAny valid RFC 8259 JSON value.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

YAML text with references disabled and lines wrapped near 100 characters.

Example body
{
  "input": "{\"service\":{\"port\":8080}}"
}

YAML to JSON

Parse YAML and return formatted JSON.

POST
/v1/yaml/to-json
Request body4 fields
input
stringrequired

YAML document to parse.

AcceptedA single document accepted by js-yaml safe loading; executable JavaScript types are not supported.
options
objectoptionaldefault {}

Operation-specific settings.

options.indent
integer | stringoptionaldefault 2

Whitespace used for each nesting level. A string is useful for tab indentation.

AcceptedInteger 010, or a string up to 10 characters such as "\t".
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
anyrequired

Native JSON value in json mode.

Example body
{
  "input": "service:\n  port: 8080",
  "options": {
    "indent": 2
  }
}

JSON to XML

Build an XML document from JSON values.

POST
/v1/json/to-xml
Request body4 fields
input
stringrequired

JSON source to serialize as XML.

AcceptedAny valid JSON. Object keys become elements; keys prefixed with @ become attributes and #text becomes text content.
options
objectoptionaldefault {}

Operation-specific settings.

options.root
stringoptionaldefault "root"

Wrapper element used only when the JSON root is an array or primitive.

AcceptedA valid XML element name.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Serialized XML without an XML declaration.

Example body
{
  "input": "{\"message\":{\"@id\":\"1\",\"#text\":\"hello\"}}",
  "options": {
    "root": "root"
  }
}

XML to JSON

Parse XML while preserving attributes and repeated elements.

POST
/v1/xml/to-json
Request body4 fields
input
stringrequired

XML document to parse.

AcceptedWell-formed XML. Attributes use @, text uses #text, and repeated sibling elements become arrays.
options
objectoptionaldefault {}

Operation-specific settings.

options.indent
integer | stringoptionaldefault 2

Whitespace used for each nesting level. A string is useful for tab indentation.

AcceptedInteger 010, or a string up to 10 characters such as "\t".
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
anyrequired

Native JSON value in json mode.

Example body
{
  "input": "<message id=\"1\">hello</message>",
  "options": {
    "indent": 2
  }
}

JSON to TypeScript

Infer interfaces or type aliases from example JSON.

POST
/v1/json/to-typescript
Request body5 fields
input
stringrequired

Example JSON used to infer TypeScript declarations.

AcceptedAny valid JSON value. Arrays of objects are merged and missing keys become optional properties.
options
objectoptionaldefault {}

Operation-specific settings.

options.root
stringoptionaldefault "Root"

Name of the generated root declaration.

AcceptedAny text containing letters or digits; it is normalized to PascalCase.
options.kind
stringoptionaldefault "interface"

Declaration style for object shapes.

Acceptedinterface or type.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

TypeScript source containing the inferred root and nested declarations.

Example body
{
  "input": "{\"id\":1,\"profile\":{\"name\":\"Ada\"}}",
  "options": {
    "root": "Root",
    "kind": "interface"
  }
}

Diff YAML

Compare YAML values structurally, ignoring comments, formatting, and key order.

POST
/v1/yaml/diff
Request body4 fields
input
objectrequired

The two YAML documents to compare.

input.left
stringrequired

Original YAML document.

AcceptedA single YAML document accepted by js-yaml.
input.right
stringrequired

Updated YAML document.

AcceptedA single YAML document accepted by js-yaml.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

A structural diff and aggregate counts in json mode.

result.changes
array<object>required

Ordered list of changed paths. Formatting and object-key order are ignored.

result.changes[].kind
stringrequired

How the value differs.

Acceptedadded, removed, or changed.
result.changes[].path
stringrequired

Dot/bracket path such as user.name, items[2], or (root).

result.changes[].left
anyoptional

Original value. Present for removed and changed; omitted for added.

result.changes[].right
anyoptional

Updated value. Present for added and changed; omitted for removed.

result.summary
objectrequired

Counts for the complete change list.

result.summary.added
integerrequired

Number of added paths.

result.summary.removed
integerrequired

Number of removed paths.

result.summary.changed
integerrequired

Number of paths whose values changed.

result.summary.total
integerrequired

Sum of added, removed, and changed paths.

result.summary.truncated
booleanoptional

Present only when the reported list was capped at 5000 entries. The counts above still describe every change.

Acceptedtrue
Example body
{
  "input": {
    "left": "status: draft",
    "right": "status: ready"
  },
  "responseMode": "json"
}

Diff XML

Compare parsed XML structures while preserving attributes and repeated elements.

POST
/v1/xml/diff
Request body4 fields
input
objectrequired

The two XML documents to compare.

input.left
stringrequired

Original XML document.

AcceptedA well-formed XML document.
input.right
stringrequired

Updated XML document.

AcceptedA well-formed XML document.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

A structural diff and aggregate counts in json mode.

result.changes
array<object>required

Ordered list of changed paths. Formatting and object-key order are ignored.

result.changes[].kind
stringrequired

How the value differs.

Acceptedadded, removed, or changed.
result.changes[].path
stringrequired

Dot/bracket path such as user.name, items[2], or (root).

result.changes[].left
anyoptional

Original value. Present for removed and changed; omitted for added.

result.changes[].right
anyoptional

Updated value. Present for added and changed; omitted for removed.

result.summary
objectrequired

Counts for the complete change list.

result.summary.added
integerrequired

Number of added paths.

result.summary.removed
integerrequired

Number of removed paths.

result.summary.changed
integerrequired

Number of paths whose values changed.

result.summary.total
integerrequired

Sum of added, removed, and changed paths.

result.summary.truncated
booleanoptional

Present only when the reported list was capped at 5000 entries. The counts above still describe every change.

Acceptedtrue
Example body
{
  "input": {
    "left": "<item status=\"draft\"/>",
    "right": "<item status=\"ready\"/>"
  },
  "responseMode": "json"
}

Encode Base64

Encode UTF-8 text as standard or URL-safe Base64.

POST
/v1/base64/encode
Request body4 fields
input
stringrequired

Unicode text to encode as UTF-8 bytes.

AcceptedAny string, including an empty string.
options
objectoptionaldefault {}

Operation-specific settings.

options.urlSafe
booleanoptionaldefault false

Use the URL-safe alphabet and omit trailing padding.

Acceptedtrue or false.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Base64-encoded text in the selected alphabet.

Example body
{
  "input": "hello, agent",
  "options": {
    "urlSafe": false
  }
}

Decode Base64

Validate and decode a Base64 string as UTF-8.

POST
/v1/base64/decode
Request body2 fields
input
stringrequired

Base64 text to validate and decode as UTF-8.

AcceptedStandard or URL-safe Base64, with optional trailing padding and whitespace.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Decoded Unicode text.

Example body
{
  "input": "aGVsbG8sIGFnZW50"
}

Encode URL

Percent-encode a component or a complete URI.

POST
/v1/url/encode
Request body4 fields
input
stringrequired

Text or URI to percent-encode.

AcceptedAny Unicode string.
options
objectoptionaldefault {}

Operation-specific settings.

options.mode
stringoptionaldefault "component"

Select whether reserved URI characters remain intact.

Acceptedcomponent uses encodeURIComponent; uri uses encodeURI.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Percent-encoded text.

Example body
{
  "input": "agents?q=json tools",
  "options": {
    "mode": "component"
  }
}

Decode URL

Decode percent escapes in a component or URI.

POST
/v1/url/decode
Request body4 fields
input
stringrequired

Percent-encoded text or URI.

AcceptedAny string with valid %XX escape sequences.
options
objectoptionaldefault {}

Operation-specific settings.

options.mode
stringoptionaldefault "component"

Select whether reserved URI escapes remain intact.

Acceptedcomponent uses decodeURIComponent; uri uses decodeURI.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Decoded Unicode text.

Example body
{
  "input": "agents%3Fq%3Djson%20tools",
  "options": {
    "mode": "component"
  }
}

Encode HTML entities

Escape markup-sensitive or all non-ASCII characters.

POST
/v1/html/encode
Request body4 fields
input
stringrequired

Text to encode as HTML entities.

AcceptedAny Unicode string.
options
objectoptionaldefault {}

Operation-specific settings.

options.mode
stringoptionaldefault "minimal"

Choose the set of characters to escape.

Acceptedminimal escapes markup-sensitive characters; all also emits numeric entities for non-ASCII characters.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

HTML entity-encoded text.

Example body
{
  "input": "<strong>safe</strong>",
  "options": {
    "mode": "minimal"
  }
}

Decode HTML entities

Decode named, decimal, and hexadecimal entities.

POST
/v1/html/decode
Request body2 fields
input
stringrequired

Text containing HTML entities.

AcceptedNamed entities supported by JSONKit plus decimal and hexadecimal numeric entities; unknown names remain unchanged.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Decoded Unicode text.

Example body
{
  "input": "&lt;strong&gt;safe&lt;/strong&gt;"
}

Decode JWT

Inspect a JWT header, payload, signature, and lifetime without verification.

POST
/v1/jwt/decode
Request body2 fields
input
stringrequired

JWT to decode without signature verification.

AcceptedExactly three dot-separated Base64url parts; header and payload must contain JSON objects.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

Decoded JWT parts and derived lifetime in json mode.

result.header
objectrequired

Decoded JOSE header claims.

result.payload
objectrequired

Decoded JWT payload claims.

result.signature
stringrequired

Original encoded signature segment. It is not verified.

result.lifetime
object | nullrequired

Derived status from nbf and exp, or null when neither applies.

result.lifetime.state
stringoptional

Temporal state when lifetime is available.

Acceptedearly, expired, or valid.
result.lifetime.text
stringoptional

Human-readable relative lifetime.

Example body
{
  "input": "eyJhbGciOiJub25lIn0.eyJzdWIiOiJhZ2VudCJ9."
}

Generate hash

Create an MD5 or SHA family digest.

POST
/v1/hash/generate
Request body4 fields
input
stringrequired

Text whose UTF-8 bytes will be hashed.

AcceptedAny string, including an empty string.
options
objectoptionaldefault {}

Operation-specific settings.

options.algorithm
stringoptionaldefault "SHA-256"

Digest algorithm.

AcceptedMD5, SHA-1, SHA-256, SHA-384, or SHA-512.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
stringrequired

Lowercase hexadecimal digest; length depends on the selected algorithm.

Example body
{
  "input": "deterministic input",
  "options": {
    "algorithm": "SHA-256"
  }
}

Generate UUIDs

Generate RFC-compatible UUID v4 or time-sortable v7 values.

POST
/v1/uuid/generate
Request body6 fields
options
objectoptionaldefault {}

Operation-specific settings.

options.version
stringoptionaldefault "v4"

UUID version to generate.

Acceptedv4 for random UUIDs or v7 for time-sortable UUIDs.
options.count
integeroptionaldefault 1

Number of UUIDs to return.

AcceptedInteger from 1 to 100; larger values are capped at 100.
options.uppercase
booleanoptionaldefault false

Return hexadecimal letters in uppercase.

Acceptedtrue or false.
options.hyphens
booleanoptionaldefault true

Keep standard UUID hyphens.

Acceptedtrue or false.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
array<string>required

Generated UUIDs in creation order in json mode.

result[]
stringrequired

RFC 9562 UUID, optionally uppercased or stripped of hyphens.

Example body
{
  "options": {
    "version": "v7",
    "count": 3
  }
}

Parse timestamp

Normalize Unix seconds, milliseconds, or an ISO date.

POST
/v1/timestamp/parse
Request body2 fields
input
stringrequired

Timestamp to normalize.

AcceptedUnix seconds, Unix milliseconds, or a date string accepted by JavaScript Date parsing.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

Normalized timestamp and alternative representations in json mode.

result.iso
stringrequired

Normalized UTC timestamp in ISO 8601 format.

result.values
objectrequired

Alternative timestamp representations.

result.values["Unix seconds"]
stringrequired

Whole seconds since the Unix epoch.

result.values["Unix milliseconds"]
stringrequired

Milliseconds since the Unix epoch.

result.values["ISO 8601"]
stringrequired

ISO 8601 UTC representation.

result.values.UTC
stringrequired

UTC display string.

result.values.Local
stringrequired

Worker-runtime local display string.

result.values.Relative
stringrequired

Human-readable offset from request time.

Example body
{
  "input": "1758000000"
}

Convert color

Normalize HEX, RGB, and HSL color notation.

POST
/v1/color/convert
Request body2 fields
input
stringrequired

Color value to normalize.

Accepted#rgb, #rrggbb, #rrggbbaa, comma- or space-separated rgb[a](…), or hsl[a](…).
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
objectrequired

Equivalent color representations in json mode.

result.HEX
stringrequired

Six- or eight-digit hexadecimal notation.

result.RGB
stringrequired

rgb(…) or rgba(…) notation.

result.HSL
stringrequired

hsl(…) or hsla(…) notation.

result["CSS variables"]
stringrequired

A ready-to-paste --color declaration.

Example body
{
  "input": "#3fb984"
}

Query JSON

Extract and reshape only the JSON data an agent needs with JMESPath.

POST
/v1/data/query
Request body4 fields
input
string | anyrequired

JSON source or a native JSON value to query.

AcceptedAny RFC 8259 JSON value.
options
objectoptionaldefault {}

Operation-specific settings.

options.expression
stringoptionaldefault

JMESPath expression evaluated against the input.

AcceptedA non-empty, valid JMESPath expression such as users[?active].name.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
anyrequired

The native JSON value selected or produced by the expression in json mode.

Example body
{
  "input": "{\"users\":[{\"name\":\"Ada\",\"active\":true},{\"name\":\"Lin\",\"active\":false}]}",
  "options": {
    "expression": "users[?active].name"
  },
  "responseMode": "json"
}

Transform table

Select, filter, sort, and deduplicate JSON rows without generating transformation code.

POST
/v1/data/table
Request body11 fields
input
string | arrayrequired

JSON array source or native array of rows.

options
objectoptionaldefault {}

Operation-specific settings.

options.operations
array<object>optionaldefault

Ordered table operations.

AcceptedOne to 10 select, filter, sort, or dedupe operations.
options.operations[].op
stringrequired

Operation to apply.

Acceptedselect, filter, sort, or dedupe.
options.operations[].fields
array<string>optional

Field paths retained by select.

options.operations[].field
stringoptional

Field path tested by filter.

options.operations[].operator
stringoptionaldefault "eq"

Comparison used by filter.

Acceptedeq, ne, gt, gte, lt, lte, in, or contains.
options.operations[].value
anyoptional

Right-hand comparison value for filter.

options.operations[].by
string | array<string>optional

Sort field, or deduplication fields.

options.operations[].order
stringoptionaldefault "asc"

Sort direction.

Acceptedasc or desc.
responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
arrayrequired

Transformed rows in json mode.

Example body
{
  "input": "[{\"id\":2,\"active\":true},{\"id\":1,\"active\":true},{\"id\":2,\"active\":false}]",
  "options": {
    "operations": [
      {
        "op": "filter",
        "field": "active",
        "operator": "eq",
        "value": true
      },
      {
        "op": "sort",
        "by": "id",
        "order": "asc"
      }
    ]
  },
  "responseMode": "json"
}

Run pipeline

Chain up to 10 compatible operations and return only the final value.

POST
/v1/pipeline
Request body6 fields
input
string | anyrequired

Initial value passed to the first step.

options
objectoptionaldefault {}

Operation-specific settings.

options.steps
array<object>optionaldefault

Operations executed in order.

AcceptedOne to 10 pipeline-compatible endpoint calls. Pipelines, pair-input diffs, schema validation, and generators cannot be nested.
options.steps[].path
stringrequired

Versioned endpoint path to execute.

AcceptedA pipeline-compatible /v1/... endpoint path.
options.steps[].options
objectoptionaldefault {}

Options passed to this step.

responseMode
stringoptionaldefault "json"

Controls how the endpoint serializes its result.

Acceptedjson returns the standard JSON envelope; plain returns the successful result directly as a text/plain body without ok or result.
Response schemajson mode · HTTP 200
ok
booleanrequired

Indicates that the operation completed successfully.

Acceptedtrue
result
anyrequired

Only the final step result; intermediate values are not returned.

Example body
{
  "input": "{\"users\":[{\"name\":\"Ada\",\"active\":true},{\"name\":\"Lin\",\"active\":false}]}",
  "options": {
    "steps": [
      {
        "path": "/v1/data/query",
        "options": {
          "expression": "users[?active]"
        }
      },
      {
        "path": "/v1/json/to-csv"
      }
    ]
  },
  "responseMode": "json"
}