{"openapi":"3.0.3","info":{"title":"JSONKit API","version":"v1","description":"Deterministic JSON, conversion, comparison, encoding, and agent data operations over HTTP.\nPayloads are processed in memory only and are never stored.\n\n## Limits\n\nEvery anonymous request is bound by the following. Exceeding one is an error, not a partial result,\nexcept where noted as truncation.\n\n- **1 MiB** — Maximum request body. Larger documents belong in local tools, not a shared endpoint.\n- **4 MiB** — Maximum 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.\n- **100 levels** — Maximum 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.\n- **1024 characters** — Maximum length of a JMESPath expression.\n- **5000 changes** — Maximum reported diff entries. The summary always counts every change, reported or not.\n- **1000 errors** — Maximum reported JSON Schema errors. `valid` is unaffected by truncation.\n- **10 steps** — Maximum operations in one synchronous pipeline.\n- **100 UUIDs** — Maximum UUIDs per request. Larger counts are capped rather than rejected."},"x-limits":{"requestBytes":{"value":1048576,"description":"Maximum request body. Larger documents belong in local tools, not a shared endpoint."},"responseBytes":{"value":4194304,"description":"Maximum 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."},"jsonDepth":{"value":100,"description":"Maximum 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."},"queryLength":{"value":1024,"description":"Maximum length of a JMESPath expression."},"diffChanges":{"value":5000,"description":"Maximum reported diff entries. The summary always counts every change, reported or not."},"schemaErrors":{"value":1000,"description":"Maximum reported JSON Schema errors. `valid` is unaffected by truncation."},"pipelineSteps":{"value":10,"description":"Maximum operations in one synchronous pipeline."},"uuidBatch":{"value":100,"description":"Maximum UUIDs per request. Larger counts are capped rather than rejected."}},"servers":[{"url":"https://api.jsonkit.tools"}],"tags":[{"name":"JSON"},{"name":"Convert"},{"name":"Compare"},{"name":"Encode & decode"},{"name":"Developer utilities"},{"name":"Agent workflows"},{"name":"Service"}],"paths":{"/healthz":{"get":{"operationId":"checkHealth","summary":"Check service health","description":"Report that the service is reachable. Accepts GET or HEAD.","tags":["Service"],"responses":{"200":{"description":"The service is running.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","version"],"properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}},"example":{"ok":true,"service":"jsonkit-api","version":"v1"}}}},"405":{"$ref":"#/components/responses/Error405"}}}},"/v1":{"get":{"operationId":"listEndpoints","summary":"Discover endpoints","description":"List every operation with the documentation and OpenAPI locations for this deployment.","tags":["Service"],"responses":{"200":{"description":"The machine-readable endpoint catalog.","content":{"application/json":{"schema":{"type":"object","required":["ok","version","documentation","openapi","endpoints"],"properties":{"ok":{"type":"boolean"},"version":{"type":"string"},"documentation":{"type":"string","description":"Absolute URL of the human reference."},"openapi":{"type":"string","description":"Absolute URL of this OpenAPI document."},"endpoints":{"type":"array","items":{"type":"object","required":["method","name","path","summary"],"properties":{"method":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"summary":{"type":"string"}}}}}}}}},"405":{"$ref":"#/components/responses/Error405"}}}},"/v1/json/format":{"post":{"operationId":"jsonFormat","summary":"Format JSON","description":"Parse and pretty-print a JSON document.","tags":["JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON source to parse and pretty-print. Accepted: Any valid RFC 8259 JSON value: object, array, string, number, boolean, or null."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"indent":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Whitespace used for each nesting level. A string is useful for tab indentation. Accepted: Integer `0`–`10`, or a string up to 10 characters such as `\"\\t\"`.","default":2}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\"agent\":\"fast\",\"tools\":3}","options":{"indent":2},"responseMode":"plain"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"description":"Parsed JSON value. Use `plain` for indented JSON text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/minify":{"post":{"operationId":"jsonMinify","summary":"Minify JSON","description":"Validate JSON and remove optional whitespace.","tags":["JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON source to parse and minify. Accepted: Any valid RFC 8259 JSON value."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\n  \"agent\": \"fast\",\n  \"tools\": 3\n}","responseMode":"plain"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"description":"Parsed JSON value. Use `plain` for minified JSON text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/validate":{"post":{"operationId":"jsonValidate","summary":"Validate JSON","description":"Validate syntax and return structural statistics.","tags":["JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON source to validate and inspect. Accepted: Any valid RFC 8259 JSON value."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\"tasks\":[{\"done\":true}]}"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"Validation result and structural statistics in `json` mode.","properties":{"valid":{"type":"boolean","description":"Always true. Invalid JSON produces an HTTP 400 error instead. Accepted: `true`"},"stats":{"type":"object","properties":{"nodes":{"type":"integer","description":"Total number of values, including containers and scalar values."},"keys":{"type":"integer","description":"Total number of object keys."},"depth":{"type":"integer","description":"Maximum nesting depth; the root starts at depth 1."}},"required":["nodes","keys","depth"]}},"required":["valid"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/schema/validate":{"post":{"operationId":"jsonSchemaValidate","summary":"Validate JSON Schema","description":"Validate a JSON value against draft 4, 7, 2019-09, or 2020-12.","tags":["JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"object","description":"The document and schema to validate.","properties":{"document":{"description":"JSON source or native JSON value."},"schema":{"oneOf":[{"type":"string"},{"type":"object"},{"type":"boolean"}],"description":"JSON Schema source or native schema."}},"required":["document","schema"]},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"draft":{"type":"string","description":"JSON Schema dialect. Accepted: `4`, `7`, `2019-09`, or `2020-12`.","default":"2020-12","enum":["4","7","2019-09","2020-12"]}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":{"document":{"id":7,"name":"Ada"},"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer"}}}},"options":{"draft":"2020-12"},"responseMode":"json"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"Validation outcome in `json` mode.","properties":{"valid":{"type":"boolean","description":"Whether the document satisfies the schema."},"errors":{"type":"array","items":{"type":"object","properties":{"keyword":{"type":"string","description":"Failed JSON Schema keyword."},"instanceLocation":{"type":"string","description":"JSON Pointer to the failing document value."},"keywordLocation":{"type":"string","description":"JSON Pointer to the failing schema keyword."},"message":{"type":"string","description":"Human-readable validation message."}}},"description":"All validation errors; empty when valid."},"truncated":{"type":"boolean","description":"Present only when the error list was capped at 1000 entries. `valid` is unaffected by truncation. Accepted: `true`"}},"required":["valid","errors"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/diff":{"post":{"operationId":"jsonDiff","summary":"Diff JSON","description":"Compare values structurally, ignoring formatting and key order.","tags":["JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"object","description":"The two JSON documents to compare.","properties":{"left":{"type":"string","description":"Original JSON document. Accepted: Any valid RFC 8259 JSON value."},"right":{"type":"string","description":"Updated JSON document. Accepted: Any valid RFC 8259 JSON value."}},"required":["left","right"]},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":{"left":"{\"status\":\"draft\"}","right":"{\"status\":\"ready\"}"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"A structural diff and aggregate counts in `json` mode.","properties":{"changes":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"How the value differs. Accepted: `added`, `removed`, or `changed`."},"path":{"type":"string","description":"Dot/bracket path such as `user.name`, `items[2]`, or `(root)`."},"left":{"description":"Original value. Present for `removed` and `changed`; omitted for `added`."},"right":{"description":"Updated value. Present for `added` and `changed`; omitted for `removed`."}},"required":["kind","path"]},"description":"Ordered list of changed paths. Formatting and object-key order are ignored."},"summary":{"type":"object","description":"Counts for the complete change list.","properties":{"added":{"type":"integer","description":"Number of added paths."},"removed":{"type":"integer","description":"Number of removed paths."},"changed":{"type":"integer","description":"Number of paths whose values changed."},"total":{"type":"integer","description":"Sum of added, removed, and changed paths."},"truncated":{"type":"boolean","description":"Present only when the reported list was capped at 5000 entries. The counts above still describe every change. Accepted: `true`"}},"required":["added","removed","changed","total"]}},"required":["changes","summary"]}},"required":["ok","result"]},"example":{"ok":true,"result":{"changes":[{"kind":"changed","path":"status","left":"draft","right":"ready"}],"summary":{"added":0,"removed":0,"changed":1,"total":1}}}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/to-csv":{"post":{"operationId":"jsonCsv","summary":"JSON to CSV","description":"Flatten an array of objects into delimited rows.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON array to flatten into CSV rows. Accepted: A JSON array of objects. Nested values are flattened into dotted columns and indexed array columns."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"delimiter":{"type":"string","description":"Column separator written between cells. Accepted: Any non-empty delimiter string; common values are `,`, `;`, `\"\\t\"`, and `|`.","default":","}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"[{\"id\":1,\"name\":\"Ada\"}]","options":{"delimiter":","}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"CSV text with a union header for all object keys."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/csv/to-json":{"post":{"operationId":"csvJson","summary":"CSV to JSON","description":"Parse CSV with delimiter detection and safe value typing.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Delimited text with the first row treated as column names. Accepted: RFC 4180-style text, including quoted delimiters, escaped quotes, and newlines inside quoted cells."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"delimiter":{"type":"string","description":"Column separator or automatic detection mode. Accepted: `auto` or any non-empty delimiter string; auto-detection checks comma, semicolon, and tab.","default":"auto"},"indent":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Whitespace used for each nesting level. A string is useful for tab indentation. Accepted: Integer `0`–`10`, or a string up to 10 characters such as `\"\\t\"`.","default":2},"typed":{"type":"boolean","description":"Convert unambiguous booleans, nulls, and safe numbers instead of returning every cell as text. Accepted: `true` or `false`.","default":true}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"id,name\n1,Ada","options":{"delimiter":"auto","typed":true}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"array","items":{"type":"object"},"description":"Native row array in `json` mode."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/to-yaml":{"post":{"operationId":"jsonYaml","summary":"JSON to YAML","description":"Serialize JSON as readable YAML.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON source to serialize as YAML. Accepted: Any valid RFC 8259 JSON value."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\"service\":{\"port\":8080}}"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"YAML text with references disabled and lines wrapped near 100 characters."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/yaml/to-json":{"post":{"operationId":"yamlJson","summary":"YAML to JSON","description":"Parse YAML and return formatted JSON.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"YAML document to parse. Accepted: A single document accepted by `js-yaml` safe loading; executable JavaScript types are not supported."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"indent":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Whitespace used for each nesting level. A string is useful for tab indentation. Accepted: Integer `0`–`10`, or a string up to 10 characters such as `\"\\t\"`.","default":2}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"service:\n  port: 8080","options":{"indent":2}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"description":"Native JSON value in `json` mode."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/to-xml":{"post":{"operationId":"jsonXml","summary":"JSON to XML","description":"Build an XML document from JSON values.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JSON source to serialize as XML. Accepted: Any valid JSON. Object keys become elements; keys prefixed with `@` become attributes and `#text` becomes text content."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"root":{"type":"string","description":"Wrapper element used only when the JSON root is an array or primitive. Accepted: A valid XML element name.","default":"root"}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\"message\":{\"@id\":\"1\",\"#text\":\"hello\"}}","options":{"root":"root"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Serialized XML without an XML declaration."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/xml/to-json":{"post":{"operationId":"xmlJson","summary":"XML to JSON","description":"Parse XML while preserving attributes and repeated elements.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"XML document to parse. Accepted: Well-formed XML. Attributes use `@`, text uses `#text`, and repeated sibling elements become arrays."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"indent":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Whitespace used for each nesting level. A string is useful for tab indentation. Accepted: Integer `0`–`10`, or a string up to 10 characters such as `\"\\t\"`.","default":2}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"<message id=\"1\">hello</message>","options":{"indent":2}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"description":"Native JSON value in `json` mode."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/json/to-typescript":{"post":{"operationId":"jsonTypescript","summary":"JSON to TypeScript","description":"Infer interfaces or type aliases from example JSON.","tags":["Convert"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Example JSON used to infer TypeScript declarations. Accepted: Any valid JSON value. Arrays of objects are merged and missing keys become optional properties."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"root":{"type":"string","description":"Name of the generated root declaration. Accepted: Any text containing letters or digits; it is normalized to PascalCase.","default":"Root"},"kind":{"type":"string","description":"Declaration style for object shapes. Accepted: `interface` or `type`.","default":"interface","enum":["interface","type"]}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\"id\":1,\"profile\":{\"name\":\"Ada\"}}","options":{"root":"Root","kind":"interface"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"TypeScript source containing the inferred root and nested declarations."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/yaml/diff":{"post":{"operationId":"yamlDiff","summary":"Diff YAML","description":"Compare YAML values structurally, ignoring comments, formatting, and key order.","tags":["Compare"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"object","description":"The two YAML documents to compare.","properties":{"left":{"type":"string","description":"Original YAML document. Accepted: A single YAML document accepted by `js-yaml`."},"right":{"type":"string","description":"Updated YAML document. Accepted: A single YAML document accepted by `js-yaml`."}},"required":["left","right"]},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":{"left":"status: draft","right":"status: ready"},"responseMode":"json"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"A structural diff and aggregate counts in `json` mode.","properties":{"changes":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"How the value differs. Accepted: `added`, `removed`, or `changed`."},"path":{"type":"string","description":"Dot/bracket path such as `user.name`, `items[2]`, or `(root)`."},"left":{"description":"Original value. Present for `removed` and `changed`; omitted for `added`."},"right":{"description":"Updated value. Present for `added` and `changed`; omitted for `removed`."}},"required":["kind","path"]},"description":"Ordered list of changed paths. Formatting and object-key order are ignored."},"summary":{"type":"object","description":"Counts for the complete change list.","properties":{"added":{"type":"integer","description":"Number of added paths."},"removed":{"type":"integer","description":"Number of removed paths."},"changed":{"type":"integer","description":"Number of paths whose values changed."},"total":{"type":"integer","description":"Sum of added, removed, and changed paths."},"truncated":{"type":"boolean","description":"Present only when the reported list was capped at 5000 entries. The counts above still describe every change. Accepted: `true`"}},"required":["added","removed","changed","total"]}},"required":["changes","summary"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/xml/diff":{"post":{"operationId":"xmlDiff","summary":"Diff XML","description":"Compare parsed XML structures while preserving attributes and repeated elements.","tags":["Compare"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"object","description":"The two XML documents to compare.","properties":{"left":{"type":"string","description":"Original XML document. Accepted: A well-formed XML document."},"right":{"type":"string","description":"Updated XML document. Accepted: A well-formed XML document."}},"required":["left","right"]},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":{"left":"<item status=\"draft\"/>","right":"<item status=\"ready\"/>"},"responseMode":"json"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"A structural diff and aggregate counts in `json` mode.","properties":{"changes":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"How the value differs. Accepted: `added`, `removed`, or `changed`."},"path":{"type":"string","description":"Dot/bracket path such as `user.name`, `items[2]`, or `(root)`."},"left":{"description":"Original value. Present for `removed` and `changed`; omitted for `added`."},"right":{"description":"Updated value. Present for `added` and `changed`; omitted for `removed`."}},"required":["kind","path"]},"description":"Ordered list of changed paths. Formatting and object-key order are ignored."},"summary":{"type":"object","description":"Counts for the complete change list.","properties":{"added":{"type":"integer","description":"Number of added paths."},"removed":{"type":"integer","description":"Number of removed paths."},"changed":{"type":"integer","description":"Number of paths whose values changed."},"total":{"type":"integer","description":"Sum of added, removed, and changed paths."},"truncated":{"type":"boolean","description":"Present only when the reported list was capped at 5000 entries. The counts above still describe every change. Accepted: `true`"}},"required":["added","removed","changed","total"]}},"required":["changes","summary"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/base64/encode":{"post":{"operationId":"base64Encode","summary":"Encode Base64","description":"Encode UTF-8 text as standard or URL-safe Base64.","tags":["Encode & decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Unicode text to encode as UTF-8 bytes. Accepted: Any string, including an empty string."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"urlSafe":{"type":"boolean","description":"Use the URL-safe alphabet and omit trailing padding. Accepted: `true` or `false`.","default":false}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"hello, agent","options":{"urlSafe":false}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Base64-encoded text in the selected alphabet."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/base64/decode":{"post":{"operationId":"base64Decode","summary":"Decode Base64","description":"Validate and decode a Base64 string as UTF-8.","tags":["Encode & decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Base64 text to validate and decode as UTF-8. Accepted: Standard or URL-safe Base64, with optional trailing padding and whitespace."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"aGVsbG8sIGFnZW50"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Decoded Unicode text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/url/encode":{"post":{"operationId":"urlEncode","summary":"Encode URL","description":"Percent-encode a component or a complete URI.","tags":["Encode & decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Text or URI to percent-encode. Accepted: Any Unicode string."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"mode":{"type":"string","description":"Select whether reserved URI characters remain intact. Accepted: `component` uses `encodeURIComponent`; `uri` uses `encodeURI`.","default":"component","enum":["component","uri"]}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"agents?q=json tools","options":{"mode":"component"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Percent-encoded text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/url/decode":{"post":{"operationId":"urlDecode","summary":"Decode URL","description":"Decode percent escapes in a component or URI.","tags":["Encode & decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Percent-encoded text or URI. Accepted: Any string with valid `%XX` escape sequences."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"mode":{"type":"string","description":"Select whether reserved URI escapes remain intact. Accepted: `component` uses `decodeURIComponent`; `uri` uses `decodeURI`.","default":"component","enum":["component","uri"]}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"agents%3Fq%3Djson%20tools","options":{"mode":"component"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Decoded Unicode text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/html/encode":{"post":{"operationId":"htmlEncode","summary":"Encode HTML entities","description":"Escape markup-sensitive or all non-ASCII characters.","tags":["Encode & decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Text to encode as HTML entities. Accepted: Any Unicode string."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"mode":{"type":"string","description":"Choose the set of characters to escape. Accepted: `minimal` escapes markup-sensitive characters; `all` also emits numeric entities for non-ASCII characters.","default":"minimal","enum":["minimal","all"]}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"<strong>safe</strong>","options":{"mode":"minimal"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"HTML entity-encoded text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/html/decode":{"post":{"operationId":"htmlDecode","summary":"Decode HTML entities","description":"Decode named, decimal, and hexadecimal entities.","tags":["Encode & decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Text containing HTML entities. Accepted: Named entities supported by JSONKit plus decimal and hexadecimal numeric entities; unknown names remain unchanged."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"&lt;strong&gt;safe&lt;/strong&gt;"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Decoded Unicode text."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/jwt/decode":{"post":{"operationId":"jwtDecode","summary":"Decode JWT","description":"Inspect a JWT header, payload, signature, and lifetime without verification.","tags":["Developer utilities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"JWT to decode without signature verification. Accepted: Exactly three dot-separated Base64url parts; header and payload must contain JSON objects."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"eyJhbGciOiJub25lIn0.eyJzdWIiOiJhZ2VudCJ9."}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"Decoded JWT parts and derived lifetime in `json` mode.","properties":{"header":{"type":"object","description":"Decoded JOSE header claims."},"payload":{"type":"object","description":"Decoded JWT payload claims."},"signature":{"type":"string","description":"Original encoded signature segment. It is not verified."},"lifetime":{"type":"object","nullable":true,"description":"Derived status from `nbf` and `exp`, or null when neither applies.","properties":{"state":{"type":"string","description":"Temporal state when lifetime is available. Accepted: `early`, `expired`, or `valid`."},"text":{"type":"string","description":"Human-readable relative lifetime."}}}},"required":["header","payload","signature","lifetime"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/hash/generate":{"post":{"operationId":"hashGenerate","summary":"Generate hash","description":"Create an MD5 or SHA family digest.","tags":["Developer utilities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Text whose UTF-8 bytes will be hashed. Accepted: Any string, including an empty string."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"algorithm":{"type":"string","description":"Digest algorithm. Accepted: `MD5`, `SHA-1`, `SHA-256`, `SHA-384`, or `SHA-512`.","default":"SHA-256","enum":["MD5","SHA-1","SHA-256","SHA-384","SHA-512"]}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"deterministic input","options":{"algorithm":"SHA-256"}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"string","description":"Lowercase hexadecimal digest; length depends on the selected algorithm."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/uuid/generate":{"post":{"operationId":"uuidGenerate","summary":"Generate UUIDs","description":"Generate RFC-compatible UUID v4 or time-sortable v7 values.","tags":["Developer utilities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"version":{"type":"string","description":"UUID version to generate. Accepted: `v4` for random UUIDs or `v7` for time-sortable UUIDs.","default":"v4","enum":["v4","v7"]},"count":{"type":"integer","description":"Number of UUIDs to return. Accepted: Integer from `1` to `100`; larger values are capped at 100.","default":1},"uppercase":{"type":"boolean","description":"Return hexadecimal letters in uppercase. Accepted: `true` or `false`.","default":false},"hyphens":{"type":"boolean","description":"Keep standard UUID hyphens. Accepted: `true` or `false`.","default":true}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}}},"example":{"options":{"version":"v7","count":3}}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"array","items":{"type":"string","description":"RFC 9562 UUID, optionally uppercased or stripped of hyphens."},"description":"Generated UUIDs in creation order in `json` mode."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/timestamp/parse":{"post":{"operationId":"timestampParse","summary":"Parse timestamp","description":"Normalize Unix seconds, milliseconds, or an ISO date.","tags":["Developer utilities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Timestamp to normalize. Accepted: Unix seconds, Unix milliseconds, or a date string accepted by JavaScript `Date` parsing."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"1758000000"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"Normalized timestamp and alternative representations in `json` mode.","properties":{"iso":{"type":"string","description":"Normalized UTC timestamp in ISO 8601 format."},"values":{"type":"object","description":"Alternative timestamp representations.","properties":{"Unix seconds":{"type":"string","description":"Whole seconds since the Unix epoch."},"Unix milliseconds":{"type":"string","description":"Milliseconds since the Unix epoch."},"ISO 8601":{"type":"string","description":"ISO 8601 UTC representation."},"UTC":{"type":"string","description":"UTC display string."},"Local":{"type":"string","description":"Worker-runtime local display string."},"Relative":{"type":"string","description":"Human-readable offset from request time."}},"required":["Unix seconds","Unix milliseconds","ISO 8601","UTC","Local","Relative"]}},"required":["iso","values"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/color/convert":{"post":{"operationId":"colorConvert","summary":"Convert color","description":"Normalize HEX, RGB, and HSL color notation.","tags":["Developer utilities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","description":"Color value to normalize. Accepted: `#rgb`, `#rrggbb`, `#rrggbbaa`, comma- or space-separated `rgb[a](…)`, or `hsl[a](…)`."},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"#3fb984"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"object","description":"Equivalent color representations in `json` mode.","properties":{"HEX":{"type":"string","description":"Six- or eight-digit hexadecimal notation."},"RGB":{"type":"string","description":"`rgb(…)` or `rgba(…)` notation."},"HSL":{"type":"string","description":"`hsl(…)` or `hsla(…)` notation."},"CSS variables":{"type":"string","description":"A ready-to-paste `--color` declaration."}},"required":["HEX","RGB","HSL","CSS variables"]}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/data/query":{"post":{"operationId":"dataQuery","summary":"Query JSON","description":"Extract and reshape only the JSON data an agent needs with JMESPath.","tags":["Agent workflows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"description":"JSON source or a native JSON value to query. Accepted: Any RFC 8259 JSON value."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"expression":{"type":"string","description":"JMESPath expression evaluated against the input. Accepted: A non-empty, valid JMESPath expression such as `users[?active].name`."}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"input":"{\"users\":[{\"name\":\"Ada\",\"active\":true},{\"name\":\"Lin\",\"active\":false}]}","options":{"expression":"users[?active].name"},"responseMode":"json"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"description":"The native JSON value selected or produced by the expression in `json` mode."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/data/table":{"post":{"operationId":"dataTable","summary":"Transform table","description":"Select, filter, sort, and deduplicate JSON rows without generating transformation code.","tags":["Agent workflows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"oneOf":[{"type":"string"},{"type":"array"}],"description":"JSON array source or native array of rows."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"operations":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","description":"Operation to apply. Accepted: `select`, `filter`, `sort`, or `dedupe`."},"fields":{"type":"array","items":{"type":"string"},"description":"Field paths retained by `select`."},"field":{"type":"string","description":"Field path tested by `filter`."},"operator":{"type":"string","description":"Comparison used by `filter`. Accepted: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, or `contains`.","default":"eq"},"value":{"description":"Right-hand comparison value for `filter`."},"by":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Sort field, or deduplication fields."},"order":{"type":"string","description":"Sort direction. Accepted: `asc` or `desc`.","default":"asc"}},"required":["op"]},"description":"Ordered table operations. Accepted: One to 10 `select`, `filter`, `sort`, or `dedupe` operations."}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"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"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"type":"array","description":"Transformed rows in `json` mode."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}},"/v1/pipeline":{"post":{"operationId":"pipeline","summary":"Run pipeline","description":"Chain up to 10 compatible operations and return only the final value.","tags":["Agent workflows"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"description":"Initial value passed to the first step."},"options":{"type":"object","description":"Operation-specific settings.","default":{},"properties":{"steps":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Versioned endpoint path to execute. Accepted: A pipeline-compatible `/v1/...` endpoint path."},"options":{"type":"object","description":"Options passed to this step.","default":{}}},"required":["path"]},"description":"Operations executed in order. Accepted: One to 10 pipeline-compatible endpoint calls. Pipelines, pair-input diffs, schema validation, and generators cannot be nested."}}},"responseMode":{"type":"string","description":"Controls how the endpoint serializes its result. Accepted: `json` returns the standard JSON envelope; `plain` returns the successful result directly as a `text/plain` body without `ok` or `result`.","default":"json","enum":["json","plain"]}},"required":["input"]},"example":{"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"}}}},"responses":{"200":{"description":"The operation succeeded. `responseMode: \"json\"` returns the envelope below; `responseMode: \"plain\"` returns the result alone as `text/plain`.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Indicates that the operation completed successfully. Accepted: `true`"},"result":{"description":"Only the final step result; intermediate values are not returned."}},"required":["ok","result"]}},"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"404":{"$ref":"#/components/responses/Error404"},"405":{"$ref":"#/components/responses/Error405"},"413":{"$ref":"#/components/responses/Error413"},"415":{"$ref":"#/components/responses/Error415"},"500":{"$ref":"#/components/responses/Error500"}}}}},"components":{"schemas":{"Error":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","enum":[false],"description":"Always false on an error response."},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_INPUT","INVALID_JSON","RESULT_TOO_LARGE","NOT_FOUND","METHOD_NOT_ALLOWED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","INTERNAL_ERROR"],"description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable explanation of the failure."},"details":{"type":"object","description":"Source location for JSON, YAML, and XML syntax errors, when the parser reports one."}}}}}},"responses":{"Error400":{"description":"`INVALID_INPUT` — The body parsed as JSON but the operation rejected the input or an option value. `INVALID_JSON` — The request body is not valid JSON. `RESULT_TOO_LARGE` — The request was valid but produced a result above the 4 MiB response limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error404":{"description":"`NOT_FOUND` — No versioned endpoint matches the request path.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error405":{"description":"`METHOD_NOT_ALLOWED` — The endpoint does not accept this HTTP method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error413":{"description":"`PAYLOAD_TOO_LARGE` — The request body exceeds the 1 MiB limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error415":{"description":"`UNSUPPORTED_MEDIA_TYPE` — Content-Type must be application/json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Error500":{"description":"`INTERNAL_ERROR` — An unexpected error interrupted the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}