{
  "openapi": "3.1.0",
  "info": {
    "title": "StringTo API",
    "version": "1.0.0",
    "description": "Privacy-conscious developer utilities API. Browser tools remain local; API inputs are transmitted for transient processing."
  },
  "servers": [
    {
      "url": "https://stringto.com"
    }
  ],
  "paths": {
    "/api/v1/json-formatter": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Formatter API",
        "description": "format JSON online with syntax highlighting. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonFormatter",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-validator": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Validator API",
        "description": "validate JSON online with syntax error messages. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonValidator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-viewer": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Viewer API",
        "description": "open and view JSON files online securely. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonViewer",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-tree-viewer": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Tree Viewer API",
        "description": "view nested JSON as an expandable tree online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonTreeViewer",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-minifier": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Minifier API",
        "description": "minify JSON online for smaller API payloads. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonMinifier",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-diff": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Diff API",
        "description": "compare two JSON objects and find differences online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonDiff",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-pretty-print": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON Pretty Print API",
        "description": "pretty print minified JSON with readable indentation. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonPrettyPrint",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-to-yaml": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON to YAML API",
        "description": "convert JSON to YAML online for configuration files. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonToYaml",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-to-xml": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON to XML API",
        "description": "convert JSON objects to formatted XML online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonToXml",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/json-to-csv": {
      "post": {
        "tags": [
          "JSON"
        ],
        "summary": "JSON to CSV API",
        "description": "convert a JSON array to downloadable CSV online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jsonToCsv",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/yaml-formatter": {
      "post": {
        "tags": [
          "YAML"
        ],
        "summary": "YAML Formatter API",
        "description": "format and beautify YAML configuration online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "yamlFormatter",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/yaml-validator": {
      "post": {
        "tags": [
          "YAML"
        ],
        "summary": "YAML Validator API",
        "description": "validate YAML syntax and find indentation errors online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "yamlValidator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/yaml-to-json": {
      "post": {
        "tags": [
          "YAML"
        ],
        "summary": "YAML to JSON API",
        "description": "convert YAML configuration to formatted JSON online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "yamlToJson",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/xml-formatter": {
      "post": {
        "tags": [
          "XML"
        ],
        "summary": "XML Formatter API",
        "description": "format and indent XML documents online securely. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "xmlFormatter",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/xml-validator": {
      "post": {
        "tags": [
          "XML"
        ],
        "summary": "XML Validator API",
        "description": "validate XML syntax and find malformed markup online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "xmlValidator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/xml-to-json": {
      "post": {
        "tags": [
          "XML"
        ],
        "summary": "XML to JSON API",
        "description": "convert formatted XML documents to JSON online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "xmlToJson",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/jwt-decoder": {
      "post": {
        "tags": [
          "Security"
        ],
        "summary": "JWT Decoder API",
        "description": "decode JWT header and payload online without uploading tokens. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "jwtDecoder",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/base64-encoder": {
      "post": {
        "tags": [
          "Security"
        ],
        "summary": "Base64 Encode API",
        "description": "encode UTF-8 text to Base64 online securely. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "base64Encoder",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/base64-decoder": {
      "post": {
        "tags": [
          "Security"
        ],
        "summary": "Base64 Decode API",
        "description": "decode Base64 to readable UTF-8 text online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "base64Decoder",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/uuid-generator": {
      "post": {
        "tags": [
          "Security"
        ],
        "summary": "UUID Generator API",
        "description": "generate secure random UUID v4 values online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "uuidGenerator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/password-generator": {
      "post": {
        "tags": [
          "Security"
        ],
        "summary": "Password Generator API",
        "description": "generate a strong random password locally in your browser. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "passwordGenerator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/hash-generator": {
      "post": {
        "tags": [
          "Security"
        ],
        "summary": "Hash Generator API",
        "description": "generate a SHA-256 hash from text online securely. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "hashGenerator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/regex-tester": {
      "post": {
        "tags": [
          "Utilities"
        ],
        "summary": "Regex Tester API",
        "description": "test regular expressions with matches and indexes online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "regexTester",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/timestamp-converter": {
      "post": {
        "tags": [
          "Utilities"
        ],
        "summary": "Timestamp Converter API",
        "description": "convert Unix timestamps to UTC and local date online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "timestampConverter",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/case-converter": {
      "post": {
        "tags": [
          "Utilities"
        ],
        "summary": "Case Converter API",
        "description": "convert text to camelCase snake_case and kebab-case. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "caseConverter",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/text-diff": {
      "post": {
        "tags": [
          "Utilities"
        ],
        "summary": "Text Diff API",
        "description": "compare two text blocks and highlight line differences. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "textDiff",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/lorem-ipsum-generator": {
      "post": {
        "tags": [
          "Utilities"
        ],
        "summary": "Lorem Ipsum Generator API",
        "description": "generate custom Lorem Ipsum paragraphs online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "loremIpsumGenerator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/kubernetes-yaml-validator": {
      "post": {
        "tags": [
          "DevOps"
        ],
        "summary": "Kubernetes YAML Validator API",
        "description": "validate Kubernetes YAML manifest structure online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "kubernetesYamlValidator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/docker-compose-validator": {
      "post": {
        "tags": [
          "DevOps"
        ],
        "summary": "Docker Compose Validator API",
        "description": "validate Docker Compose YAML services online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "dockerComposeValidator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/dockerfile-linter": {
      "post": {
        "tags": [
          "DevOps"
        ],
        "summary": "Dockerfile Linter API",
        "description": "lint a Dockerfile for common security and build issues. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "dockerfileLinter",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/cron-expression-generator": {
      "post": {
        "tags": [
          "DevOps"
        ],
        "summary": "Cron Expression Generator API",
        "description": "generate a cron expression from a readable schedule. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "cronExpressionGenerator",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/api/v1/cron-expression-parser": {
      "post": {
        "tags": [
          "DevOps"
        ],
        "summary": "Cron Expression Parser API",
        "description": "parse and explain a five-field cron expression online. Supports JSON requests up to 2 MB and raw text requests up to 5 MB.",
        "operationId": "cronExpressionParser",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Use text/plain for raw large-file output.",
            "schema": {
              "type": "string",
              "enum": [
                "application/json",
                "text/plain"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolRequest"
              }
            },
            "text/plain": {
              "schema": {
                "type": "string"
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Invalid API key"
          },
          "413": {
            "description": "Payload or output too large"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "ToolRequest": {
        "type": "object",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "string"
          },
          "options": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ToolResponse": {
        "type": "object",
        "required": [
          "success",
          "tool",
          "output"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "tool": {
            "type": "string"
          },
          "output": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "meta": {
            "type": "object",
            "properties": {
              "inputBytes": {
                "type": "integer"
              },
              "outputBytes": {
                "type": "integer"
              },
              "processingMs": {
                "type": "integer"
              }
            }
          }
        }
      }
    }
  }
}